test/run-tests.c

Thu, 03 Sep 2026 12:13:05 +0200

author
Mike Becker <universe@uap-core.de>
date
Thu, 03 Sep 2026 12:13:05 +0200
changeset 214
31d73d150c76
parent 213
cf7b86d79d35
permissions
-rw-r--r--

make all should really build all (including the tests)

we removed the tests from the all-target initially
because they will cause warnings with compilers not
supporting C23

but we should not care too much about this

148
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1 /*
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
3 *
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
4 * Copyright 2026 Mike Becker. All rights reserved.
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
5 *
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
8 *
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
11 *
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
15 *
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
27 *
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
28 */
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
29
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
30 #include "ucxtest.h"
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
31
149
ea2448961441 add 150 example games to test PGN parser
Mike Becker <universe@uap-core.de>
parents: 148
diff changeset
32 CxTestSuite *test_real_pgn_suite(void);
179
5ef724e21702 implement draw due to insufficient material
Mike Becker <universe@uap-core.de>
parents: 149
diff changeset
33 CxTestSuite *test_rules_helper_suite(void);
148
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
34
213
cf7b86d79d35 add (empty) test suites for all pieces
Mike Becker <universe@uap-core.de>
parents: 186
diff changeset
35 CxTestSuite *test_pawn_suite(void);
cf7b86d79d35 add (empty) test suites for all pieces
Mike Becker <universe@uap-core.de>
parents: 186
diff changeset
36 CxTestSuite *test_rook_suite(void);
cf7b86d79d35 add (empty) test suites for all pieces
Mike Becker <universe@uap-core.de>
parents: 186
diff changeset
37 CxTestSuite *test_knight_suite(void);
cf7b86d79d35 add (empty) test suites for all pieces
Mike Becker <universe@uap-core.de>
parents: 186
diff changeset
38 CxTestSuite *test_bishop_suite(void);
cf7b86d79d35 add (empty) test suites for all pieces
Mike Becker <universe@uap-core.de>
parents: 186
diff changeset
39 CxTestSuite *test_queen_suite(void);
cf7b86d79d35 add (empty) test suites for all pieces
Mike Becker <universe@uap-core.de>
parents: 186
diff changeset
40 CxTestSuite *test_king_suite(void);
cf7b86d79d35 add (empty) test suites for all pieces
Mike Becker <universe@uap-core.de>
parents: 186
diff changeset
41
148
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
42 int main(void) {
149
ea2448961441 add 150 example games to test PGN parser
Mike Becker <universe@uap-core.de>
parents: 148
diff changeset
43 CxTestSuite *suites[] = {
179
5ef724e21702 implement draw due to insufficient material
Mike Becker <universe@uap-core.de>
parents: 149
diff changeset
44 test_real_pgn_suite(),
213
cf7b86d79d35 add (empty) test suites for all pieces
Mike Becker <universe@uap-core.de>
parents: 186
diff changeset
45 test_rules_helper_suite(),
cf7b86d79d35 add (empty) test suites for all pieces
Mike Becker <universe@uap-core.de>
parents: 186
diff changeset
46 test_pawn_suite(),
cf7b86d79d35 add (empty) test suites for all pieces
Mike Becker <universe@uap-core.de>
parents: 186
diff changeset
47 test_rook_suite(),
cf7b86d79d35 add (empty) test suites for all pieces
Mike Becker <universe@uap-core.de>
parents: 186
diff changeset
48 test_knight_suite(),
cf7b86d79d35 add (empty) test suites for all pieces
Mike Becker <universe@uap-core.de>
parents: 186
diff changeset
49 test_bishop_suite(),
cf7b86d79d35 add (empty) test suites for all pieces
Mike Becker <universe@uap-core.de>
parents: 186
diff changeset
50 test_queen_suite(),
cf7b86d79d35 add (empty) test suites for all pieces
Mike Becker <universe@uap-core.de>
parents: 186
diff changeset
51 test_king_suite(),
149
ea2448961441 add 150 example games to test PGN parser
Mike Becker <universe@uap-core.de>
parents: 148
diff changeset
52 };
ea2448961441 add 150 example games to test PGN parser
Mike Becker <universe@uap-core.de>
parents: 148
diff changeset
53 size_t suites_count = sizeof(suites)/sizeof(CxTestSuite *);
ea2448961441 add 150 example games to test PGN parser
Mike Becker <universe@uap-core.de>
parents: 148
diff changeset
54 unsigned int failure = 0, success = 0;
ea2448961441 add 150 example games to test PGN parser
Mike Becker <universe@uap-core.de>
parents: 148
diff changeset
55 for (size_t i = 0; i < suites_count; i++) {
ea2448961441 add 150 example games to test PGN parser
Mike Becker <universe@uap-core.de>
parents: 148
diff changeset
56 cx_test_run_stdout(suites[i]);
ea2448961441 add 150 example games to test PGN parser
Mike Becker <universe@uap-core.de>
parents: 148
diff changeset
57 failure += suites[i]->failure;
ea2448961441 add 150 example games to test PGN parser
Mike Becker <universe@uap-core.de>
parents: 148
diff changeset
58 success += suites[i]->success;
ea2448961441 add 150 example games to test PGN parser
Mike Becker <universe@uap-core.de>
parents: 148
diff changeset
59 cx_test_suite_free(suites[i]);
ea2448961441 add 150 example games to test PGN parser
Mike Becker <universe@uap-core.de>
parents: 148
diff changeset
60 }
179
5ef724e21702 implement draw due to insufficient material
Mike Becker <universe@uap-core.de>
parents: 149
diff changeset
61 printf("\nTotal success: %u | failure: %u\n", success, failure);
149
ea2448961441 add 150 example games to test PGN parser
Mike Becker <universe@uap-core.de>
parents: 148
diff changeset
62
186
8230904458a7 fix regression in network play: we have to transmit capture/check(mate) flags
Mike Becker <universe@uap-core.de>
parents: 179
diff changeset
63 return failure > 0;
148
6cc15ba51424 add test directory and make target for tests
Mike Becker <universe@uap-core.de>
parents:
diff changeset
64 }

mercurial