summaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorHugo Locurcio <hugo.locurcio@hugo.pro>2024-04-11 00:07:42 +0200
committerHugo Locurcio <hugo.locurcio@hugo.pro>2024-04-11 00:07:42 +0200
commit7467ce6405167b16d9e6d6505a409cc67e88d309 (patch)
tree240198f46e2a4fc1481397f0a139f2b4d9ecb01a /main
parent83b916bb00eb8cac4584143a80f5cfad7ce1e908 (diff)
downloadredot-engine-7467ce6405167b16d9e6d6505a409cc67e88d309.tar.gz
Exit with an error if using `--test` on binary without unit tests compiled
This makes it clearer that `tests=yes` should be used at compile-time. Previously, the engine would run as if the argument wasn't passed, which can be confusing.
Diffstat (limited to 'main')
-rw-r--r--main/main.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/main/main.cpp b/main/main.cpp
index 357033b6d8..a89dcc296e 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -838,21 +838,26 @@ void Main::test_cleanup() {
#endif
int Main::test_entrypoint(int argc, char *argv[], bool &tests_need_run) {
-#ifdef TESTS_ENABLED
for (int x = 0; x < argc; x++) {
if ((strncmp(argv[x], "--test", 6) == 0) && (strlen(argv[x]) == 6)) {
tests_need_run = true;
+#ifdef TESTS_ENABLED
// TODO: need to come up with different test contexts.
// Not every test requires high-level functionality like `ClassDB`.
test_setup();
int status = test_main(argc, argv);
test_cleanup();
return status;
+#else
+ ERR_PRINT(
+ "`--test` was specified on the command line, but this Godot binary was compiled without support for unit tests. Aborting.\n"
+ "To be able to run unit tests, use the `tests=yes` SCons option when compiling Godot.\n");
+ return EXIT_FAILURE;
+#endif
}
}
-#endif
tests_need_run = false;
- return 0;
+ return EXIT_SUCCESS;
}
/* Engine initialization