selftests/bpf: Convert test printk to use rodata.
authorAlexei Starovoitov <ast@kernel.org>
Fri, 14 May 2021 00:36:22 +0000 (17:36 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Tue, 18 May 2021 22:42:08 +0000 (00:42 +0200)
Convert test trace_printk to more aggressively validate and use rodata.

Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210514003623.28033-21-alexei.starovoitov@gmail.com
tools/testing/selftests/bpf/prog_tests/trace_printk.c
tools/testing/selftests/bpf/progs/trace_printk.c

index 39b0decb1bb230b4be4b7a3fdff4248ad33ce767..2c641bdf21caf4e9c422a993712cb30edb0ac6ee 100644 (file)
@@ -21,6 +21,9 @@ void test_trace_printk(void)
        if (CHECK(!skel, "skel_open", "failed to open skeleton\n"))
                return;
 
+       ASSERT_EQ(skel->rodata->fmt[0], 'T', "invalid printk fmt string");
+       skel->rodata->fmt[0] = 't';
+
        err = trace_printk__load(skel);
        if (CHECK(err, "skel_load", "failed to load skeleton: %d\n", err))
                goto cleanup;
index 8ca7f399b67017253e7f2752248ff30f48fb3830..119582aa105a82173ff4ff21bdb9bebe414b98d3 100644 (file)
@@ -10,11 +10,11 @@ char _license[] SEC("license") = "GPL";
 int trace_printk_ret = 0;
 int trace_printk_ran = 0;
 
-SEC("tp/raw_syscalls/sys_enter")
+const char fmt[] = "Testing,testing %d\n";
+
+SEC("fentry/__x64_sys_nanosleep")
 int sys_enter(void *ctx)
 {
-       static const char fmt[] = "testing,testing %d\n";
-
        trace_printk_ret = bpf_trace_printk(fmt, sizeof(fmt),
                                            ++trace_printk_ran);
        return 0;