perf test: Update "sample parsing" test for PERF_SAMPLE_TRANSACTION
authorAdrian Hunter <adrian.hunter@intel.com>
Fri, 1 Nov 2013 13:51:37 +0000 (15:51 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 4 Nov 2013 15:47:24 +0000 (12:47 -0300)
In fact the "sample parsing" test does not automatically check new
sample type bits - they must be added to the comparison logic.

Doing that shows that the test fails because the functions
perf_event__synthesize_sample() and perf_event__sample_event_size() have
not been updated with PERF_SAMPLE_TRANSACTION either.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1383313899-15987-10-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/tests/sample-parsing.c

index 61c9da2eb3a94d29f0cebc9b1c75f43020496dbe..1b677202638d087b94903f3f395d9fab8ae15bc7 100644 (file)
@@ -121,6 +121,9 @@ static bool samples_same(const struct perf_sample *s1,
        if (type & PERF_SAMPLE_DATA_SRC)
                COMP(data_src);
 
+       if (type & PERF_SAMPLE_TRANSACTION)
+               COMP(transaction);
+
        return true;
 }
 
@@ -165,6 +168,7 @@ static int do_test(u64 sample_type, u64 sample_regs_user, u64 read_format)
                .cpu            = 110,
                .raw_size       = sizeof(raw_data),
                .data_src       = 111,
+               .transaction    = 112,
                .raw_data       = (void *)raw_data,
                .callchain      = &callchain.callchain,
                .branch_stack   = &branch_stack.branch_stack,
@@ -273,7 +277,8 @@ int test__sample_parsing(void)
 
        /*
         * Fail the test if it has not been updated when new sample format bits
-        * were added.
+        * were added.  Please actually update the test rather than just change
+        * the condition below.
         */
        if (PERF_SAMPLE_MAX > PERF_SAMPLE_TRANSACTION << 1) {
                pr_debug("sample format has changed, some new PERF_SAMPLE_ bit was introduced - test needs updating\n");