1*4882a593Smuzhiyun // SPDX-License-Identifier: MIT 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun /* 4*4882a593Smuzhiyun * Copyright © 2019 Intel Corporation 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #ifndef __SELFTEST_H__ 8*4882a593Smuzhiyun #define __SELFTEST_H__ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #include <linux/compiler.h> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #define selftest(name, func) int func(void); 13*4882a593Smuzhiyun #include "selftests.h" 14*4882a593Smuzhiyun #undef selftest 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun struct subtest { 17*4882a593Smuzhiyun int (*func)(void *data); 18*4882a593Smuzhiyun const char *name; 19*4882a593Smuzhiyun }; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun int __subtests(const char *caller, 22*4882a593Smuzhiyun const struct subtest *st, 23*4882a593Smuzhiyun int count, 24*4882a593Smuzhiyun void *data); 25*4882a593Smuzhiyun #define subtests(T, data) \ 26*4882a593Smuzhiyun __subtests(__func__, T, ARRAY_SIZE(T), data) 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun #define SUBTEST(x) { x, #x } 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun #endif /* __SELFTEST_H__ */ 31