@@ -233,11 +233,21 @@ function(rembg_resolve_qt_plugin_dir output_variable)
233233endfunction ()
234234
235235if (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 ()
272303endif ()
0 commit comments