Branch data Line data Source code
1 : : #include "sute.h"
2 : :
3 : : /**
4 : : * @brief Run the main application system test suite
5 : : *
6 : : * @details
7 : : * System tests answer the question a user would ask after building the
8 : : * program: does the real `precizer` executable behave correctly when it is
9 : : * launched with command-line options, real files, real directories, and a real
10 : : * SQLite database. They are broader than unit tests, which usually check one
11 : : * function or one small rule in isolation. They are also different from
12 : : * mock-based tests, which deliberately replace selected operating-system or
13 : : * library behavior so rare error paths can be tested safely and repeatably.
14 : : *
15 : : * Some behavior can only be trusted through system tests because it depends on
16 : : * process boundaries and external state. Examples include command-line parsing
17 : : * as a user sees it, stdout and stderr output, filesystem traversal, database
18 : : * persistence, background runs, interruption handling, and crash/resume
19 : : * scenarios. Those checks need the built application, its test workspace, and
20 : : * the operating system to work together instead of only calling internal C
21 : : * functions directly
22 : : *
23 : : */
24 : 1 : Return comprehensive_system_testing(void)
25 : : {
26 : 1 : INITTEST;
27 : :
28 : 1 : enum run_mode prev_run_mode = run_external;
29 : :
30 [ + - ]: 1 : run_external = EXTERNAL_CALL;
31 : :
32 : : #include "comprehensive_unit_and_system_testing.cc"
33 : :
34 : 1 : SUTE(test0038,"SHA512 checkpoint and resume persistence scenarios");
35 : :
36 : 1 : run_external = prev_run_mode;
37 : :
38 : 1 : RETURN_STATUS;
39 : : }
|