summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--editor/editor_node.cpp5
-rw-r--r--editor/import/resource_importer_obj.cpp8
-rw-r--r--editor/import/resource_importer_scene.cpp2
-rw-r--r--editor/plugins/script_editor_plugin.cpp66
-rw-r--r--editor/plugins/script_editor_plugin.h1
-rw-r--r--editor/plugins/script_text_editor.cpp25
-rw-r--r--editor/plugins/text_editor.cpp25
-rw-r--r--modules/visual_script/visual_script_editor.cpp25
-rw-r--r--tests/SCsub5
-rw-r--r--tests/core/io/test_config_file.h (renamed from tests/test_config_file.h)1
-rw-r--r--tests/core/io/test_file_access.h (renamed from tests/test_file_access.h)3
-rw-r--r--tests/core/io/test_image.h (renamed from tests/test_image.h)4
-rw-r--r--tests/core/io/test_json.h (renamed from tests/test_json.h)0
-rw-r--r--tests/core/io/test_marshalls.h (renamed from tests/test_marshalls.h)0
-rw-r--r--tests/core/io/test_pck_packer.h (renamed from tests/test_pck_packer.h)1
-rw-r--r--tests/core/io/test_resource.h (renamed from tests/test_resource.h)0
-rw-r--r--tests/core/io/test_xml_parser.h (renamed from tests/test_xml_parser.h)3
-rw-r--r--tests/core/math/test_aabb.h (renamed from tests/test_aabb.h)4
-rw-r--r--tests/core/math/test_astar.h (renamed from tests/test_astar.h)5
-rw-r--r--tests/core/math/test_basis.h (renamed from tests/test_basis.h)3
-rw-r--r--tests/core/math/test_color.h (renamed from tests/test_color.h)2
-rw-r--r--tests/core/math/test_expression.h (renamed from tests/test_expression.h)0
-rw-r--r--tests/core/math/test_geometry_2d.h (renamed from tests/test_geometry_2d.h)1
-rw-r--r--tests/core/math/test_geometry_3d.h (renamed from tests/test_geometry_3d.h)4
-rw-r--r--tests/core/math/test_math.cpp (renamed from tests/test_math.cpp)14
-rw-r--r--tests/core/math/test_math.h (renamed from tests/test_math.h)2
-rw-r--r--tests/core/math/test_random_number_generator.h (renamed from tests/test_random_number_generator.h)0
-rw-r--r--tests/core/math/test_rect2.h (renamed from tests/test_rect2.h)0
-rw-r--r--tests/core/object/test_class_db.h (renamed from tests/test_class_db.h)9
-rw-r--r--tests/core/object/test_method_bind.h (renamed from tests/test_method_bind.h)4
-rw-r--r--tests/core/object/test_object.h (renamed from tests/test_object.h)4
-rw-r--r--tests/core/string/test_node_path.h (renamed from tests/test_node_path.h)2
-rw-r--r--tests/core/string/test_string.h (renamed from tests/test_string.h)8
-rw-r--r--tests/core/string/test_translation.h (renamed from tests/test_translation.h)3
-rw-r--r--tests/core/templates/test_command_queue.h (renamed from tests/test_command_queue.h)4
-rw-r--r--tests/core/templates/test_list.h (renamed from tests/test_list.h)0
-rw-r--r--tests/core/templates/test_local_vector.h (renamed from tests/test_local_vector.h)0
-rw-r--r--tests/core/templates/test_lru.h (renamed from tests/test_lru.h)1
-rw-r--r--tests/core/templates/test_oa_hash_map.cpp (renamed from tests/test_oa_hash_map.cpp)0
-rw-r--r--tests/core/templates/test_oa_hash_map.h (renamed from tests/test_oa_hash_map.h)2
-rw-r--r--tests/core/templates/test_ordered_hash_map.h (renamed from tests/test_ordered_hash_map.h)3
-rw-r--r--tests/core/templates/test_paged_array.h (renamed from tests/test_paged_array.h)0
-rw-r--r--tests/core/templates/test_vector.h (renamed from tests/test_vector.h)0
-rw-r--r--tests/core/test_crypto.h (renamed from tests/test_crypto.h)1
-rw-r--r--tests/core/test_hashing_context.h (renamed from tests/test_hashing_context.h)0
-rw-r--r--tests/core/test_time.h (renamed from tests/test_time.h)0
-rw-r--r--tests/core/variant/test_array.h (renamed from tests/test_array.h)6
-rw-r--r--tests/core/variant/test_dictionary.h (renamed from tests/test_dictionary.h)3
-rw-r--r--tests/core/variant/test_variant.h (renamed from tests/test_variant.h)0
-rw-r--r--tests/scene/test_code_edit.h (renamed from tests/test_code_edit.h)5
-rw-r--r--tests/scene/test_curve.h (renamed from tests/test_curve.h)2
-rw-r--r--tests/scene/test_gradient.h (renamed from tests/test_gradient.h)2
-rw-r--r--tests/scene/test_gui.cpp (renamed from tests/test_gui.cpp)13
-rw-r--r--tests/scene/test_gui.h (renamed from tests/test_gui.h)2
-rw-r--r--tests/scene/test_path_3d.h (renamed from tests/test_path_3d.h)1
-rw-r--r--tests/scene/test_path_follow_2d.h (renamed from tests/test_path_follow_2d.h)1
-rw-r--r--tests/scene/test_path_follow_3d.h (renamed from tests/test_path_follow_3d.h)1
-rw-r--r--tests/servers/test_physics_2d.cpp (renamed from tests/test_physics_2d.cpp)5
-rw-r--r--tests/servers/test_physics_2d.h (renamed from tests/test_physics_2d.h)2
-rw-r--r--tests/servers/test_physics_3d.cpp (renamed from tests/test_physics_3d.cpp)6
-rw-r--r--tests/servers/test_physics_3d.h (renamed from tests/test_physics_3d.h)2
-rw-r--r--tests/servers/test_render.cpp (renamed from tests/test_render.cpp)5
-rw-r--r--tests/servers/test_render.h (renamed from tests/test_render.h)4
-rw-r--r--tests/servers/test_shader_lang.cpp (renamed from tests/test_shader_lang.cpp)5
-rw-r--r--tests/servers/test_shader_lang.h (renamed from tests/test_shader_lang.h)2
-rw-r--r--tests/servers/test_text_server.h (renamed from tests/test_text_server.h)0
-rw-r--r--tests/test_macros.h6
-rw-r--r--tests/test_main.cpp102
-rw-r--r--tests/test_tools.h2
-rw-r--r--tests/test_utils.cpp2
-rw-r--r--tests/test_utils.h2
71 files changed, 188 insertions, 243 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index 4af7763caa..7d550d5c2f 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -1717,8 +1717,10 @@ void EditorNode::_save_scene(String p_file, int idx) {
err = ResourceSaver::save(p_file, sdata, flg);
- _save_external_resources();
+ // This needs to be emitted before saving external resources.
+ emit_signal(SNAME("scene_saved"), p_file);
+ _save_external_resources();
editor_data.save_editor_external_data();
for (Ref<AnimatedValuesBackup> &E : anim_backups) {
@@ -5712,6 +5714,7 @@ void EditorNode::_bind_methods() {
ADD_SIGNAL(MethodInfo("request_help_search"));
ADD_SIGNAL(MethodInfo("script_add_function_request", PropertyInfo(Variant::OBJECT, "obj"), PropertyInfo(Variant::STRING, "function"), PropertyInfo(Variant::PACKED_STRING_ARRAY, "args")));
ADD_SIGNAL(MethodInfo("resource_saved", PropertyInfo(Variant::OBJECT, "obj")));
+ ADD_SIGNAL(MethodInfo("scene_saved", PropertyInfo(Variant::STRING, "path")));
ADD_SIGNAL(MethodInfo("project_settings_changed"));
}
diff --git a/editor/import/resource_importer_obj.cpp b/editor/import/resource_importer_obj.cpp
index 01af75c338..8eab27b533 100644
--- a/editor/import/resource_importer_obj.cpp
+++ b/editor/import/resource_importer_obj.cpp
@@ -405,11 +405,11 @@ static Error _parse_obj(const String &p_path, List<Ref<Mesh>> &r_meshes, bool p_
current_material_library = l.replace("mtllib", "").strip_edges();
if (!material_map.has(current_material_library)) {
Map<String, Ref<StandardMaterial3D>> lib;
- Error err = _parse_material_library(current_material_library, lib, r_missing_deps);
- if (err == ERR_CANT_OPEN) {
- String dir = p_path.get_base_dir();
- err = _parse_material_library(dir.plus_file(current_material_library), lib, r_missing_deps);
+ String lib_path = current_material_library;
+ if (lib_path.is_relative_path()) {
+ lib_path = p_path.get_base_dir().plus_file(current_material_library);
}
+ Error err = _parse_material_library(lib_path, lib, r_missing_deps);
if (err == OK) {
material_map[current_material_library] = lib;
}
diff --git a/editor/import/resource_importer_scene.cpp b/editor/import/resource_importer_scene.cpp
index 5efb08b95d..dfb3f47f8e 100644
--- a/editor/import/resource_importer_scene.cpp
+++ b/editor/import/resource_importer_scene.cpp
@@ -1428,7 +1428,7 @@ void ResourceImporterScene::get_import_options(List<ImportOption> *r_options, in
r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "meshes/lightmap_texel_size", PROPERTY_HINT_RANGE, "0.001,100,0.001"), 0.1));
r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "skins/use_named_skins"), true));
r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "animation/import"), true));
- r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "animation/fps", PROPERTY_HINT_RANGE, "1,120,1"), 15));
+ r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "animation/fps", PROPERTY_HINT_RANGE, "1,120,1"), 30));
r_options->push_back(ImportOption(PropertyInfo(Variant::STRING, "import_script/path", PROPERTY_HINT_FILE, script_ext_hint), ""));
r_options->push_back(ImportOption(PropertyInfo(Variant::DICTIONARY, "_subresources", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NO_EDITOR), Dictionary()));
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp
index aad378ecec..3f233b3d58 100644
--- a/editor/plugins/script_editor_plugin.cpp
+++ b/editor/plugins/script_editor_plugin.cpp
@@ -989,10 +989,6 @@ void ScriptEditor::_res_saved_callback(const Ref<Resource> &p_res) {
RES script = se->get_edited_resource();
- if (script->is_built_in()) {
- continue; //internal script, who cares
- }
-
if (script == p_res) {
se->tag_saved_version();
}
@@ -1002,6 +998,26 @@ void ScriptEditor::_res_saved_callback(const Ref<Resource> &p_res) {
_trigger_live_script_reload();
}
+void ScriptEditor::_scene_saved_callback(const String &p_path) {
+ // If scene was saved, mark all built-in scripts from that scene as saved.
+ for (int i = 0; i < tab_container->get_child_count(); i++) {
+ ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i));
+ if (!se) {
+ continue;
+ }
+
+ RES edited_res = se->get_edited_resource();
+
+ if (!edited_res->is_built_in()) {
+ continue; // External script, who cares.
+ }
+
+ if (edited_res->get_path().get_slice("::", 0) == p_path) {
+ se->tag_saved_version();
+ }
+ }
+}
+
void ScriptEditor::_trigger_live_script_reload() {
if (!pending_auto_reload && auto_reload_running_scripts) {
call_deferred(SNAME("_live_auto_reload_running_scripts"));
@@ -1525,6 +1541,7 @@ void ScriptEditor::_notification(int p_what) {
editor->connect("stop_pressed", callable_mp(this, &ScriptEditor::_editor_stop));
editor->connect("script_add_function_request", callable_mp(this, &ScriptEditor::_add_callback));
editor->connect("resource_saved", callable_mp(this, &ScriptEditor::_res_saved_callback));
+ editor->connect("scene_saved", callable_mp(this, &ScriptEditor::_scene_saved_callback));
editor->get_filesystem_dock()->connect("files_moved", callable_mp(this, &ScriptEditor::_files_moved));
editor->get_filesystem_dock()->connect("file_removed", callable_mp(this, &ScriptEditor::_file_removed));
script_list->connect("item_selected", callable_mp(this, &ScriptEditor::_script_selected));
@@ -1619,7 +1636,7 @@ void ScriptEditor::close_builtin_scripts_from_scene(const String &p_scene) {
}
if (script->is_built_in() && script->get_path().begins_with(p_scene)) { //is an internal script and belongs to scene being closed
- _close_tab(i);
+ _close_tab(i, false);
i--;
}
}
@@ -1926,20 +1943,7 @@ void ScriptEditor::_update_script_names() {
// to update original path to previously edited resource.
se->set_meta("_edit_res_path", path);
}
- bool built_in = !path.is_resource_file();
- String name;
-
- if (built_in) {
- name = path.get_file();
- const String &resource_name = se->get_edited_resource()->get_name();
- if (resource_name != "") {
- // If the built-in script has a custom resource name defined,
- // display the built-in script name as follows: `ResourceName (scene_file.tscn)`
- name = vformat("%s (%s)", resource_name, name.substr(0, name.find("::", 0)));
- }
- } else {
- name = se->get_name();
- }
+ String name = se->get_name();
_ScriptEditorItemData sd;
sd.icon = icon;
@@ -2403,7 +2407,17 @@ void ScriptEditor::save_current_script() {
}
}
- editor->save_resource(resource);
+ if (resource->is_built_in()) {
+ // If built-in script, save the scene instead.
+ const String scene_path = resource->get_path().get_slice("::", 0);
+ if (!scene_path.is_empty()) {
+ Vector<String> scene_to_save;
+ scene_to_save.push_back(scene_path);
+ editor->save_scene_list(scene_to_save);
+ }
+ } else {
+ editor->save_resource(resource);
+ }
if (script != nullptr) {
const Vector<DocData::ClassDoc> &documentations = script->get_documentation();
@@ -2416,6 +2430,8 @@ void ScriptEditor::save_current_script() {
}
void ScriptEditor::save_all_scripts() {
+ Vector<String> scenes_to_save;
+
for (int i = 0; i < tab_container->get_child_count(); i++) {
ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i));
if (!se) {
@@ -2474,9 +2490,19 @@ void ScriptEditor::save_all_scripts() {
update_doc(doc.name);
}
}
+ } else {
+ // For built-in scripts, save their scenes instead.
+ const String scene_path = edited_res->get_path().get_slice("::", 0);
+ if (!scenes_to_save.has(scene_path)) {
+ scenes_to_save.push_back(scene_path);
+ }
}
}
+ if (!scenes_to_save.is_empty()) {
+ editor->save_scene_list(scenes_to_save);
+ }
+
_update_script_names();
EditorFileSystem::get_singleton()->update_script_classes();
}
diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h
index 2b0bdfd109..0adeca031e 100644
--- a/editor/plugins/script_editor_plugin.h
+++ b/editor/plugins/script_editor_plugin.h
@@ -365,6 +365,7 @@ class ScriptEditor : public PanelContainer {
void _add_callback(Object *p_obj, const String &p_function, const PackedStringArray &p_args);
void _res_saved_callback(const Ref<Resource> &p_res);
+ void _scene_saved_callback(const String &p_path);
bool open_textfile_after_create = true;
bool trim_trailing_whitespace_on_save;
diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp
index 24cdc06d78..a655420d27 100644
--- a/editor/plugins/script_text_editor.cpp
+++ b/editor/plugins/script_text_editor.cpp
@@ -375,18 +375,21 @@ void ScriptTextEditor::ensure_focus() {
String ScriptTextEditor::get_name() {
String name;
- if (!script->is_built_in()) {
- name = script->get_path().get_file();
- if (is_unsaved()) {
- if (script->get_path().is_empty()) {
- name = TTR("[unsaved]");
- }
- name += "(*)";
+ name = script->get_path().get_file();
+ if (name.is_empty()) {
+ // This appears for newly created built-in scripts before saving the scene.
+ name = TTR("[unsaved]");
+ } else if (script->is_built_in()) {
+ const String &script_name = script->get_name();
+ if (script_name != "") {
+ // If the built-in script has a custom resource name defined,
+ // display the built-in script name as follows: `ResourceName (scene_file.tscn)`
+ name = vformat("%s (%s)", script_name, name.get_slice("::", 0));
}
- } else if (script->get_name() != "") {
- name = script->get_name();
- } else {
- name = script->get_class() + "(" + itos(script->get_instance_id()) + ")";
+ }
+
+ if (is_unsaved()) {
+ name += "(*)";
}
return name;
diff --git a/editor/plugins/text_editor.cpp b/editor/plugins/text_editor.cpp
index 3b45f32927..8186c2c84c 100644
--- a/editor/plugins/text_editor.cpp
+++ b/editor/plugins/text_editor.cpp
@@ -65,18 +65,21 @@ void TextEditor::_load_theme_settings() {
String TextEditor::get_name() {
String name;
- if (!text_file->is_built_in()) {
- name = text_file->get_path().get_file();
- if (is_unsaved()) {
- if (text_file->get_path().is_empty()) {
- name = TTR("[unsaved]");
- }
- name += "(*)";
+ name = text_file->get_path().get_file();
+ if (name.is_empty()) {
+ // This appears for newly created built-in text_files before saving the scene.
+ name = TTR("[unsaved]");
+ } else if (text_file->is_built_in()) {
+ const String &text_file_name = text_file->get_name();
+ if (text_file_name != "") {
+ // If the built-in text_file has a custom resource name defined,
+ // display the built-in text_file name as follows: `ResourceName (scene_file.tscn)`
+ name = vformat("%s (%s)", text_file_name, name.get_slice("::", 0));
}
- } else if (text_file->get_name() != "") {
- name = text_file->get_name();
- } else {
- name = text_file->get_class() + "(" + itos(text_file->get_instance_id()) + ")";
+ }
+
+ if (is_unsaved()) {
+ name += "(*)";
}
return name;
diff --git a/modules/visual_script/visual_script_editor.cpp b/modules/visual_script/visual_script_editor.cpp
index 7b4fbc67fc..c74d6f9a4a 100644
--- a/modules/visual_script/visual_script_editor.cpp
+++ b/modules/visual_script/visual_script_editor.cpp
@@ -2587,18 +2587,21 @@ void VisualScriptEditor::reload_text() {
String VisualScriptEditor::get_name() {
String name;
- if (!script->is_built_in()) {
- name = script->get_path().get_file();
- if (is_unsaved()) {
- if (script->get_path().is_empty()) {
- name = TTR("[unsaved]");
- }
- name += "(*)";
+ name = script->get_path().get_file();
+ if (name.is_empty()) {
+ // This appears for newly created built-in scripts before saving the scene.
+ name = TTR("[unsaved]");
+ } else if (script->is_built_in()) {
+ const String &script_name = script->get_name();
+ if (script_name != "") {
+ // If the built-in script has a custom resource name defined,
+ // display the built-in script name as follows: `ResourceName (scene_file.tscn)`
+ name = vformat("%s (%s)", script_name, name.get_slice("::", 0));
}
- } else if (script->get_name() != "") {
- name = script->get_name();
- } else {
- name = script->get_class() + "(" + itos(script->get_instance_id()) + ")";
+ }
+
+ if (is_unsaved()) {
+ name += "(*)";
}
return name;
diff --git a/tests/SCsub b/tests/SCsub
index 0f3c14f0bd..31466fffc1 100644
--- a/tests/SCsub
+++ b/tests/SCsub
@@ -22,6 +22,11 @@ if env_tests["platform"] == "windows":
if env_tests.msvc:
env_tests.Append(CCFLAGS=["/bigobj"])
+env_tests.add_source_files(env.tests_sources, "core/*.cpp")
+env_tests.add_source_files(env.tests_sources, "core/math/*.cpp")
+env_tests.add_source_files(env.tests_sources, "core/templates/*.cpp")
+env_tests.add_source_files(env.tests_sources, "scene/*.cpp")
+env_tests.add_source_files(env.tests_sources, "servers/*.cpp")
env_tests.add_source_files(env.tests_sources, "*.cpp")
lib = env_tests.add_library("tests", env.tests_sources)
diff --git a/tests/test_config_file.h b/tests/core/io/test_config_file.h
index e3f40e16fd..f6fbaf9a88 100644
--- a/tests/test_config_file.h
+++ b/tests/core/io/test_config_file.h
@@ -32,6 +32,7 @@
#define TEST_CONFIG_FILE_H
#include "core/io/config_file.h"
+#include "core/os/os.h"
#include "tests/test_macros.h"
diff --git a/tests/test_file_access.h b/tests/core/io/test_file_access.h
index b3da16c1d1..4ffc57afe4 100644
--- a/tests/test_file_access.h
+++ b/tests/core/io/test_file_access.h
@@ -32,7 +32,8 @@
#define TEST_FILE_ACCESS_H
#include "core/io/file_access.h"
-#include "test_utils.h"
+#include "tests/test_macros.h"
+#include "tests/test_utils.h"
namespace TestFileAccess {
diff --git a/tests/test_image.h b/tests/core/io/test_image.h
index 99c2a9380d..c4c5f1e18b 100644
--- a/tests/test_image.h
+++ b/tests/core/io/test_image.h
@@ -31,10 +31,10 @@
#ifndef TEST_IMAGE_H
#define TEST_IMAGE_H
-#include "core/io/file_access_pack.h"
#include "core/io/image.h"
-#include "test_utils.h"
+#include "core/os/os.h"
+#include "tests/test_utils.h"
#include "thirdparty/doctest/doctest.h"
namespace TestImage {
diff --git a/tests/test_json.h b/tests/core/io/test_json.h
index 3af58dfa1c..3af58dfa1c 100644
--- a/tests/test_json.h
+++ b/tests/core/io/test_json.h
diff --git a/tests/test_marshalls.h b/tests/core/io/test_marshalls.h
index 6bd916164e..6bd916164e 100644
--- a/tests/test_marshalls.h
+++ b/tests/core/io/test_marshalls.h
diff --git a/tests/test_pck_packer.h b/tests/core/io/test_pck_packer.h
index 06e4e64963..ae51d58522 100644
--- a/tests/test_pck_packer.h
+++ b/tests/core/io/test_pck_packer.h
@@ -35,6 +35,7 @@
#include "core/io/pck_packer.h"
#include "core/os/os.h"
+#include "tests/test_utils.h"
#include "thirdparty/doctest/doctest.h"
namespace TestPCKPacker {
diff --git a/tests/test_resource.h b/tests/core/io/test_resource.h
index cee3281995..cee3281995 100644
--- a/tests/test_resource.h
+++ b/tests/core/io/test_resource.h
diff --git a/tests/test_xml_parser.h b/tests/core/io/test_xml_parser.h
index 55de048d6a..2d00f29ddf 100644
--- a/tests/test_xml_parser.h
+++ b/tests/core/io/test_xml_parser.h
@@ -31,10 +31,7 @@
#ifndef TEST_XML_PARSER_H
#define TEST_XML_PARSER_H
-#include <inttypes.h>
-
#include "core/io/xml_parser.h"
-#include "core/string/ustring.h"
#include "tests/test_macros.h"
diff --git a/tests/test_aabb.h b/tests/core/math/test_aabb.h
index 0312e185a1..b838bed171 100644
--- a/tests/test_aabb.h
+++ b/tests/core/math/test_aabb.h
@@ -32,10 +32,8 @@
#define TEST_AABB_H
#include "core/math/aabb.h"
-#include "core/string/print_string.h"
-#include "tests/test_macros.h"
-#include "thirdparty/doctest/doctest.h"
+#include "tests/test_macros.h"
namespace TestAABB {
diff --git a/tests/test_astar.h b/tests/core/math/test_astar.h
index 137c477946..2c183374ac 100644
--- a/tests/test_astar.h
+++ b/tests/core/math/test_astar.h
@@ -32,11 +32,6 @@
#define TEST_ASTAR_H
#include "core/math/a_star.h"
-#include "core/math/math_funcs.h"
-#include "core/os/os.h"
-
-#include <math.h>
-#include <stdio.h>
#include "tests/test_macros.h"
diff --git a/tests/test_basis.h b/tests/core/math/test_basis.h
index b254d9fb7f..500c069a33 100644
--- a/tests/test_basis.h
+++ b/tests/core/math/test_basis.h
@@ -31,9 +31,8 @@
#ifndef TEST_BASIS_H
#define TEST_BASIS_H
+#include "core/math/basis.h"
#include "core/math/random_number_generator.h"
-#include "core/os/os.h"
-#include "core/string/ustring.h"
#include "tests/test_macros.h"
diff --git a/tests/test_color.h b/tests/core/math/test_color.h
index bffa890ae2..82cf786f7a 100644
--- a/tests/test_color.h
+++ b/tests/core/math/test_color.h
@@ -33,7 +33,7 @@
#include "core/math/color.h"
-#include "thirdparty/doctest/doctest.h"
+#include "tests/test_macros.h"
namespace TestColor {
diff --git a/tests/test_expression.h b/tests/core/math/test_expression.h
index cb1d29389f..cb1d29389f 100644
--- a/tests/test_expression.h
+++ b/tests/core/math/test_expression.h
diff --git a/tests/test_geometry_2d.h b/tests/core/math/test_geometry_2d.h
index 25af8c355e..8f6669b572 100644
--- a/tests/test_geometry_2d.h
+++ b/tests/core/math/test_geometry_2d.h
@@ -32,7 +32,6 @@
#define TEST_GEOMETRY_2D_H
#include "core/math/geometry_2d.h"
-#include "core/templates/vector.h"
#include "thirdparty/doctest/doctest.h"
diff --git a/tests/test_geometry_3d.h b/tests/core/math/test_geometry_3d.h
index ae30737fe2..f42003ffcf 100644
--- a/tests/test_geometry_3d.h
+++ b/tests/core/math/test_geometry_3d.h
@@ -32,11 +32,7 @@
#define TEST_GEOMETRY_3D_H
#include "core/math/geometry_3d.h"
-#include "core/math/plane.h"
-#include "core/math/random_number_generator.h"
-#include "core/math/vector3.h"
#include "tests/test_macros.h"
-#include "vector"
namespace TestGeometry3D {
TEST_CASE("[Geometry3D] Closest Points Between Segments") {
diff --git a/tests/test_math.cpp b/tests/core/math/test_math.cpp
index 72272382ce..6ec9bc2473 100644
--- a/tests/test_math.cpp
+++ b/tests/core/math/test_math.cpp
@@ -30,23 +30,11 @@
#include "test_math.h"
-#include "core/io/file_access.h"
-#include "core/math/basis.h"
#include "core/math/camera_matrix.h"
#include "core/math/delaunay_3d.h"
#include "core/math/geometry_2d.h"
-#include "core/math/math_funcs.h"
-#include "core/math/transform_3d.h"
-#include "core/os/keyboard.h"
+#include "core/os/main_loop.h"
#include "core/os/os.h"
-#include "core/string/print_string.h"
-#include "core/string/ustring.h"
-#include "core/templates/vmap.h"
-#include "core/variant/method_ptrcall.h"
-#include "core/variant/variant.h"
-#include "scene/main/node.h"
-#include "scene/resources/texture.h"
-#include "servers/rendering/shader_language.h"
namespace TestMath {
diff --git a/tests/test_math.h b/tests/core/math/test_math.h
index 4375925bd5..ab5fb6a050 100644
--- a/tests/test_math.h
+++ b/tests/core/math/test_math.h
@@ -31,7 +31,7 @@
#ifndef TEST_MATH_H
#define TEST_MATH_H
-#include "core/os/main_loop.h"
+class MainLoop;
namespace TestMath {
diff --git a/tests/test_random_number_generator.h b/tests/core/math/test_random_number_generator.h
index 39c4771c19..39c4771c19 100644
--- a/tests/test_random_number_generator.h
+++ b/tests/core/math/test_random_number_generator.h
diff --git a/tests/test_rect2.h b/tests/core/math/test_rect2.h
index 3d9fe5a32e..3d9fe5a32e 100644
--- a/tests/test_rect2.h
+++ b/tests/core/math/test_rect2.h
diff --git a/tests/test_class_db.h b/tests/core/object/test_class_db.h
index 4b058a4c67..4b27905485 100644
--- a/tests/test_class_db.h
+++ b/tests/core/object/test_class_db.h
@@ -31,14 +31,9 @@
#ifndef TEST_CLASS_DB_H
#define TEST_CLASS_DB_H
-#include "core/register_core_types.h"
-
+#include "core/core_bind.h"
#include "core/core_constants.h"
-#include "core/os/os.h"
-#include "core/string/string_name.h"
-#include "core/string/ustring.h"
-#include "core/templates/ordered_hash_map.h"
-#include "core/variant/variant.h"
+#include "core/object/class_db.h"
#include "tests/test_macros.h"
diff --git a/tests/test_method_bind.h b/tests/core/object/test_method_bind.h
index 879e7949e2..c3a869a8a4 100644
--- a/tests/test_method_bind.h
+++ b/tests/core/object/test_method_bind.h
@@ -35,10 +35,6 @@
#include "tests/test_macros.h"
-#include <inttypes.h>
-#include <stdio.h>
-#include <wchar.h>
-
namespace TestMethodBind {
class MethodBindTester : public Object {
diff --git a/tests/test_object.h b/tests/core/object/test_object.h
index 8cb7116a20..4109ea521a 100644
--- a/tests/test_object.h
+++ b/tests/core/object/test_object.h
@@ -32,9 +32,11 @@
#define TEST_OBJECT_H
#include "core/core_string_names.h"
+#include "core/object/class_db.h"
#include "core/object/object.h"
+#include "core/object/script_language.h"
-#include "thirdparty/doctest/doctest.h"
+#include "tests/test_macros.h"
// Declared in global namespace because of GDCLASS macro warning (Windows):
// "Unqualified friend declaration referring to type outside of the nearest enclosing namespace
diff --git a/tests/test_node_path.h b/tests/core/string/test_node_path.h
index f30fe53c5a..0216a30f8f 100644
--- a/tests/test_node_path.h
+++ b/tests/core/string/test_node_path.h
@@ -33,7 +33,7 @@
#include "core/string/node_path.h"
-#include "thirdparty/doctest/doctest.h"
+#include "tests/test_macros.h"
namespace TestNodePath {
diff --git a/tests/test_string.h b/tests/core/string/test_string.h
index 28d1089d2f..e5b26cf5a4 100644
--- a/tests/test_string.h
+++ b/tests/core/string/test_string.h
@@ -31,15 +31,7 @@
#ifndef TEST_STRING_H
#define TEST_STRING_H
-#include <inttypes.h>
-#include <stdio.h>
-#include <wchar.h>
-
-#include "core/io/ip_address.h"
-#include "core/os/main_loop.h"
-#include "core/os/os.h"
#include "core/string/ustring.h"
-#include "core/variant/variant.h"
#include "tests/test_macros.h"
diff --git a/tests/test_translation.h b/tests/core/string/test_translation.h
index 93c53bbbc9..47e06add40 100644
--- a/tests/test_translation.h
+++ b/tests/core/string/test_translation.h
@@ -39,7 +39,8 @@
#include "editor/import/resource_importer_csv_translation.h"
#endif
-#include "thirdparty/doctest/doctest.h"
+#include "tests/test_macros.h"
+#include "tests/test_utils.h"
namespace TestTranslation {
diff --git a/tests/test_command_queue.h b/tests/core/templates/test_command_queue.h
index f0d4569942..5d228f2bf6 100644
--- a/tests/test_command_queue.h
+++ b/tests/core/templates/test_command_queue.h
@@ -33,12 +33,10 @@
#include "core/config/project_settings.h"
#include "core/math/random_number_generator.h"
-#include "core/os/mutex.h"
#include "core/os/os.h"
-#include "core/os/semaphore.h"
#include "core/os/thread.h"
#include "core/templates/command_queue_mt.h"
-#include "test_macros.h"
+#include "tests/test_macros.h"
#if !defined(NO_THREADS)
diff --git a/tests/test_list.h b/tests/core/templates/test_list.h
index 52d5edff70..52d5edff70 100644
--- a/tests/test_list.h
+++ b/tests/core/templates/test_list.h
diff --git a/tests/test_local_vector.h b/tests/core/templates/test_local_vector.h
index eff2a16abc..eff2a16abc 100644
--- a/tests/test_local_vector.h
+++ b/tests/core/templates/test_local_vector.h
diff --git a/tests/test_lru.h b/tests/core/templates/test_lru.h
index 2802754729..9359909c53 100644
--- a/tests/test_lru.h
+++ b/tests/core/templates/test_lru.h
@@ -32,7 +32,6 @@
#define TEST_LRU_H
#include "core/templates/lru.h"
-#include "core/templates/vector.h"
#include "tests/test_macros.h"
diff --git a/tests/test_oa_hash_map.cpp b/tests/core/templates/test_oa_hash_map.cpp
index 904c01642d..904c01642d 100644
--- a/tests/test_oa_hash_map.cpp
+++ b/tests/core/templates/test_oa_hash_map.cpp
diff --git a/tests/test_oa_hash_map.h b/tests/core/templates/test_oa_hash_map.h
index 9745802cc0..f229ac94ea 100644
--- a/tests/test_oa_hash_map.h
+++ b/tests/core/templates/test_oa_hash_map.h
@@ -31,7 +31,7 @@
#ifndef TEST_OA_HASH_MAP_H
#define TEST_OA_HASH_MAP_H
-#include "core/os/main_loop.h"
+class MainLoop;
namespace TestOAHashMap {
diff --git a/tests/test_ordered_hash_map.h b/tests/core/templates/test_ordered_hash_map.h
index fbaaa224cf..35ce0fc656 100644
--- a/tests/test_ordered_hash_map.h
+++ b/tests/core/templates/test_ordered_hash_map.h
@@ -31,10 +31,7 @@
#ifndef TEST_ORDERED_HASH_MAP_H
#define TEST_ORDERED_HASH_MAP_H
-#include "core/os/os.h"
#include "core/templates/ordered_hash_map.h"
-#include "core/templates/pair.h"
-#include "core/templates/vector.h"
#include "tests/test_macros.h"
diff --git a/tests/test_paged_array.h b/tests/core/templates/test_paged_array.h
index 7efd3799f3..7efd3799f3 100644
--- a/tests/test_paged_array.h
+++ b/tests/core/templates/test_paged_array.h
diff --git a/tests/test_vector.h b/tests/core/templates/test_vector.h
index bfdf389aa7..bfdf389aa7 100644
--- a/tests/test_vector.h
+++ b/tests/core/templates/test_vector.h
diff --git a/tests/test_crypto.h b/tests/core/test_crypto.h
index 8da8c75544..3b909c7df8 100644
--- a/tests/test_crypto.h
+++ b/tests/core/test_crypto.h
@@ -33,7 +33,6 @@
#include "core/crypto/crypto.h"
#include "tests/test_macros.h"
-#include <stdio.h>
namespace TestCrypto {
diff --git a/tests/test_hashing_context.h b/tests/core/test_hashing_context.h
index 728a5f2cfa..728a5f2cfa 100644
--- a/tests/test_hashing_context.h
+++ b/tests/core/test_hashing_context.h
diff --git a/tests/test_time.h b/tests/core/test_time.h
index 28f1cb2f20..28f1cb2f20 100644
--- a/tests/test_time.h
+++ b/tests/core/test_time.h
diff --git a/tests/test_array.h b/tests/core/variant/test_array.h
index 05b4eaea2a..298bd2ff63 100644
--- a/tests/test_array.h
+++ b/tests/core/variant/test_array.h
@@ -31,13 +31,7 @@
#ifndef TEST_ARRAY_H
#define TEST_ARRAY_H
-#include "core/object/class_db.h"
-#include "core/object/script_language.h"
-#include "core/templates/hashfuncs.h"
-#include "core/templates/vector.h"
#include "core/variant/array.h"
-#include "core/variant/container_type_validate.h"
-#include "core/variant/variant.h"
#include "tests/test_macros.h"
#include "tests/test_tools.h"
diff --git a/tests/test_dictionary.h b/tests/core/variant/test_dictionary.h
index 64d1d68e21..65079698a3 100644
--- a/tests/test_dictionary.h
+++ b/tests/core/variant/test_dictionary.h
@@ -31,10 +31,7 @@
#ifndef TEST_DICTIONARY_H
#define TEST_DICTIONARY_H
-#include "core/templates/ordered_hash_map.h"
-#include "core/templates/safe_refcount.h"
#include "core/variant/dictionary.h"
-#include "core/variant/variant.h"
#include "tests/test_macros.h"
namespace TestDictionary {
diff --git a/tests/test_variant.h b/tests/core/variant/test_variant.h
index 0d16fa092c..0d16fa092c 100644
--- a/tests/test_variant.h
+++ b/tests/core/variant/test_variant.h
diff --git a/tests/test_code_edit.h b/tests/scene/test_code_edit.h
index 62235ed0ae..202ba8dca5 100644
--- a/tests/test_code_edit.h
+++ b/tests/scene/test_code_edit.h
@@ -31,12 +31,7 @@
#ifndef TEST_CODE_EDIT_H
#define TEST_CODE_EDIT_H
-#include "core/input/input_map.h"
-#include "core/object/message_queue.h"
-#include "core/os/keyboard.h"
-#include "core/string/string_builder.h"
#include "scene/gui/code_edit.h"
-#include "scene/resources/default_theme/default_theme.h"
#include "tests/test_macros.h"
diff --git a/tests/test_curve.h b/tests/scene/test_curve.h
index e079905e35..60eafad460 100644
--- a/tests/test_curve.h
+++ b/tests/scene/test_curve.h
@@ -33,7 +33,7 @@
#include "scene/resources/curve.h"
-#include "thirdparty/doctest/doctest.h"
+#include "tests/test_macros.h"
namespace TestCurve {
diff --git a/tests/test_gradient.h b/tests/scene/test_gradient.h
index 8eaa6b2b64..fc595b02f2 100644
--- a/tests/test_gradient.h
+++ b/tests/scene/test_gradient.h
@@ -31,8 +31,6 @@
#ifndef TEST_GRADIENT_H
#define TEST_GRADIENT_H
-#include "core/math/color.h"
-#include "core/object/class_db.h"
#include "scene/resources/gradient.h"
#include "thirdparty/doctest/doctest.h"
diff --git a/tests/test_gui.cpp b/tests/scene/test_gui.cpp
index 0ec8aa78c4..5bd9390cb7 100644
--- a/tests/test_gui.cpp
+++ b/tests/scene/test_gui.cpp
@@ -32,29 +32,18 @@
#include "test_gui.h"
-#include "core/io/image_loader.h"
-#include "core/os/os.h"
-#include "core/string/print_string.h"
-#include "scene/2d/sprite_2d.h"
#include "scene/gui/button.h"
-#include "scene/gui/control.h"
#include "scene/gui/label.h"
#include "scene/gui/line_edit.h"
#include "scene/gui/menu_button.h"
#include "scene/gui/option_button.h"
#include "scene/gui/panel.h"
-#include "scene/gui/popup_menu.h"
#include "scene/gui/progress_bar.h"
#include "scene/gui/rich_text_label.h"
#include "scene/gui/scroll_bar.h"
#include "scene/gui/spin_box.h"
#include "scene/gui/tab_container.h"
-#include "scene/gui/texture_rect.h"
#include "scene/gui/tree.h"
-#include "scene/main/scene_tree.h"
-
-#include "scene/3d/camera_3d.h"
-#include "scene/main/window.h"
namespace TestGUI {
@@ -267,4 +256,4 @@ MainLoop *test() {
}
} // namespace TestGUI
-#endif
+#endif // _3D_DISABLED
diff --git a/tests/test_gui.h b/tests/scene/test_gui.h
index e5c40de7e8..84bce620e2 100644
--- a/tests/test_gui.h
+++ b/tests/scene/test_gui.h
@@ -31,7 +31,7 @@
#ifndef TEST_GUI_H
#define TEST_GUI_H
-#include "core/os/main_loop.h"
+class MainLoop;
namespace TestGUI {
diff --git a/tests/test_path_3d.h b/tests/scene/test_path_3d.h
index 9961ae6e97..1fcef3adde 100644
--- a/tests/test_path_3d.h
+++ b/tests/scene/test_path_3d.h
@@ -32,7 +32,6 @@
#define TEST_PATH_3D_H
#include "scene/3d/path_3d.h"
-#include "scene/resources/curve.h"
#include "tests/test_macros.h"
diff --git a/tests/test_path_follow_2d.h b/tests/scene/test_path_follow_2d.h
index 388b690060..ddfcc5552a 100644
--- a/tests/test_path_follow_2d.h
+++ b/tests/scene/test_path_follow_2d.h
@@ -32,7 +32,6 @@
#define TEST_PATH_FOLLOW_2D_H
#include "scene/2d/path_2d.h"
-#include "scene/resources/curve.h"
#include "tests/test_macros.h"
diff --git a/tests/test_path_follow_3d.h b/tests/scene/test_path_follow_3d.h
index b6b4c88222..6a505dbb39 100644
--- a/tests/test_path_follow_3d.h
+++ b/tests/scene/test_path_follow_3d.h
@@ -32,7 +32,6 @@
#define TEST_PATH_FOLLOW_3D_H
#include "scene/3d/path_3d.h"
-#include "scene/resources/curve.h"
#include "tests/test_macros.h"
diff --git a/tests/test_physics_2d.cpp b/tests/servers/test_physics_2d.cpp
index f6619db8fd..b6360cde8a 100644
--- a/tests/test_physics_2d.cpp
+++ b/tests/servers/test_physics_2d.cpp
@@ -31,11 +31,6 @@
#include "test_physics_2d.h"
#include "core/os/main_loop.h"
-#include "core/os/os.h"
-#include "core/string/print_string.h"
-#include "core/templates/map.h"
-#include "scene/resources/texture.h"
-#include "servers/display_server.h"
#include "servers/physics_server_2d.h"
#include "servers/rendering_server.h"
diff --git a/tests/test_physics_2d.h b/tests/servers/test_physics_2d.h
index 966d49200a..2ae1053a03 100644
--- a/tests/test_physics_2d.h
+++ b/tests/servers/test_physics_2d.h
@@ -31,7 +31,7 @@
#ifndef TEST_PHYSICS_2D_H
#define TEST_PHYSICS_2D_H
-#include "core/os/main_loop.h"
+class MainLoop;
namespace TestPhysics2D {
diff --git a/tests/test_physics_3d.cpp b/tests/servers/test_physics_3d.cpp
index d839ae26b7..4e483d628d 100644
--- a/tests/test_physics_3d.cpp
+++ b/tests/servers/test_physics_3d.cpp
@@ -31,12 +31,8 @@
#include "test_physics_3d.h"
#include "core/math/convex_hull.h"
-#include "core/math/math_funcs.h"
+#include "core/math/geometry_3d.h"
#include "core/os/main_loop.h"
-#include "core/os/os.h"
-#include "core/string/print_string.h"
-#include "core/templates/map.h"
-#include "servers/display_server.h"
#include "servers/physics_server_3d.h"
#include "servers/rendering_server.h"
diff --git a/tests/test_physics_3d.h b/tests/servers/test_physics_3d.h
index b6b66f350e..b86327cdb4 100644
--- a/tests/test_physics_3d.h
+++ b/tests/servers/test_physics_3d.h
@@ -31,7 +31,7 @@
#ifndef TEST_PHYSICS_H
#define TEST_PHYSICS_H
-#include "core/os/main_loop.h"
+class MainLoop;
namespace TestPhysics3D {
diff --git a/tests/test_render.cpp b/tests/servers/test_render.cpp
index 21b4da9b3b..183f049238 100644
--- a/tests/test_render.cpp
+++ b/tests/servers/test_render.cpp
@@ -31,12 +31,7 @@
#include "test_render.h"
#include "core/math/convex_hull.h"
-#include "core/math/math_funcs.h"
-#include "core/os/keyboard.h"
#include "core/os/main_loop.h"
-#include "core/os/os.h"
-#include "core/string/print_string.h"
-#include "servers/display_server.h"
#include "servers/rendering_server.h"
#define OBJECT_COUNT 50
diff --git a/tests/test_render.h b/tests/servers/test_render.h
index 35bb383773..1d773cb347 100644
--- a/tests/test_render.h
+++ b/tests/servers/test_render.h
@@ -31,11 +31,11 @@
#ifndef TEST_RENDER_H
#define TEST_RENDER_H
-#include "core/os/main_loop.h"
+class MainLoop;
namespace TestRender {
MainLoop *test();
}
-#endif
+#endif // TEST_RENDER_H
diff --git a/tests/test_shader_lang.cpp b/tests/servers/test_shader_lang.cpp
index 5598852f29..0591bf6adf 100644
--- a/tests/test_shader_lang.cpp
+++ b/tests/servers/test_shader_lang.cpp
@@ -30,13 +30,8 @@
#include "test_shader_lang.h"
-#include "core/io/file_access.h"
#include "core/os/main_loop.h"
#include "core/os/os.h"
-
-#include "core/string/print_string.h"
-#include "scene/gui/control.h"
-#include "scene/gui/text_edit.h"
#include "servers/rendering/shader_language.h"
typedef ShaderLanguage SL;
diff --git a/tests/test_shader_lang.h b/tests/servers/test_shader_lang.h
index 46a2e6af35..de7ec002b6 100644
--- a/tests/test_shader_lang.h
+++ b/tests/servers/test_shader_lang.h
@@ -31,7 +31,7 @@
#ifndef TEST_SHADER_LANG_H
#define TEST_SHADER_LANG_H
-#include "core/os/main_loop.h"
+class MainLoop;
namespace TestShaderLang {
diff --git a/tests/test_text_server.h b/tests/servers/test_text_server.h
index 4edffe3711..4edffe3711 100644
--- a/tests/test_text_server.h
+++ b/tests/servers/test_text_server.h
diff --git a/tests/test_macros.h b/tests/test_macros.h
index 6968f9df1f..0ec6eb9e7c 100644
--- a/tests/test_macros.h
+++ b/tests/test_macros.h
@@ -31,10 +31,8 @@
#ifndef TEST_MACROS_H
#define TEST_MACROS_H
-#include "core/object/callable_method_pointer.h"
-#include "core/object/class_db.h"
-#include "core/string/print_string.h"
-#include "core/templates/map.h"
+#include "core/input/input_map.h"
+#include "core/object/message_queue.h"
#include "core/variant/variant.h"
// See documentation for doctest at:
diff --git a/tests/test_main.cpp b/tests/test_main.cpp
index 341fb1af61..a09be08de8 100644
--- a/tests/test_main.cpp
+++ b/tests/test_main.cpp
@@ -30,62 +30,62 @@
#include "test_main.h"
-#include "core/templates/list.h"
-
-#include "test_aabb.h"
-#include "test_array.h"
-#include "test_astar.h"
-#include "test_basis.h"
-#include "test_class_db.h"
-#include "test_code_edit.h"
-#include "test_color.h"
-#include "test_command_queue.h"
-#include "test_config_file.h"
-#include "test_crypto.h"
-#include "test_curve.h"
-#include "test_dictionary.h"
-#include "test_expression.h"
-#include "test_file_access.h"
-#include "test_geometry_2d.h"
-#include "test_geometry_3d.h"
-#include "test_gradient.h"
-#include "test_gui.h"
-#include "test_hashing_context.h"
-#include "test_image.h"
-#include "test_json.h"
-#include "test_list.h"
-#include "test_local_vector.h"
-#include "test_lru.h"
-#include "test_marshalls.h"
-#include "test_math.h"
-#include "test_method_bind.h"
-#include "test_node_path.h"
-#include "test_oa_hash_map.h"
-#include "test_object.h"
-#include "test_ordered_hash_map.h"
-#include "test_paged_array.h"
-#include "test_path_3d.h"
-#include "test_pck_packer.h"
-#include "test_physics_2d.h"
-#include "test_physics_3d.h"
-#include "test_random_number_generator.h"
-#include "test_rect2.h"
-#include "test_render.h"
-#include "test_resource.h"
-#include "test_shader_lang.h"
-#include "test_string.h"
-#include "test_text_server.h"
-#include "test_time.h"
-#include "test_translation.h"
-#include "test_validate_testing.h"
-#include "test_variant.h"
-#include "test_vector.h"
-#include "test_xml_parser.h"
+#include "tests/core/io/test_config_file.h"
+#include "tests/core/io/test_file_access.h"
+#include "tests/core/io/test_image.h"
+#include "tests/core/io/test_json.h"
+#include "tests/core/io/test_marshalls.h"
+#include "tests/core/io/test_pck_packer.h"
+#include "tests/core/io/test_resource.h"
+#include "tests/core/io/test_xml_parser.h"
+#include "tests/core/math/test_aabb.h"
+#include "tests/core/math/test_astar.h"
+#include "tests/core/math/test_basis.h"
+#include "tests/core/math/test_color.h"
+#include "tests/core/math/test_expression.h"
+#include "tests/core/math/test_geometry_2d.h"
+#include "tests/core/math/test_geometry_3d.h"
+#include "tests/core/math/test_math.h"
+#include "tests/core/math/test_random_number_generator.h"
+#include "tests/core/math/test_rect2.h"
+#include "tests/core/object/test_class_db.h"
+#include "tests/core/object/test_method_bind.h"
+#include "tests/core/object/test_object.h"
+#include "tests/core/string/test_node_path.h"
+#include "tests/core/string/test_string.h"
+#include "tests/core/string/test_translation.h"
+#include "tests/core/templates/test_command_queue.h"
+#include "tests/core/templates/test_list.h"
+#include "tests/core/templates/test_local_vector.h"
+#include "tests/core/templates/test_lru.h"
+#include "tests/core/templates/test_oa_hash_map.h"
+#include "tests/core/templates/test_ordered_hash_map.h"
+#include "tests/core/templates/test_paged_array.h"
+#include "tests/core/templates/test_vector.h"
+#include "tests/core/test_crypto.h"
+#include "tests/core/test_hashing_context.h"
+#include "tests/core/test_time.h"
+#include "tests/core/variant/test_array.h"
+#include "tests/core/variant/test_dictionary.h"
+#include "tests/core/variant/test_variant.h"
+#include "tests/scene/test_code_edit.h"
+#include "tests/scene/test_curve.h"
+#include "tests/scene/test_gradient.h"
+#include "tests/scene/test_gui.h"
+#include "tests/scene/test_path_3d.h"
+#include "tests/servers/test_physics_2d.h"
+#include "tests/servers/test_physics_3d.h"
+#include "tests/servers/test_render.h"
+#include "tests/servers/test_shader_lang.h"
+#include "tests/servers/test_text_server.h"
+#include "tests/test_validate_testing.h"
#include "modules/modules_tests.gen.h"
#include "tests/test_macros.h"
+#include "scene/resources/default_theme/default_theme.h"
+
int test_main(int argc, char *argv[]) {
bool run_tests = true;
diff --git a/tests/test_tools.h b/tests/test_tools.h
index ec18610f04..e1192458d0 100644
--- a/tests/test_tools.h
+++ b/tests/test_tools.h
@@ -31,8 +31,6 @@
#ifndef TEST_TOOLS_H
#define TEST_TOOLS_H
-#include "core/error/error_macros.h"
-
struct ErrorDetector {
ErrorDetector() {
eh.errfunc = _detect_error;
diff --git a/tests/test_utils.cpp b/tests/test_utils.cpp
index 1666a257a9..890dea3ee1 100644
--- a/tests/test_utils.cpp
+++ b/tests/test_utils.cpp
@@ -28,7 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#include "test_utils.h"
+#include "tests/test_utils.h"
#include "core/os/os.h"
diff --git a/tests/test_utils.h b/tests/test_utils.h
index f05ab0bdb1..ccebe2e449 100644
--- a/tests/test_utils.h
+++ b/tests/test_utils.h
@@ -31,7 +31,7 @@
#ifndef TEST_UTILS_H
#define TEST_UTILS_H
-#include "core/string/ustring.h"
+class String;
namespace TestUtils {