Skip to content

Commit e92a113

Browse files
author
Vladimir Vilimaitis
committed
Avoid Qt platform plugin for Linux tests
1 parent 1470452 commit e92a113

4 files changed

Lines changed: 54 additions & 16 deletions

File tree

.github/workflows/release-binaries.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,6 @@ jobs:
111111

112112
- name: Test
113113
env:
114-
QT_QPA_PLATFORM: minimal
115-
QT_PLUGIN_PATH: ${{ github.workspace }}/vcpkg_installed/${{ matrix.triplet }}/Qt6/plugins
116-
QT_QPA_PLATFORM_PLUGIN_PATH: ${{ github.workspace }}/vcpkg_installed/${{ matrix.triplet }}/Qt6/plugins/platforms
117114
REMBG_NATIVE_RUN_MODEL_TESTS: "1"
118115
U2NET_HOME: ${{ github.workspace }}/build/model-cache
119116
run: ctest --test-dir build --output-on-failure -C Release

src_cpp/CMakeLists.txt

Lines changed: 40 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -233,11 +233,21 @@ function(rembg_resolve_qt_plugin_dir output_variable)
233233
endfunction()
234234

235235
if(BUILD_TESTING)
236+
if(WIN32 OR APPLE)
237+
set(REMBG_ENABLE_GUI_SMOKE_TESTS_DEFAULT ON)
238+
else()
239+
set(REMBG_ENABLE_GUI_SMOKE_TESTS_DEFAULT OFF)
240+
endif()
241+
option(
242+
REMBG_ENABLE_GUI_SMOKE_TESTS
243+
"Build QWidget smoke tests that require a Qt platform plugin"
244+
${REMBG_ENABLE_GUI_SMOKE_TESTS_DEFAULT}
245+
)
246+
236247
file(TO_CMAKE_PATH "${REMBG_REPO_ROOT}/example.png" REMBG_NATIVE_SAMPLE_IMAGE)
237248
add_executable(rembg-native-tests
238249
tests/ImageProcessingTests.cpp
239250
tests/IntegrationTests.cpp
240-
tests/MainWindowSmokeTest.cpp
241251
tests/TestMain.cpp
242252
)
243253
target_compile_features(rembg-native-tests PRIVATE cxx_std_23)
@@ -252,21 +262,42 @@ if(BUILD_TESTING)
252262
$<TARGET_FILE_DIR:rembg-native-tests>
253263
)
254264
add_test(NAME rembg-native-tests COMMAND rembg-native-tests)
255-
rembg_resolve_qt_plugin_dir(REMBG_QT_PLUGIN_DIR)
256-
set(REMBG_QT_PLATFORM_PLUGIN_DIR "${REMBG_QT_PLUGIN_DIR}/platforms")
257-
set(REMBG_TEST_ENVIRONMENT
258-
"QT_QPA_PLATFORM=minimal"
259-
"QT_PLUGIN_PATH=${REMBG_QT_PLUGIN_DIR}"
260-
"QT_QPA_PLATFORM_PLUGIN_PATH=${REMBG_QT_PLATFORM_PLUGIN_DIR}"
261-
)
262265
set(REMBG_TEST_ENVIRONMENT_MODIFICATION
263266
"PATH=path_list_prepend:$<TARGET_FILE_DIR:Qt6::Core>"
264267
"PATH=path_list_prepend:$<TARGET_FILE_DIR:onnxruntime::onnxruntime>"
265268
)
266269
set_tests_properties(rembg-native-tests
267270
PROPERTIES
268271
TIMEOUT 600
269-
ENVIRONMENT "${REMBG_TEST_ENVIRONMENT}"
270272
ENVIRONMENT_MODIFICATION "${REMBG_TEST_ENVIRONMENT_MODIFICATION}"
271273
)
274+
275+
if(REMBG_ENABLE_GUI_SMOKE_TESTS)
276+
add_executable(rembg-gui-smoke-tests
277+
tests/GuiSmokeTestMain.cpp
278+
tests/MainWindowSmokeTest.cpp
279+
)
280+
target_compile_features(rembg-gui-smoke-tests PRIVATE cxx_std_23)
281+
target_link_libraries(rembg-gui-smoke-tests PRIVATE rembg_native_lib Qt6::Test)
282+
add_custom_command(TARGET rembg-gui-smoke-tests POST_BUILD
283+
COMMAND "${CMAKE_COMMAND}" -E copy_if_different
284+
${REMBG_ONNXRUNTIME_RUNTIME_FILES}
285+
$<TARGET_FILE_DIR:rembg-gui-smoke-tests>
286+
)
287+
add_test(NAME rembg-gui-smoke-tests COMMAND rembg-gui-smoke-tests)
288+
289+
rembg_resolve_qt_plugin_dir(REMBG_QT_PLUGIN_DIR)
290+
set(REMBG_QT_PLATFORM_PLUGIN_DIR "${REMBG_QT_PLUGIN_DIR}/platforms")
291+
set(REMBG_GUI_TEST_ENVIRONMENT
292+
"QT_QPA_PLATFORM=minimal"
293+
"QT_PLUGIN_PATH=${REMBG_QT_PLUGIN_DIR}"
294+
"QT_QPA_PLATFORM_PLUGIN_PATH=${REMBG_QT_PLATFORM_PLUGIN_DIR}"
295+
)
296+
set_tests_properties(rembg-gui-smoke-tests
297+
PROPERTIES
298+
TIMEOUT 60
299+
ENVIRONMENT "${REMBG_GUI_TEST_ENVIRONMENT}"
300+
ENVIRONMENT_MODIFICATION "${REMBG_TEST_ENVIRONMENT_MODIFICATION}"
301+
)
302+
endif()
272303
endif()

src_cpp/tests/GuiSmokeTestMain.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#include <QApplication>
2+
3+
namespace rembg::native_app {
4+
5+
int runMainWindowSmokeTest(int argc, char** argv);
6+
7+
} // namespace rembg::native_app
8+
9+
int main(int argc, char** argv) {
10+
QApplication app(argc, argv);
11+
return rembg::native_app::runMainWindowSmokeTest(argc, argv);
12+
}

src_cpp/tests/TestMain.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
1-
#include <QApplication>
1+
#include <QCoreApplication>
22

33
namespace rembg::native_app {
44

55
int runImageProcessingTests(int argc, char** argv);
66
int runIntegrationTests(int argc, char** argv);
7-
int runMainWindowSmokeTest(int argc, char** argv);
87

98
} // namespace rembg::native_app
109

1110
int main(int argc, char** argv) {
12-
QApplication app(argc, argv);
11+
QCoreApplication app(argc, argv);
1312
int status = 0;
1413
status |= rembg::native_app::runImageProcessingTests(argc, argv);
1514
status |= rembg::native_app::runIntegrationTests(argc, argv);
16-
status |= rembg::native_app::runMainWindowSmokeTest(argc, argv);
1715
return status;
1816
}

0 commit comments

Comments
 (0)