]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
selftests/bpf: Bail out quickly from failing consumer test
authorJiri Olsa <jolsa@kernel.org>
Tue, 24 Sep 2024 11:07:31 +0000 (13:07 +0200)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 4 Oct 2024 00:47:35 +0000 (17:47 -0700)
Let's bail out from consumer test after we hit first fail,
so we don't pollute the log with many instances with possibly
the same error.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c

index c1ac813ff9bae31b12ef25f7e212f1a68dd129b2..2c39902b8a0944119ad2cc44d7570eef54942163 100644 (file)
@@ -836,10 +836,10 @@ uprobe_consumer_test(struct uprobe_multi_consumers *skel,
        return 0;
 }
 
-static void consumer_test(struct uprobe_multi_consumers *skel,
-                         unsigned long before, unsigned long after)
+static int consumer_test(struct uprobe_multi_consumers *skel,
+                        unsigned long before, unsigned long after)
 {
-       int err, idx;
+       int err, idx, ret = -1;
 
        printf("consumer_test before %lu after %lu\n", before, after);
 
@@ -881,13 +881,17 @@ static void consumer_test(struct uprobe_multi_consumers *skel,
                        fmt = "idx 2/3: uretprobe";
                }
 
-               ASSERT_EQ(skel->bss->uprobe_result[idx], val, fmt);
+               if (!ASSERT_EQ(skel->bss->uprobe_result[idx], val, fmt))
+                       goto cleanup;
                skel->bss->uprobe_result[idx] = 0;
        }
 
+       ret = 0;
+
 cleanup:
        for (idx = 0; idx < 4; idx++)
                uprobe_detach(skel, idx);
+       return ret;
 }
 
 static void test_consumers(void)
@@ -939,9 +943,11 @@ static void test_consumers(void)
 
        for (before = 0; before < 16; before++) {
                for (after = 0; after < 16; after++)
-                       consumer_test(skel, before, after);
+                       if (consumer_test(skel, before, after))
+                               goto out;
        }
 
+out:
        uprobe_multi_consumers__destroy(skel);
 }