]> git.itanic.dy.fi Git - linux-stable/commitdiff
perf dlfilter: Add a test for object_code()
authorAdrian Hunter <adrian.hunter@intel.com>
Thu, 28 Sep 2023 09:10:33 +0000 (12:10 +0300)
committerNamhyung Kim <namhyung@kernel.org>
Sat, 30 Sep 2023 07:09:06 +0000 (00:09 -0700)
Extend the "dlfilter C API" test to test
perf_dlfilter_fns.object_code().

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Link: https://lore.kernel.org/r/20230928091033.33998-1-adrian.hunter@intel.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/dlfilters/dlfilter-test-api-v0.c
tools/perf/dlfilters/dlfilter-test-api-v2.c

index 72f263d491211f65de95b39eab8ec71a7d01d489..4083b1abeaabe6057c929fd8b78ced041b57cd24 100644 (file)
@@ -289,6 +289,15 @@ static int check_attr(void *ctx)
        return 0;
 }
 
+static int check_object_code(void *ctx, const struct perf_dlfilter_sample *sample)
+{
+       __u8 buf[15];
+
+       CHECK(perf_dlfilter_fns.object_code(ctx, sample->ip, buf, sizeof(buf)) > 0);
+
+       return 0;
+}
+
 static int do_checks(void *data, const struct perf_dlfilter_sample *sample, void *ctx, bool early)
 {
        struct filter_data *d = data;
@@ -314,7 +323,8 @@ static int do_checks(void *data, const struct perf_dlfilter_sample *sample, void
        if (early && !d->do_early)
                return 0;
 
-       if (check_al(ctx) || check_addr_al(ctx) || check_address_al(ctx, sample))
+       if (check_al(ctx) || check_addr_al(ctx) || check_address_al(ctx, sample) ||
+           check_object_code(ctx, sample))
                return -1;
 
        if (early)
index 38e593d92920c7fd96d6246326049b0b527d5f29..32ff619e881caa501c05b713f9f5baaa45862de9 100644 (file)
@@ -308,6 +308,15 @@ static int check_attr(void *ctx)
        return 0;
 }
 
+static int check_object_code(void *ctx, const struct perf_dlfilter_sample *sample)
+{
+       __u8 buf[15];
+
+       CHECK(perf_dlfilter_fns.object_code(ctx, sample->ip, buf, sizeof(buf)) > 0);
+
+       return 0;
+}
+
 static int do_checks(void *data, const struct perf_dlfilter_sample *sample, void *ctx, bool early)
 {
        struct filter_data *d = data;
@@ -333,7 +342,8 @@ static int do_checks(void *data, const struct perf_dlfilter_sample *sample, void
        if (early && !d->do_early)
                return 0;
 
-       if (check_al(ctx) || check_addr_al(ctx) || check_address_al(ctx, sample))
+       if (check_al(ctx) || check_addr_al(ctx) || check_address_al(ctx, sample) ||
+           check_object_code(ctx, sample))
                return -1;
 
        if (early)