| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #ifndef TEST_RUNNER_H
- #define TEST_RUNNER_H
- #include "lfs.h"
- // generated test configurations
- enum test_types {
- TEST_NORMAL = 0x1,
- TEST_REENTRANT = 0x2,
- TEST_VALGRIND = 0x4,
- };
- typedef uint8_t test_types_t;
- typedef uintmax_t test_define_t;
- struct test_case {
- const char *id;
- const char *name;
- const char *path;
- test_types_t types;
- size_t permutations;
- const test_define_t *const *defines;
- const uint8_t *define_map;
- bool (*filter)(struct lfs_config *cfg, uint32_t perm);
- void (*run)(struct lfs_config *cfg, uint32_t perm);
- };
- struct test_suite {
- const char *id;
- const char *name;
- const char *path;
- const char *const *define_names;
- size_t define_count;
- const struct test_case *const *cases;
- size_t case_count;
- };
- // TODO remove this indirection
- extern const struct test_suite *test_suites[];
- extern const size_t test_suite_count;
- // access generated test defines
- test_define_t test_define(size_t define);
- // a few preconfigured defines that control how tests run
- #define READ_SIZE test_define(0)
- #define PROG_SIZE test_define(1)
- #define BLOCK_SIZE test_define(2)
- #define BLOCK_COUNT test_define(3)
- #define BLOCK_CYCLES test_define(4)
- #define CACHE_SIZE test_define(5)
- #define LOOKAHEAD_SIZE test_define(6)
- #define ERASE_VALUE test_define(7)
- #define ERASE_CYCLES test_define(8)
- #define BADBLOCK_BEHAVIOR test_define(9)
- #endif
|