summaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests
diff options
context:
space:
mode:
Diffstat (limited to 'tools/testing/selftests')
-rw-r--r--tools/testing/selftests/kselftest.h21
1 files changed, 18 insertions, 3 deletions
diff --git a/tools/testing/selftests/kselftest.h b/tools/testing/selftests/kselftest.h
index 45bf25905279..e2714d0a1452 100644
--- a/tools/testing/selftests/kselftest.h
+++ b/tools/testing/selftests/kselftest.h
@@ -28,6 +28,7 @@ struct ksft_count {
28 unsigned int ksft_xfail; 28 unsigned int ksft_xfail;
29 unsigned int ksft_xpass; 29 unsigned int ksft_xpass;
30 unsigned int ksft_xskip; 30 unsigned int ksft_xskip;
31 unsigned int ksft_error;
31}; 32};
32 33
33static struct ksft_count ksft_cnt; 34static struct ksft_count ksft_cnt;
@@ -36,7 +37,7 @@ static inline int ksft_test_num(void)
36{ 37{
37 return ksft_cnt.ksft_pass + ksft_cnt.ksft_fail + 38 return ksft_cnt.ksft_pass + ksft_cnt.ksft_fail +
38 ksft_cnt.ksft_xfail + ksft_cnt.ksft_xpass + 39 ksft_cnt.ksft_xfail + ksft_cnt.ksft_xpass +
39 ksft_cnt.ksft_xskip; 40 ksft_cnt.ksft_xskip + ksft_cnt.ksft_error;
40} 41}
41 42
42static inline void ksft_inc_pass_cnt(void) { ksft_cnt.ksft_pass++; } 43static inline void ksft_inc_pass_cnt(void) { ksft_cnt.ksft_pass++; }
@@ -44,12 +45,14 @@ static inline void ksft_inc_fail_cnt(void) { ksft_cnt.ksft_fail++; }
44static inline void ksft_inc_xfail_cnt(void) { ksft_cnt.ksft_xfail++; } 45static inline void ksft_inc_xfail_cnt(void) { ksft_cnt.ksft_xfail++; }
45static inline void ksft_inc_xpass_cnt(void) { ksft_cnt.ksft_xpass++; } 46static inline void ksft_inc_xpass_cnt(void) { ksft_cnt.ksft_xpass++; }
46static inline void ksft_inc_xskip_cnt(void) { ksft_cnt.ksft_xskip++; } 47static inline void ksft_inc_xskip_cnt(void) { ksft_cnt.ksft_xskip++; }
48static inline void ksft_inc_error_cnt(void) { ksft_cnt.ksft_error++; }
47 49
48static inline int ksft_get_pass_cnt(void) { return ksft_cnt.ksft_pass; } 50static inline int ksft_get_pass_cnt(void) { return ksft_cnt.ksft_pass; }
49static inline int ksft_get_fail_cnt(void) { return ksft_cnt.ksft_fail; } 51static inline int ksft_get_fail_cnt(void) { return ksft_cnt.ksft_fail; }
50static inline int ksft_get_xfail_cnt(void) { return ksft_cnt.ksft_xfail; } 52static inline int ksft_get_xfail_cnt(void) { return ksft_cnt.ksft_xfail; }
51static inline int ksft_get_xpass_cnt(void) { return ksft_cnt.ksft_xpass; } 53static inline int ksft_get_xpass_cnt(void) { return ksft_cnt.ksft_xpass; }
52static inline int ksft_get_xskip_cnt(void) { return ksft_cnt.ksft_xskip; } 54static inline int ksft_get_xskip_cnt(void) { return ksft_cnt.ksft_xskip; }
55static inline int ksft_get_error_cnt(void) { return ksft_cnt.ksft_error; }
53 56
54static inline void ksft_print_header(void) 57static inline void ksft_print_header(void)
55{ 58{
@@ -58,10 +61,10 @@ static inline void ksft_print_header(void)
58 61
59static inline void ksft_print_cnts(void) 62static inline void ksft_print_cnts(void)
60{ 63{
61 printf("Pass %d Fail %d Xfail %d Xpass %d Skip %d\n", 64 printf("Pass %d Fail %d Xfail %d Xpass %d Skip %d Error %d\n",
62 ksft_cnt.ksft_pass, ksft_cnt.ksft_fail, 65 ksft_cnt.ksft_pass, ksft_cnt.ksft_fail,
63 ksft_cnt.ksft_xfail, ksft_cnt.ksft_xpass, 66 ksft_cnt.ksft_xfail, ksft_cnt.ksft_xpass,
64 ksft_cnt.ksft_xskip); 67 ksft_cnt.ksft_xskip, ksft_cnt.ksft_error);
65 printf("1..%d\n", ksft_test_num()); 68 printf("1..%d\n", ksft_test_num());
66} 69}
67 70
@@ -111,6 +114,18 @@ static inline void ksft_test_result_skip(const char *msg, ...)
111 va_end(args); 114 va_end(args);
112} 115}
113 116
117static inline void ksft_test_result_error(const char *msg, ...)
118{
119 va_list args;
120
121 ksft_cnt.ksft_error++;
122
123 va_start(args, msg);
124 printf("not ok %d # error ", ksft_test_num());
125 vprintf(msg, args);
126 va_end(args);
127}
128
114static inline int ksft_exit_pass(void) 129static inline int ksft_exit_pass(void)
115{ 130{
116 ksft_print_cnts(); 131 ksft_print_cnts();