| /* |
| * kselftest.h: kselftest framework return codes to include from |
| * selftests. |
| * |
| * Copyright (c) 2014 Shuah Khan <shuahkh@osg.samsung.com> |
| * Copyright (c) 2014 Samsung Electronics Co., Ltd. |
| * |
| * This file is released under the GPLv2. |
| */ |
| #ifndef __KSELFTEST_H |
| #define __KSELFTEST_H |
| |
| #include <stdlib.h> |
| #include <unistd.h> |
| |
| /* define kselftest exit codes */ |
| #define KSFT_PASS 0 |
| #define KSFT_FAIL 1 |
| #define KSFT_XFAIL 2 |
| #define KSFT_XPASS 3 |
| #define KSFT_SKIP 4 |
| |
| /* counters */ |
| struct ksft_count { |
| unsigned int ksft_pass; |
| unsigned int ksft_fail; |
| unsigned int ksft_xfail; |
| unsigned int ksft_xpass; |
| unsigned int ksft_xskip; |
| }; |
| |
| static struct ksft_count ksft_cnt; |
| |
| static inline void ksft_inc_pass_cnt(void) { ksft_cnt.ksft_pass++; } |
| 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_print_cnts(void) |
| { |
| printf("Pass: %d Fail: %d Xfail: %d Xpass: %d, Xskip: %d\n", |
| ksft_cnt.ksft_pass, ksft_cnt.ksft_fail, |
| ksft_cnt.ksft_xfail, ksft_cnt.ksft_xpass, |
| ksft_cnt.ksft_xskip); |
| } |
| |
| static inline int ksft_exit_pass(void) |
| { |
| exit(KSFT_PASS); |
| } |
| static inline int ksft_exit_fail(void) |
| { |
| exit(KSFT_FAIL); |
| } |
| static inline int ksft_exit_xfail(void) |
| { |
| exit(KSFT_XFAIL); |
| } |
| static inline int ksft_exit_xpass(void) |
| { |
| exit(KSFT_XPASS); |
| } |
| static inline int ksft_exit_skip(void) |
| { |
| exit(KSFT_SKIP); |
| } |
| |
| #endif /* __KSELFTEST_H */ |