diff options
Diffstat (limited to 'tools/testing/selftests/kselftest.h')
| -rw-r--r-- | tools/testing/selftests/kselftest.h | 30 | 
1 files changed, 28 insertions, 2 deletions
| diff --git a/tools/testing/selftests/kselftest.h b/tools/testing/selftests/kselftest.h index 08e90c2cc5cb..1ae565ed9bf0 100644 --- a/tools/testing/selftests/kselftest.h +++ b/tools/testing/selftests/kselftest.h @@ -19,7 +19,8 @@  #define KSFT_FAIL  1  #define KSFT_XFAIL 2  #define KSFT_XPASS 3 -#define KSFT_SKIP  4 +/* Treat skip as pass */ +#define KSFT_SKIP  KSFT_PASS  /* counters */  struct ksft_count { @@ -28,6 +29,7 @@ struct ksft_count {  	unsigned int ksft_xfail;  	unsigned int ksft_xpass;  	unsigned int ksft_xskip; +	unsigned int ksft_error;  };  static struct ksft_count ksft_cnt; @@ -36,7 +38,7 @@ static inline int ksft_test_num(void)  {  	return ksft_cnt.ksft_pass + ksft_cnt.ksft_fail +  		ksft_cnt.ksft_xfail + ksft_cnt.ksft_xpass + -		ksft_cnt.ksft_xskip; +		ksft_cnt.ksft_xskip + ksft_cnt.ksft_error;  }  static inline void ksft_inc_pass_cnt(void) { ksft_cnt.ksft_pass++; } @@ -44,6 +46,14 @@ static inline void ksft_inc_fail_cnt(void) { ksft_cnt.ksft_fail++; }  static inline void ksft_inc_xfail_cnt(void) { ksft_cnt.ksft_xfail++; }  static inline void ksft_inc_xpass_cnt(void) { ksft_cnt.ksft_xpass++; }  static inline void ksft_inc_xskip_cnt(void) { ksft_cnt.ksft_xskip++; } +static inline void ksft_inc_error_cnt(void) { ksft_cnt.ksft_error++; } + +static inline int ksft_get_pass_cnt(void) { return ksft_cnt.ksft_pass; } +static inline int ksft_get_fail_cnt(void) { return ksft_cnt.ksft_fail; } +static inline int ksft_get_xfail_cnt(void) { return ksft_cnt.ksft_xfail; } +static inline int ksft_get_xpass_cnt(void) { return ksft_cnt.ksft_xpass; } +static inline int ksft_get_xskip_cnt(void) { return ksft_cnt.ksft_xskip; } +static inline int ksft_get_error_cnt(void) { return ksft_cnt.ksft_error; }  static inline void ksft_print_header(void)  { @@ -52,6 +62,10 @@ static inline void ksft_print_header(void)  static inline void ksft_print_cnts(void)  { +	printf("Pass %d Fail %d Xfail %d Xpass %d Skip %d Error %d\n", +		ksft_cnt.ksft_pass, ksft_cnt.ksft_fail, +		ksft_cnt.ksft_xfail, ksft_cnt.ksft_xpass, +		ksft_cnt.ksft_xskip, ksft_cnt.ksft_error);  	printf("1..%d\n", ksft_test_num());  } @@ -101,6 +115,18 @@ static inline void ksft_test_result_skip(const char *msg, ...)  	va_end(args);  } +static inline void ksft_test_result_error(const char *msg, ...) +{ +	va_list args; + +	ksft_cnt.ksft_error++; + +	va_start(args, msg); +	printf("not ok %d # error ", ksft_test_num()); +	vprintf(msg, args); +	va_end(args); +} +  static inline int ksft_exit_pass(void)  {  	ksft_print_cnts(); |