aboutsummaryrefslogtreecommitdiff
path: root/src/tools/perf/tests/parse-no-sample-id-all.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/perf/tests/parse-no-sample-id-all.c')
-rw-r--r--src/tools/perf/tests/parse-no-sample-id-all.c108
1 files changed, 0 insertions, 108 deletions
diff --git a/src/tools/perf/tests/parse-no-sample-id-all.c b/src/tools/perf/tests/parse-no-sample-id-all.c
deleted file mode 100644
index e117b6c..0000000
--- a/src/tools/perf/tests/parse-no-sample-id-all.c
+++ /dev/null
@@ -1,108 +0,0 @@
-#include <sys/types.h>
-#include <stddef.h>
-
-#include "tests.h"
-
-#include "event.h"
-#include "evlist.h"
-#include "header.h"
-#include "util.h"
-
-static int process_event(struct perf_evlist **pevlist, union perf_event *event)
-{
- struct perf_sample sample;
-
- if (event->header.type == PERF_RECORD_HEADER_ATTR) {
- if (perf_event__process_attr(NULL, event, pevlist)) {
- pr_debug("perf_event__process_attr failed\n");
- return -1;
- }
- return 0;
- }
-
- if (event->header.type >= PERF_RECORD_USER_TYPE_START)
- return -1;
-
- if (!*pevlist)
- return -1;
-
- if (perf_evlist__parse_sample(*pevlist, event, &sample)) {
- pr_debug("perf_evlist__parse_sample failed\n");
- return -1;
- }
-
- return 0;
-}
-
-static int process_events(union perf_event **events, size_t count)
-{
- struct perf_evlist *evlist = NULL;
- int err = 0;
- size_t i;
-
- for (i = 0; i < count && !err; i++)
- err = process_event(&evlist, events[i]);
-
- if (evlist)
- perf_evlist__delete(evlist);
-
- return err;
-}
-
-struct test_attr_event {
- struct attr_event attr;
- u64 id;
-};
-
-/**
- * test__parse_no_sample_id_all - test parsing with no sample_id_all bit set.
- *
- * This function tests parsing data produced on kernel's that do not support the
- * sample_id_all bit. Without the sample_id_all bit, non-sample events (such as
- * mmap events) do not have an id sample appended, and consequently logic
- * designed to determine the id will not work. That case happens when there is
- * more than one selected event, so this test processes three events: 2
- * attributes representing the selected events and one mmap event.
- *
- * Return: %0 on success, %-1 if the test fails.
- */
-int test__parse_no_sample_id_all(void)
-{
- int err;
-
- struct test_attr_event event1 = {
- .attr = {
- .header = {
- .type = PERF_RECORD_HEADER_ATTR,
- .size = sizeof(struct test_attr_event),
- },
- },
- .id = 1,
- };
- struct test_attr_event event2 = {
- .attr = {
- .header = {
- .type = PERF_RECORD_HEADER_ATTR,
- .size = sizeof(struct test_attr_event),
- },
- },
- .id = 2,
- };
- struct mmap_event event3 = {
- .header = {
- .type = PERF_RECORD_MMAP,
- .size = sizeof(struct mmap_event),
- },
- };
- union perf_event *events[] = {
- (union perf_event *)&event1,
- (union perf_event *)&event2,
- (union perf_event *)&event3,
- };
-
- err = process_events(events, ARRAY_SIZE(events));
- if (err)
- return -1;
-
- return 0;
-}