aboutsummaryrefslogtreecommitdiff
path: root/tests/test_common.h
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2023-02-04 17:26:32 +0100
committerSebastiano Tronto <sebastiano@tronto.net>2023-02-04 17:26:32 +0100
commit092270834eac54ed33e634494f9f38ba7fd38fd4 (patch)
tree937c18de782d01209f06ae5d4293737bc39a9d20 /tests/test_common.h
parent9daff8c1625d4cbb5500a50fbfe83b7ecba06f8f (diff)
downloadnissy-092270834eac54ed33e634494f9f38ba7fd38fd4.tar.gz
nissy-092270834eac54ed33e634494f9f38ba7fd38fd4.zip
Some improvements to test suite, ready to go
Diffstat (limited to '')
-rw-r--r--tests/test_common.h34
1 files changed, 28 insertions, 6 deletions
diff --git a/tests/test_common.h b/tests/test_common.h
index ea35ecd..03511ef 100644
--- a/tests/test_common.h
+++ b/tests/test_common.h
@@ -1,19 +1,41 @@
1#ifndef TEST_COMMON_H 1#ifndef TEST_COMMON_H
2#define TEST_COMMON_H 2#define TEST_COMMON_H
3 3
4/*
5 * Common utilities for testing.
6 * A VoidMethod can be used as a setup or teardown method for testing, see
7 * the TestSuite struct. A TestMethod takes a void pointer (usually cast
8 * to some data to be used for testing, but can also be ignored) and returns
9 * a bool: true for pass, false for fail.
10 * A Test consists of a name (string), a TestMethod and an array of void
11 * pointers that describe the test cases. Each element of this array is
12 * passed to the test method sequentially, and the test session stops on
13 * the first failure.
14 * A test suite is just a list of tests with a setup and a teardown method.
15 * The setup method is run once and for all before the first test, and the
16 * teardown is run at the end of the testsuite.
17 * Finally, a TestModule roughly corresponds to a test file. This type is
18 * only used in test.c to collect multiple test modules.
19 */
20
4typedef void (*VoidMethod)(void); 21typedef void (*VoidMethod)(void);
5typedef bool (*TestMethod)(void *); 22typedef bool (*TestMethod)(void *);
6 23
7typedef struct { 24typedef struct {
8 char * name; 25 char * name;
9 TestMethod t; 26 TestMethod t;
10 void ** cases; 27 void ** cases;
11} Test; 28} Test;
12 29
13typedef struct { 30typedef struct {
14 VoidMethod setup; 31 VoidMethod setup;
15 Test ** tests; 32 Test ** tests;
16 VoidMethod teardown; 33 VoidMethod teardown;
17} TestSuite; 34} TestSuite;
18 35
36typedef struct {
37 char * name;
38 TestSuite ** suites;
39} TestModule;
40
19#endif 41#endif

Generated with cgit - Back to sebastiano.tronto.net