diff options
author | Andrii Doroshenko (Xrayez) <xrayez@gmail.com> | 2020-08-02 21:30:56 +0300 |
---|---|---|
committer | Andrii Doroshenko (Xrayez) <xrayez@gmail.com> | 2020-08-16 16:41:02 +0300 |
commit | 6f426c3360595593294d910471f3c30407bbd38f (patch) | |
tree | 697a2313e344bf294fc1a67851e2fb0e71d39dd5 /main/main.h | |
parent | 87ae509905e6a4388588472b4edddb791aec56a4 (diff) |
Port ClassDB tests to use doctest
Extracted the most minimal core initialization functionality from
`setup()` and `setup2()` so that `ClassDB` could be tested properly
(input, audio, rendering, physics etc, are excluded).
Display and rendering servers/singletons are not initialized at all.
Due to the fact that most subsystems are disabled, fixed various crashes in the
process (in order):
- `AcceptDialog` OK/cancel swap behavior (used `DisplayServer` while
`register_scene_types()`);
- `make_default_theme` which depends on `RenderingServer`;
- `XRServer` singleton access while calling `register_modules_types()`;
- hidden bug in a way joypads are cleaned up (MacOS and Linux only).
Removed manual `ClassDB` init/cleanup calls from `test_validate_testing.h`.
ClassDB tests:
Co-authored-by: Ignacio Etcheverry <ignalfonsore@gmail.com>
Diffstat (limited to 'main/main.h')
-rw-r--r-- | main/main.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/main/main.h b/main/main.h index 20c0bebefa..75a1c0d8cd 100644 --- a/main/main.h +++ b/main/main.h @@ -48,6 +48,10 @@ public: static int test_entrypoint(int argc, char *argv[], bool &tests_need_run); static Error setup(const char *execpath, int argc, char *argv[], bool p_second_phase = true); static Error setup2(Thread::ID p_main_tid_override = 0); +#ifdef TESTS_ENABLED + static Error test_setup(); + static void test_cleanup(); +#endif static bool start(); static bool iteration(); @@ -58,7 +62,7 @@ public: static void cleanup(); }; -// Test main override is for the testing behaviour +// Test main override is for the testing behaviour. #define TEST_MAIN_OVERRIDE \ bool run_test = false; \ int return_code = Main::test_entrypoint(argc, argv, run_test); \ |