diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d91e047ed..1c0ccb1a7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -46,7 +46,7 @@ jobs: mkdir build cd build cmake -DRMG_BUILD_EXAMPLES=1 -DBUILD_TESTING=ON -DRMG_BUILD_DOCS=OFF .. | tee -a build.log - make | tee -a build.log + make -j$(nproc) | tee -a build.log make install | tee -a build.log - name: check version equality @@ -87,7 +87,8 @@ jobs: DISPLAY: :99 run: | cd build - ctest --output-on-failure + ctest --label-exclude mt -j$(nproc) --output-on-failure + ctest --label-regex mt -j1 --output-on-failure - name: Upload test suite outputs to GitHub if: ${{ always() && matrix.container_version != 'slim' }} @@ -103,7 +104,8 @@ jobs: DISPLAY: :99 run: | cd build - ctest --output-on-failure --label-exclude 'extra|vis' + ctest --label-exclude 'extra|vis|mt' -j$(nproc) --output-on-failure + ctest --label-regex mt --label-exclude 'extra|vis' -j --output-on-failure - name: Test docs building if: ${{ matrix.container_version != 'slim' }} @@ -165,13 +167,14 @@ jobs: mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=../local -DRMG_BUILD_EXAMPLES=1 -DBUILD_TESTING=ON -DRMG_BUILD_DOCS=OFF .. - make + make -j$(nproc) make install - name: Run full test suite run: | cd build - ctest --output-on-failure + ctest --label-exclude mt -j$(nproc) --output-on-failure + ctest --label-regex mt -j1 --output-on-failure - name: Minimally test installed executable run: | diff --git a/tests/confinement/CMakeLists.txt b/tests/confinement/CMakeLists.txt index e76f4314e..2ab612db3 100644 --- a/tests/confinement/CMakeLists.txt +++ b/tests/confinement/CMakeLists.txt @@ -1,3 +1,6 @@ +include(ProcessorCount) +ProcessorCount(NUM_CORES) + # collect auxiliary files file( GLOB _aux @@ -22,9 +25,9 @@ foreach(_mac ${_macros}) add_test(NAME confinement/${_mac} COMMAND ${REMAGE_PYEXE} -g gdml/geometry.gdml -o test-out.root -- macros/${_mac}) - add_test(NAME confinement-mt/${_mac} COMMAND ${REMAGE_PYEXE} -g gdml/geometry.gdml -t 2 -o - test-out.root -- macros/${_mac}) - set_tests_properties(confinement-mt/${_mac} PROPERTIES LABELS mt) + add_test(NAME confinement-mt/${_mac} COMMAND ${REMAGE_PYEXE} -g gdml/geometry.gdml -t + ${NUM_CORES} -o test-out.root -- macros/${_mac}) + set_tests_properties(confinement-mt/${_mac} PROPERTIES LABELS mt PROCESSORS ${NUM_CORES}) add_test(NAME confinement-vis/${_mac} COMMAND ${REMAGE_PYEXE} -g gdml/geometry.gdml -o test-out.root -- macros/_vis.mac diff --git a/tests/hades/CMakeLists.txt b/tests/hades/CMakeLists.txt index 8ef45b0f8..9db834409 100644 --- a/tests/hades/CMakeLists.txt +++ b/tests/hades/CMakeLists.txt @@ -1,3 +1,6 @@ +include(ProcessorCount) +ProcessorCount(NUM_CORES) + # collect auxiliary files file( GLOB _aux @@ -18,8 +21,9 @@ foreach(_mac ${_macros} ${_macros_extra} ${_macros_vis}) endforeach() foreach(_mac ${_macros}) - add_test(NAME hades-mt/${_mac} COMMAND ${REMAGE_PYEXE} -g gdml/main.gdml -t 2 macros/${_mac}) - set_tests_properties(hades-mt/${_mac} PROPERTIES LABELS mt) + add_test(NAME hades-mt/${_mac} COMMAND ${REMAGE_PYEXE} -g gdml/main.gdml -t ${NUM_CORES} + macros/${_mac}) + set_tests_properties(hades-mt/${_mac} PROPERTIES LABELS mt PROCESSORS ${NUM_CORES}) endforeach() if(NOT BxDecay0_FOUND) @@ -29,8 +33,9 @@ endif() if(BxDecay0_THREADSAFE) foreach(_mac ${_macros_extra}) - add_test(NAME hades-mt/${_mac} COMMAND ${REMAGE_PYEXE} -g gdml/main.gdml -t 2 macros/${_mac}) - set_tests_properties(hades-mt/${_mac} PROPERTIES LABELS "mt;extra") + add_test(NAME hades-mt/${_mac} COMMAND ${REMAGE_PYEXE} -g gdml/main.gdml -t ${NUM_CORES} + macros/${_mac}) + set_tests_properties(hades-mt/${_mac} PROPERTIES LABELS "mt;extra" PROCESSORS ${NUM_CORES}) endforeach() endif() diff --git a/tests/vertex/CMakeLists.txt b/tests/vertex/CMakeLists.txt index 68d3edee0..d7cff989c 100644 --- a/tests/vertex/CMakeLists.txt +++ b/tests/vertex/CMakeLists.txt @@ -1,3 +1,6 @@ +include(ProcessorCount) +ProcessorCount(NUM_CORES) + # collect auxiliary files file( GLOB _aux @@ -25,7 +28,7 @@ foreach(_mac ${_macros}) vertex-input-fixture) # note: only 4 threads available on GitHub actions. - add_test(NAME vertex-mt/${_mac} COMMAND ${PYTHONPATH} run-vtx.py ${_mac} 4) + add_test(NAME vertex-mt/${_mac} COMMAND ${PYTHONPATH} run-vtx.py ${_mac} ${NUM_CORES}) set_tests_properties(vertex-mt/${_mac} PROPERTIES LABELS "mt;extra" FIXTURES_REQUIRED - vertex-input-fixture) + vertex-input-fixture PROCESSORS ${NUM_CORES}) endforeach()