This prints a message when the error is about program type being not
supported by the test runner or because of permissions problem. This
is to see if the program we expected to run was actually executed.

The messages are open-coded because strerror(ENOTSUPP) returns
"Unknown error 524".

Changes since v2:
- Also print "FAIL" on an unexpected bpf_prog_test_run error, so there
  is a corresponding "FAIL" message for each failed test.

Signed-off-by: Krzesimir Nowak <[email protected]>
---
 tools/testing/selftests/bpf/test_verifier.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/tools/testing/selftests/bpf/test_verifier.c 
b/tools/testing/selftests/bpf/test_verifier.c
index c5514daf8865..b8d065623ead 100644
--- a/tools/testing/selftests/bpf/test_verifier.c
+++ b/tools/testing/selftests/bpf/test_verifier.c
@@ -831,11 +831,20 @@ static int do_prog_test_run(int fd_prog, bool unpriv, 
uint32_t expected_val,
                                tmp, &size_tmp, &retval, NULL);
        if (unpriv)
                set_admin(false);
-       if (err && errno != 524/*ENOTSUPP*/ && errno != EPERM) {
-               printf("Unexpected bpf_prog_test_run error ");
-               return err;
+       if (err) {
+               switch (errno) {
+               case 524/*ENOTSUPP*/:
+                       printf("Did not run the program (not supported) ");
+                       return 0;
+               case EPERM:
+                       printf("Did not run the program (no permission) ");
+                       return 0;
+               default:
+                       printf("FAIL: Unexpected bpf_prog_test_run error (%s) 
", strerror(saved_errno));
+                       return err;
+               }
        }
-       if (!err && retval != expected_val &&
+       if (retval != expected_val &&
            expected_val != POINTER_VALUE) {
                printf("FAIL retval %d != %d ", retval, expected_val);
                return 1;
-- 
2.20.1

Reply via email to