diff --git a/cmake/targets/common.cmake b/cmake/targets/common.cmake index d55e1f68f48..7862a5167ba 100644 --- a/cmake/targets/common.cmake +++ b/cmake/targets/common.cmake @@ -69,6 +69,7 @@ endif() # tests if(BUILD_TESTS) + enable_testing() add_subdirectory(tests) endif() diff --git a/packaging/linux/copr/Sunshine.spec b/packaging/linux/copr/Sunshine.spec index f79c35d2b4c..cf092521383 100644 --- a/packaging/linux/copr/Sunshine.spec +++ b/packaging/linux/copr/Sunshine.spec @@ -224,13 +224,9 @@ cuda_supported_architectures=("x86_64" "aarch64") # prepare CMAKE args cmake_args=( - "-B=%{_builddir}/Sunshine/build" - "-G=Unix Makefiles" - "-S=." "-DBUILD_DOCS=OFF" "-DBUILD_WERROR=ON" "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_PREFIX=%{_prefix}" "-DSUNSHINE_ASSETS_DIR=%{_datadir}/sunshine" "-DSUNSHINE_EXECUTABLE_PATH=%{_bindir}/sunshine" "-DSUNSHINE_ENABLE_DRM=ON" @@ -241,6 +237,7 @@ cmake_args=( "-DSUNSHINE_PUBLISHER_NAME=LizardByte" "-DSUNSHINE_PUBLISHER_WEBSITE=https://app.lizardbyte.dev" "-DSUNSHINE_PUBLISHER_ISSUE_URL=https://app.lizardbyte.dev/support" + "-DCMAKE_TEST_LAUNCHER=xvfb-run" ) %if 0%{?fedora} @@ -380,8 +377,8 @@ uv sync \ %endif echo "cmake args:" echo "${cmake_args[@]}" -cmake "${cmake_args[@]}" -make -j$(nproc) -C "%{_builddir}/Sunshine/build" +%cmake ${cmake_args[@]} +%cmake_build %check # validate the metainfo file @@ -390,8 +387,8 @@ appstream-util validate %{buildroot}%{_metainfodir}/*.metainfo.xml desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop # run tests -cd %{_builddir}/Sunshine/build -xvfb-run ./tests/test_sunshine +cd %{_builddir}/Sunshine/ +%ctest %install # Load NVM for Fedora 44+ so npm is available during make install @@ -409,8 +406,8 @@ echo "Node.js version: $(node --version)" echo "npm version: $(npm --version)" %endif -cd %{_builddir}/Sunshine/build -%make_install +cd %{_builddir}/Sunshine +%cmake_install %post # Note: this is copied from the postinst script diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c38547f4d57..f708981ad92 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -124,6 +124,9 @@ list(REMOVE_ITEM SUNSHINE_SOURCES ${CMAKE_SOURCE_DIR}/src/main.cpp) add_executable(${PROJECT_NAME} ${TEST_SOURCES} ${SUNSHINE_SOURCES}) +# TODO: Use proper gtest integration from GoogleTest module +add_test(NAME ${PROJECT_NAME} + COMMAND ${PROJECT_NAME}) # Copy files needed for config consistency tests to build directory # This ensures both CLI and CLion can access the same files relative to the test executable