selftests: vDSO - fix to return KSFT_SKIP when test couldn't be run
authorShuah Khan (Samsung OSG) <shuah@kernel.org>
Fri, 22 Jun 2018 17:43:23 +0000 (11:43 -0600)
committerShuah Khan (Samsung OSG) <shuah@kernel.org>
Wed, 11 Jul 2018 16:14:26 +0000 (10:14 -0600)
Fix to return KSFT_SKIP when test couldn't be run because AT_SYSINFO_EHDR
isn't found and gettimeofday isn't defined.

Signed-off-by: Shuah Khan (Samsung OSG) <shuah@kernel.org>
tools/testing/selftests/vDSO/vdso_test.c

index 2df26bd0099ccb0033f0d48bbc4d9485bb42f5da..eda53f833d8e145c4a2ebec6884c319bc699de1c 100644 (file)
@@ -15,6 +15,8 @@
 #include <sys/auxv.h>
 #include <sys/time.h>
 
+#include "../kselftest.h"
+
 extern void *vdso_sym(const char *version, const char *name);
 extern void vdso_init_from_sysinfo_ehdr(uintptr_t base);
 extern void vdso_init_from_auxv(void *auxv);
@@ -37,7 +39,7 @@ int main(int argc, char **argv)
        unsigned long sysinfo_ehdr = getauxval(AT_SYSINFO_EHDR);
        if (!sysinfo_ehdr) {
                printf("AT_SYSINFO_EHDR is not present!\n");
-               return 0;
+               return KSFT_SKIP;
        }
 
        vdso_init_from_sysinfo_ehdr(getauxval(AT_SYSINFO_EHDR));
@@ -48,7 +50,7 @@ int main(int argc, char **argv)
 
        if (!gtod) {
                printf("Could not find %s\n", name);
-               return 1;
+               return KSFT_SKIP;
        }
 
        struct timeval tv;
@@ -59,6 +61,7 @@ int main(int argc, char **argv)
                       (long long)tv.tv_sec, (long long)tv.tv_usec);
        } else {
                printf("%s failed\n", name);
+               return KSFT_FAIL;
        }
 
        return 0;