Merge pull request #93780 from AThousandShips/unit_test_release
[CI] Run unit tests on desktop release templates
This commit is contained in:
commit
4d238b37c6
|
@ -74,16 +74,18 @@ jobs:
|
||||||
- name: Template w/ Mono (target=template_release)
|
- name: Template w/ Mono (target=template_release)
|
||||||
cache-name: linux-template-mono
|
cache-name: linux-template-mono
|
||||||
target: template_release
|
target: template_release
|
||||||
sconsflags: module_mono_enabled=yes
|
sconsflags: module_mono_enabled=yes tests=yes
|
||||||
|
bin: "./bin/godot.linuxbsd.template_release.x86_64.mono"
|
||||||
build-mono: false
|
build-mono: false
|
||||||
tests: false
|
tests: true
|
||||||
artifact: true
|
artifact: true
|
||||||
|
|
||||||
- name: Minimal template (target=template_release, everything disabled)
|
- name: Minimal template (target=template_release, everything disabled)
|
||||||
cache-name: linux-template-minimal
|
cache-name: linux-template-minimal
|
||||||
target: template_release
|
target: template_release
|
||||||
sconsflags: modules_enabled_by_default=no disable_3d=yes disable_advanced_gui=yes deprecated=no minizip=no
|
sconsflags: modules_enabled_by_default=no disable_3d=yes disable_advanced_gui=yes deprecated=no minizip=no tests=yes
|
||||||
tests: false
|
bin: "./bin/godot.linuxbsd.template_release.x86_64"
|
||||||
|
tests: true
|
||||||
artifact: true
|
artifact: true
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
@ -174,7 +176,6 @@ jobs:
|
||||||
with:
|
with:
|
||||||
bin: ${{ matrix.bin }}
|
bin: ${{ matrix.bin }}
|
||||||
|
|
||||||
# Execute unit tests for the editor
|
|
||||||
- name: Unit tests
|
- name: Unit tests
|
||||||
if: ${{ matrix.tests }}
|
if: ${{ matrix.tests }}
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -29,8 +29,9 @@ jobs:
|
||||||
- name: Template (target=template_release)
|
- name: Template (target=template_release)
|
||||||
cache-name: macos-template
|
cache-name: macos-template
|
||||||
target: template_release
|
target: template_release
|
||||||
tests: false
|
tests: true
|
||||||
sconsflags: debug_symbols=no
|
sconsflags: debug_symbols=no tests=yes
|
||||||
|
bin: "./bin/godot.macos.template_release.universal"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
@ -84,7 +85,6 @@ jobs:
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.cache-name }}
|
name: ${{ matrix.cache-name }}
|
||||||
|
|
||||||
# Execute unit tests for the editor
|
|
||||||
- name: Unit tests
|
- name: Unit tests
|
||||||
if: ${{ matrix.tests }}
|
if: ${{ matrix.tests }}
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -34,8 +34,9 @@ jobs:
|
||||||
- name: Template (target=template_release)
|
- name: Template (target=template_release)
|
||||||
cache-name: windows-template
|
cache-name: windows-template
|
||||||
target: template_release
|
target: template_release
|
||||||
tests: false
|
tests: true
|
||||||
sconsflags: debug_symbols=no
|
sconsflags: debug_symbols=no tests=yes
|
||||||
|
bin: "./bin/godot.windows.template_release.x86_64.console.exe"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
@ -91,7 +92,6 @@ jobs:
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.cache-name }}
|
name: ${{ matrix.cache-name }}
|
||||||
|
|
||||||
# Execute unit tests for the editor
|
|
||||||
- name: Unit tests
|
- name: Unit tests
|
||||||
if: ${{ matrix.tests }}
|
if: ${{ matrix.tests }}
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -2589,7 +2589,10 @@ void LineEdit::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("set_secret_character", "character"), &LineEdit::set_secret_character);
|
ClassDB::bind_method(D_METHOD("set_secret_character", "character"), &LineEdit::set_secret_character);
|
||||||
ClassDB::bind_method(D_METHOD("get_secret_character"), &LineEdit::get_secret_character);
|
ClassDB::bind_method(D_METHOD("get_secret_character"), &LineEdit::get_secret_character);
|
||||||
ClassDB::bind_method(D_METHOD("menu_option", "option"), &LineEdit::menu_option);
|
ClassDB::bind_method(D_METHOD("menu_option", "option"), &LineEdit::menu_option);
|
||||||
|
// TODO: Properly handle popups when advanced GUI is disabled.
|
||||||
|
#ifndef ADVANCED_GUI_DISABLED
|
||||||
ClassDB::bind_method(D_METHOD("get_menu"), &LineEdit::get_menu);
|
ClassDB::bind_method(D_METHOD("get_menu"), &LineEdit::get_menu);
|
||||||
|
#endif // ADVANCED_GUI_DISABLED
|
||||||
ClassDB::bind_method(D_METHOD("is_menu_visible"), &LineEdit::is_menu_visible);
|
ClassDB::bind_method(D_METHOD("is_menu_visible"), &LineEdit::is_menu_visible);
|
||||||
ClassDB::bind_method(D_METHOD("set_context_menu_enabled", "enable"), &LineEdit::set_context_menu_enabled);
|
ClassDB::bind_method(D_METHOD("set_context_menu_enabled", "enable"), &LineEdit::set_context_menu_enabled);
|
||||||
ClassDB::bind_method(D_METHOD("is_context_menu_enabled"), &LineEdit::is_context_menu_enabled);
|
ClassDB::bind_method(D_METHOD("is_context_menu_enabled"), &LineEdit::is_context_menu_enabled);
|
||||||
|
|
|
@ -679,7 +679,10 @@ void MenuBar::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("set_menu_hidden", "menu", "hidden"), &MenuBar::set_menu_hidden);
|
ClassDB::bind_method(D_METHOD("set_menu_hidden", "menu", "hidden"), &MenuBar::set_menu_hidden);
|
||||||
ClassDB::bind_method(D_METHOD("is_menu_hidden", "menu"), &MenuBar::is_menu_hidden);
|
ClassDB::bind_method(D_METHOD("is_menu_hidden", "menu"), &MenuBar::is_menu_hidden);
|
||||||
|
|
||||||
|
// TODO: Properly handle popups when advanced GUI is disabled.
|
||||||
|
#ifndef ADVANCED_GUI_DISABLED
|
||||||
ClassDB::bind_method(D_METHOD("get_menu_popup", "menu"), &MenuBar::get_menu_popup);
|
ClassDB::bind_method(D_METHOD("get_menu_popup", "menu"), &MenuBar::get_menu_popup);
|
||||||
|
#endif // ADVANCED_GUI_DISABLED
|
||||||
|
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "flat"), "set_flat", "is_flat");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "flat"), "set_flat", "is_flat");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "start_index"), "set_start_index", "get_start_index");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "start_index"), "set_start_index", "get_start_index");
|
||||||
|
|
|
@ -173,7 +173,10 @@ bool MenuButton::_get(const StringName &p_name, Variant &r_ret) const {
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuButton::_bind_methods() {
|
void MenuButton::_bind_methods() {
|
||||||
|
// TODO: Properly handle popups when advanced GUI is disabled.
|
||||||
|
#ifndef ADVANCED_GUI_DISABLED
|
||||||
ClassDB::bind_method(D_METHOD("get_popup"), &MenuButton::get_popup);
|
ClassDB::bind_method(D_METHOD("get_popup"), &MenuButton::get_popup);
|
||||||
|
#endif // ADVANCED_GUI_DISABLED
|
||||||
ClassDB::bind_method(D_METHOD("show_popup"), &MenuButton::show_popup);
|
ClassDB::bind_method(D_METHOD("show_popup"), &MenuButton::show_popup);
|
||||||
ClassDB::bind_method(D_METHOD("set_switch_on_hover", "enable"), &MenuButton::set_switch_on_hover);
|
ClassDB::bind_method(D_METHOD("set_switch_on_hover", "enable"), &MenuButton::set_switch_on_hover);
|
||||||
ClassDB::bind_method(D_METHOD("is_switch_on_hover"), &MenuButton::is_switch_on_hover);
|
ClassDB::bind_method(D_METHOD("is_switch_on_hover"), &MenuButton::is_switch_on_hover);
|
||||||
|
|
|
@ -35,6 +35,8 @@
|
||||||
|
|
||||||
#include "tests/test_macros.h"
|
#include "tests/test_macros.h"
|
||||||
|
|
||||||
|
#include "modules/modules_enabled.gen.h"
|
||||||
|
|
||||||
namespace TestHTTPClient {
|
namespace TestHTTPClient {
|
||||||
|
|
||||||
TEST_CASE("[HTTPClient] Instantiation") {
|
TEST_CASE("[HTTPClient] Instantiation") {
|
||||||
|
@ -90,6 +92,7 @@ TEST_CASE("[HTTPClient] verify_headers") {
|
||||||
ERR_PRINT_ON;
|
ERR_PRINT_ON;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(MODULE_MBEDTLS_ENABLED) || defined(WEB_ENABLED)
|
||||||
TEST_CASE("[HTTPClient] connect_to_host") {
|
TEST_CASE("[HTTPClient] connect_to_host") {
|
||||||
Ref<HTTPClient> client = HTTPClient::create();
|
Ref<HTTPClient> client = HTTPClient::create();
|
||||||
String host = "https://www.example.com";
|
String host = "https://www.example.com";
|
||||||
|
@ -100,6 +103,7 @@ TEST_CASE("[HTTPClient] connect_to_host") {
|
||||||
Error err = client->connect_to_host(host, port, tls_options);
|
Error err = client->connect_to_host(host, port, tls_options);
|
||||||
CHECK_MESSAGE(err == OK, "Expected OK for successful connection");
|
CHECK_MESSAGE(err == OK, "Expected OK for successful connection");
|
||||||
}
|
}
|
||||||
|
#endif // MODULE_MBEDTLS_ENABLED || WEB_ENABLED
|
||||||
|
|
||||||
} // namespace TestHTTPClient
|
} // namespace TestHTTPClient
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,8 @@
|
||||||
#include "tests/test_utils.h"
|
#include "tests/test_utils.h"
|
||||||
#include "thirdparty/doctest/doctest.h"
|
#include "thirdparty/doctest/doctest.h"
|
||||||
|
|
||||||
|
#include "modules/modules_enabled.gen.h"
|
||||||
|
|
||||||
namespace TestImage {
|
namespace TestImage {
|
||||||
|
|
||||||
TEST_CASE("[Image] Instantiation") {
|
TEST_CASE("[Image] Instantiation") {
|
||||||
|
@ -107,6 +109,7 @@ TEST_CASE("[Image] Saving and loading") {
|
||||||
image->get_data() == image_load->get_data(),
|
image->get_data() == image_load->get_data(),
|
||||||
"The loaded image should have the same data as the one that got saved.");
|
"The loaded image should have the same data as the one that got saved.");
|
||||||
|
|
||||||
|
#ifdef MODULE_BMP_ENABLED
|
||||||
// Load BMP
|
// Load BMP
|
||||||
Ref<Image> image_bmp = memnew(Image());
|
Ref<Image> image_bmp = memnew(Image());
|
||||||
Ref<FileAccess> f_bmp = FileAccess::open(TestUtils::get_data_path("images/icon.bmp"), FileAccess::READ, &err);
|
Ref<FileAccess> f_bmp = FileAccess::open(TestUtils::get_data_path("images/icon.bmp"), FileAccess::READ, &err);
|
||||||
|
@ -117,7 +120,9 @@ TEST_CASE("[Image] Saving and loading") {
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
image_bmp->load_bmp_from_buffer(data_bmp) == OK,
|
image_bmp->load_bmp_from_buffer(data_bmp) == OK,
|
||||||
"The BMP image should load successfully.");
|
"The BMP image should load successfully.");
|
||||||
|
#endif // MODULE_BMP_ENABLED
|
||||||
|
|
||||||
|
#ifdef MODULE_JPG_ENABLED
|
||||||
// Load JPG
|
// Load JPG
|
||||||
Ref<Image> image_jpg = memnew(Image());
|
Ref<Image> image_jpg = memnew(Image());
|
||||||
Ref<FileAccess> f_jpg = FileAccess::open(TestUtils::get_data_path("images/icon.jpg"), FileAccess::READ, &err);
|
Ref<FileAccess> f_jpg = FileAccess::open(TestUtils::get_data_path("images/icon.jpg"), FileAccess::READ, &err);
|
||||||
|
@ -128,7 +133,9 @@ TEST_CASE("[Image] Saving and loading") {
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
image_jpg->load_jpg_from_buffer(data_jpg) == OK,
|
image_jpg->load_jpg_from_buffer(data_jpg) == OK,
|
||||||
"The JPG image should load successfully.");
|
"The JPG image should load successfully.");
|
||||||
|
#endif // MODULE_JPG_ENABLED
|
||||||
|
|
||||||
|
#ifdef MODULE_WEBP_ENABLED
|
||||||
// Load WebP
|
// Load WebP
|
||||||
Ref<Image> image_webp = memnew(Image());
|
Ref<Image> image_webp = memnew(Image());
|
||||||
Ref<FileAccess> f_webp = FileAccess::open(TestUtils::get_data_path("images/icon.webp"), FileAccess::READ, &err);
|
Ref<FileAccess> f_webp = FileAccess::open(TestUtils::get_data_path("images/icon.webp"), FileAccess::READ, &err);
|
||||||
|
@ -139,6 +146,7 @@ TEST_CASE("[Image] Saving and loading") {
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
image_webp->load_webp_from_buffer(data_webp) == OK,
|
image_webp->load_webp_from_buffer(data_webp) == OK,
|
||||||
"The WebP image should load successfully.");
|
"The WebP image should load successfully.");
|
||||||
|
#endif // MODULE_WEBP_ENABLED
|
||||||
|
|
||||||
// Load PNG
|
// Load PNG
|
||||||
Ref<Image> image_png = memnew(Image());
|
Ref<Image> image_png = memnew(Image());
|
||||||
|
@ -151,6 +159,7 @@ TEST_CASE("[Image] Saving and loading") {
|
||||||
image_png->load_png_from_buffer(data_png) == OK,
|
image_png->load_png_from_buffer(data_png) == OK,
|
||||||
"The PNG image should load successfully.");
|
"The PNG image should load successfully.");
|
||||||
|
|
||||||
|
#ifdef MODULE_TGA_ENABLED
|
||||||
// Load TGA
|
// Load TGA
|
||||||
Ref<Image> image_tga = memnew(Image());
|
Ref<Image> image_tga = memnew(Image());
|
||||||
Ref<FileAccess> f_tga = FileAccess::open(TestUtils::get_data_path("images/icon.tga"), FileAccess::READ, &err);
|
Ref<FileAccess> f_tga = FileAccess::open(TestUtils::get_data_path("images/icon.tga"), FileAccess::READ, &err);
|
||||||
|
@ -161,6 +170,7 @@ TEST_CASE("[Image] Saving and loading") {
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
image_tga->load_tga_from_buffer(data_tga) == OK,
|
image_tga->load_tga_from_buffer(data_tga) == OK,
|
||||||
"The TGA image should load successfully.");
|
"The TGA image should load successfully.");
|
||||||
|
#endif // MODULE_TGA_ENABLED
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("[Image] Basic getters") {
|
TEST_CASE("[Image] Basic getters") {
|
||||||
|
|
|
@ -42,7 +42,7 @@ TEST_CASE("[GraphNode][SceneTree]") {
|
||||||
SUBCASE("[GraphNode] Graph Node only child on delete should not cause error.") {
|
SUBCASE("[GraphNode] Graph Node only child on delete should not cause error.") {
|
||||||
// Setup.
|
// Setup.
|
||||||
GraphNode *test_node = memnew(GraphNode);
|
GraphNode *test_node = memnew(GraphNode);
|
||||||
test_child->set_name("Graph Node");
|
test_node->set_name("Graph Node");
|
||||||
Control *test_child = memnew(Control);
|
Control *test_child = memnew(Control);
|
||||||
test_child->set_name("child");
|
test_child->set_name("child");
|
||||||
test_node->add_child(test_child);
|
test_node->add_child(test_child);
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
|
|
||||||
#include "test_main.h"
|
#include "test_main.h"
|
||||||
|
|
||||||
|
#include "modules/modules_enabled.gen.h"
|
||||||
|
|
||||||
#ifdef TOOLS_ENABLED
|
#ifdef TOOLS_ENABLED
|
||||||
#include "editor/editor_paths.h"
|
#include "editor/editor_paths.h"
|
||||||
#include "editor/editor_settings.h"
|
#include "editor/editor_settings.h"
|
||||||
|
@ -103,8 +105,6 @@
|
||||||
#include "tests/scene/test_audio_stream_wav.h"
|
#include "tests/scene/test_audio_stream_wav.h"
|
||||||
#include "tests/scene/test_bit_map.h"
|
#include "tests/scene/test_bit_map.h"
|
||||||
#include "tests/scene/test_camera_2d.h"
|
#include "tests/scene/test_camera_2d.h"
|
||||||
#include "tests/scene/test_code_edit.h"
|
|
||||||
#include "tests/scene/test_color_picker.h"
|
|
||||||
#include "tests/scene/test_control.h"
|
#include "tests/scene/test_control.h"
|
||||||
#include "tests/scene/test_curve.h"
|
#include "tests/scene/test_curve.h"
|
||||||
#include "tests/scene/test_curve_2d.h"
|
#include "tests/scene/test_curve_2d.h"
|
||||||
|
@ -118,7 +118,6 @@
|
||||||
#include "tests/scene/test_packed_scene.h"
|
#include "tests/scene/test_packed_scene.h"
|
||||||
#include "tests/scene/test_path_2d.h"
|
#include "tests/scene/test_path_2d.h"
|
||||||
#include "tests/scene/test_sprite_frames.h"
|
#include "tests/scene/test_sprite_frames.h"
|
||||||
#include "tests/scene/test_text_edit.h"
|
|
||||||
#include "tests/scene/test_theme.h"
|
#include "tests/scene/test_theme.h"
|
||||||
#include "tests/scene/test_timer.h"
|
#include "tests/scene/test_timer.h"
|
||||||
#include "tests/scene/test_viewport.h"
|
#include "tests/scene/test_viewport.h"
|
||||||
|
@ -128,19 +127,29 @@
|
||||||
#include "tests/servers/test_text_server.h"
|
#include "tests/servers/test_text_server.h"
|
||||||
#include "tests/test_validate_testing.h"
|
#include "tests/test_validate_testing.h"
|
||||||
|
|
||||||
|
#ifndef ADVANCED_GUI_DISABLED
|
||||||
|
#include "tests/scene/test_code_edit.h"
|
||||||
|
#include "tests/scene/test_color_picker.h"
|
||||||
|
#include "tests/scene/test_graph_node.h"
|
||||||
|
#include "tests/scene/test_text_edit.h"
|
||||||
|
#endif // ADVANCED_GUI_DISABLED
|
||||||
|
|
||||||
#ifndef _3D_DISABLED
|
#ifndef _3D_DISABLED
|
||||||
#include "tests/scene/test_arraymesh.h"
|
#ifdef MODULE_NAVIGATION_ENABLED
|
||||||
#include "tests/scene/test_camera_3d.h"
|
|
||||||
#include "tests/scene/test_navigation_agent_2d.h"
|
#include "tests/scene/test_navigation_agent_2d.h"
|
||||||
#include "tests/scene/test_navigation_agent_3d.h"
|
#include "tests/scene/test_navigation_agent_3d.h"
|
||||||
#include "tests/scene/test_navigation_obstacle_2d.h"
|
#include "tests/scene/test_navigation_obstacle_2d.h"
|
||||||
#include "tests/scene/test_navigation_obstacle_3d.h"
|
#include "tests/scene/test_navigation_obstacle_3d.h"
|
||||||
#include "tests/scene/test_navigation_region_2d.h"
|
#include "tests/scene/test_navigation_region_2d.h"
|
||||||
#include "tests/scene/test_navigation_region_3d.h"
|
#include "tests/scene/test_navigation_region_3d.h"
|
||||||
#include "tests/scene/test_path_3d.h"
|
|
||||||
#include "tests/scene/test_primitives.h"
|
|
||||||
#include "tests/servers/test_navigation_server_2d.h"
|
#include "tests/servers/test_navigation_server_2d.h"
|
||||||
#include "tests/servers/test_navigation_server_3d.h"
|
#include "tests/servers/test_navigation_server_3d.h"
|
||||||
|
#endif // MODULE_NAVIGATION_ENABLED
|
||||||
|
|
||||||
|
#include "tests/scene/test_arraymesh.h"
|
||||||
|
#include "tests/scene/test_camera_3d.h"
|
||||||
|
#include "tests/scene/test_path_3d.h"
|
||||||
|
#include "tests/scene/test_primitives.h"
|
||||||
#endif // _3D_DISABLED
|
#endif // _3D_DISABLED
|
||||||
|
|
||||||
#include "modules/modules_tests.gen.h"
|
#include "modules/modules_tests.gen.h"
|
||||||
|
|
Loading…
Reference in New Issue