From: Kan Liang <[email protected]>

Support the new sample type for sample-parsing test case.

Signed-off-by: Kan Liang <[email protected]>
---
 tools/perf/tests/sample-parsing.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/tools/perf/tests/sample-parsing.c 
b/tools/perf/tests/sample-parsing.c
index 2393916..c5739cc 100644
--- a/tools/perf/tests/sample-parsing.c
+++ b/tools/perf/tests/sample-parsing.c
@@ -129,6 +129,9 @@ static bool samples_same(const struct perf_sample *s1,
        if (type & PERF_SAMPLE_WEIGHT)
                COMP(weight);
 
+       if (type & PERF_SAMPLE_WEIGHT_STRUCT)
+               COMP(ins_lat);
+
        if (type & PERF_SAMPLE_DATA_SRC)
                COMP(data_src);
 
@@ -238,6 +241,7 @@ static int do_test(u64 sample_type, u64 sample_regs, u64 
read_format)
                .phys_addr      = 113,
                .cgroup         = 114,
                .data_page_size = 115,
+               .ins_lat        = 116,
                .aux_sample     = {
                        .size   = sizeof(aux_data),
                        .data   = (void *)aux_data,
@@ -344,7 +348,7 @@ int test__sample_parsing(struct test *test __maybe_unused, 
int subtest __maybe_u
         * were added.  Please actually update the test rather than just change
         * the condition below.
         */
-       if (PERF_SAMPLE_MAX > PERF_SAMPLE_CODE_PAGE_SIZE << 1) {
+       if (PERF_SAMPLE_MAX > PERF_SAMPLE_WEIGHT_STRUCT << 1) {
                pr_debug("sample format has changed, some new PERF_SAMPLE_ bit 
was introduced - test needs updating\n");
                return -1;
        }
@@ -374,8 +378,12 @@ int test__sample_parsing(struct test *test __maybe_unused, 
int subtest __maybe_u
                        return err;
        }
 
-       /* Test all sample format bits together */
-       sample_type = PERF_SAMPLE_MAX - 1;
+       /*
+        * Test all sample format bits together
+        * Note: PERF_SAMPLE_WEIGHT and PERF_SAMPLE_WEIGHT_STRUCT cannot
+        *       be set simultaneously.
+        */
+       sample_type = (PERF_SAMPLE_MAX - 1) & ~PERF_SAMPLE_WEIGHT;
        sample_regs = 0x3fff; /* shared yb intr and user regs */
        for (i = 0; i < ARRAY_SIZE(rf); i++) {
                err = do_test(sample_type, sample_regs, rf[i]);
-- 
2.7.4

Reply via email to