evsel-tp-sched.c 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #include "evsel.h"
  2. #include "tests.h"
  3. #include "event-parse.h"
  4. static int perf_evsel__test_field(struct perf_evsel *evsel, const char *name,
  5. int size, bool should_be_signed)
  6. {
  7. struct format_field *field = perf_evsel__field(evsel, name);
  8. int is_signed;
  9. int ret = 0;
  10. if (field == NULL) {
  11. pr_debug("%s: \"%s\" field not found!\n", evsel->name, name);
  12. return -1;
  13. }
  14. is_signed = !!(field->flags | FIELD_IS_SIGNED);
  15. if (should_be_signed && !is_signed) {
  16. pr_debug("%s: \"%s\" signedness(%d) is wrong, should be %d\n",
  17. evsel->name, name, is_signed, should_be_signed);
  18. ret = -1;
  19. }
  20. if (field->size != size) {
  21. pr_debug("%s: \"%s\" size (%d) should be %d!\n",
  22. evsel->name, name, field->size, size);
  23. ret = -1;
  24. }
  25. return ret;
  26. }
  27. int test__perf_evsel__tp_sched_test(void)
  28. {
  29. struct perf_evsel *evsel = perf_evsel__newtp("sched", "sched_switch", 0);
  30. int ret = 0;
  31. if (evsel == NULL) {
  32. pr_debug("perf_evsel__new\n");
  33. return -1;
  34. }
  35. if (perf_evsel__test_field(evsel, "prev_comm", 16, true))
  36. ret = -1;
  37. if (perf_evsel__test_field(evsel, "prev_pid", 4, true))
  38. ret = -1;
  39. if (perf_evsel__test_field(evsel, "prev_prio", 4, true))
  40. ret = -1;
  41. if (perf_evsel__test_field(evsel, "prev_state", 8, true))
  42. ret = -1;
  43. if (perf_evsel__test_field(evsel, "next_comm", 16, true))
  44. ret = -1;
  45. if (perf_evsel__test_field(evsel, "next_pid", 4, true))
  46. ret = -1;
  47. if (perf_evsel__test_field(evsel, "next_prio", 4, true))
  48. ret = -1;
  49. perf_evsel__delete(evsel);
  50. evsel = perf_evsel__newtp("sched", "sched_wakeup", 0);
  51. if (perf_evsel__test_field(evsel, "comm", 16, true))
  52. ret = -1;
  53. if (perf_evsel__test_field(evsel, "pid", 4, true))
  54. ret = -1;
  55. if (perf_evsel__test_field(evsel, "prio", 4, true))
  56. ret = -1;
  57. if (perf_evsel__test_field(evsel, "success", 4, true))
  58. ret = -1;
  59. if (perf_evsel__test_field(evsel, "target_cpu", 4, true))
  60. ret = -1;
  61. return ret;
  62. }