Two bugs in 'perf test BPF' are found when testing BPF prologue without
vmlinux:

 # mv /lib/modules/4.3.0-rc4+/build/vmlinux{,.bak}
 # ./perf test BPF
 37: Test BPF filter                                          :Failed to find 
the path for kernel: No such file or directory
 Ok

Test BPF should fail in this case.

This patch fixes two bugs in 'perf test BPF'. After this patch:

 # ./perf test BPF
 37: Test BPF filter                                          :Failed to find 
the path for kernel: No such file or directory
  FAILED!
 # mv /lib/modules/4.3.0-rc4+/build/vmlinux{.bak,}
 # ./perf test BPF
 37: Test BPF filter                                          : Ok

Signed-off-by: Wang Nan <wangn...@huawei.com>
Cc: Arnaldo Carvalho de Melo <a...@redhat.com>
---
 tools/perf/tests/bpf.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/tools/perf/tests/bpf.c b/tools/perf/tests/bpf.c
index c7131fa..dca3998 100644
--- a/tools/perf/tests/bpf.c
+++ b/tools/perf/tests/bpf.c
@@ -102,8 +102,7 @@ static int do_test(struct bpf_object *obj, int 
(*func)(void),
        err = parse_events_load_bpf_obj(&parse_evlist, &parse_evlist.list, obj);
        if (err || list_empty(&parse_evlist.list)) {
                pr_debug("Failed to add events selected by BPF\n");
-               if (!err)
-                       return TEST_FAIL;
+               return TEST_FAIL;
        }
 
        snprintf(pid, sizeof(pid), "%d", getpid());
@@ -157,8 +156,10 @@ static int do_test(struct bpf_object *obj, int 
(*func)(void),
                }
        }
 
-       if (count != expect)
+       if (count != expect) {
                pr_debug("BPF filter result incorrect\n");
+               goto out_delete_evlist;
+       }
 
        ret = TEST_OK;
 
-- 
1.8.3.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to