162306a36Sopenharmony_ci// SPDX-License-Identifier: MIT 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci/* 462306a36Sopenharmony_ci * Copyright © 2019 Intel Corporation 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#ifndef __SELFTEST_H__ 862306a36Sopenharmony_ci#define __SELFTEST_H__ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#include <linux/compiler.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#define selftest(name, func) int func(void); 1362306a36Sopenharmony_ci#include "selftests.h" 1462306a36Sopenharmony_ci#undef selftest 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_cistruct subtest { 1762306a36Sopenharmony_ci int (*func)(void *data); 1862306a36Sopenharmony_ci const char *name; 1962306a36Sopenharmony_ci}; 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciint __subtests(const char *caller, 2262306a36Sopenharmony_ci const struct subtest *st, 2362306a36Sopenharmony_ci int count, 2462306a36Sopenharmony_ci void *data); 2562306a36Sopenharmony_ci#define subtests(T, data) \ 2662306a36Sopenharmony_ci __subtests(__func__, T, ARRAY_SIZE(T), data) 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci#define SUBTEST(x) { x, #x } 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci#endif /* __SELFTEST_H__ */ 31