diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..0030a1e --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,239 @@ +name: Test + +on: [pull_request, merge_group] + +jobs: + test-ubuntu-22: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - name: install-prerequisites + run: | + sudo apt-get update + sudo apt-get -y install nvidia-cuda-toolkit {gcc,g++}-{9,10,11,12} clang-{11,12,13,14,15} + + - name: build-gcc-9 + run: | + cd tests + mkdir build-gcc-9 + cd build-gcc-9 + cmake .. -DCMAKE_C_COMPILER=gcc-9 -DCMAKE_CXX_COMPILER=g++-9 + make -j2 + - name: build-gcc-10 + run: | + cd tests + mkdir build-gcc-10 + cd build-gcc-10 + cmake .. -DCMAKE_C_COMPILER=gcc-10 -DCMAKE_CXX_COMPILER=g++-10 + make -j2 + - name: build-gcc-11 + run: | + cd tests + mkdir build-gcc-11 + cd build-gcc-11 + cmake .. -DCMAKE_C_COMPILER=gcc-11 -DCMAKE_CXX_COMPILER=g++-11 + make -j2 + - name: build-gcc-12 + run: | + cd tests + mkdir build-gcc-12 + cd build-gcc-12 + cmake .. -DCMAKE_C_COMPILER=gcc-12 -DCMAKE_CXX_COMPILER=g++-12 + make -j2 + + - name: build-clang-11 + run: | + cd tests + mkdir build-clang-11 + cd build-clang-11 + cmake .. -DCMAKE_C_COMPILER=clang-11 -DCMAKE_CXX_COMPILER=clang++-11 + make -j2 + - name: build-clang-12 + run: | + cd tests + mkdir build-clang-12 + cd build-clang-12 + cmake .. -DCMAKE_C_COMPILER=clang-12 -DCMAKE_CXX_COMPILER=clang++-12 + make -j2 + - name: build-clang-13 + run: | + cd tests + mkdir build-clang-13 + cd build-clang-13 + cmake .. -DCMAKE_C_COMPILER=clang-13 -DCMAKE_CXX_COMPILER=clang++-13 + make -j2 + - name: build-clang-14 + run: | + cd tests + mkdir build-clang-14 + cd build-clang-14 + cmake .. -DCMAKE_C_COMPILER=clang-14 -DCMAKE_CXX_COMPILER=clang++-14 + make -j2 + - name: build-clang-15 + run: | + cd tests + mkdir build-clang-15 + cd build-clang-15 + cmake .. -DCMAKE_C_COMPILER=clang-15 -DCMAKE_CXX_COMPILER=clang++-15 + make -j2 + + - name: run-gcc-9 + run: | + cd tests/build-gcc-9 + ../runalltests.sh + - name: run-gcc-10 + run: | + cd tests/build-gcc-10 + ../runalltests.sh + - name: run-gcc-11 + run: | + cd tests/build-gcc-11 + ../runalltests.sh + - name: run-gcc-12 + run: | + cd tests/build-gcc-12 + ../runalltests.sh + + - name: run-clang-11 + run: | + cd tests/build-clang-11 + ../runalltests.sh + - name: run-clang-12 + run: | + cd tests/build-clang-12 + ../runalltests.sh + - name: run-clang-13 + run: | + cd tests/build-clang-13 + ../runalltests.sh + - name: run-clang-14 + run: | + cd tests/build-clang-14 + ../runalltests.sh + - name: run-clang-15 + run: | + cd tests/build-clang-15 + ../runalltests.sh + + test-ubuntu-20: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - name: install-prerequisites + run: | + sudo apt-get update + sudo apt-get -y install nvidia-cuda-toolkit {gcc,g++}-{7,8,9,10} clang-{7,8,9,10,11,12} + + - name: build-gcc-7 + run: | + cd tests + mkdir build-gcc-7 + cd build-gcc-7 + cmake .. -DCMAKE_C_COMPILER=gcc-7 -DCMAKE_CXX_COMPILER=g++-7 + make -j2 + - name: build-gcc-8 + run: | + cd tests + mkdir build-gcc-8 + cd build-gcc-8 + cmake .. -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8 + make -j2 + - name: build-gcc-9 + run: | + cd tests + mkdir build-gcc-9 + cd build-gcc-9 + cmake .. -DCMAKE_C_COMPILER=gcc-9 -DCMAKE_CXX_COMPILER=g++-9 + make -j2 + - name: build-gcc-10 + run: | + cd tests + mkdir build-gcc-10 + cd build-gcc-10 + cmake .. -DCMAKE_C_COMPILER=gcc-10 -DCMAKE_CXX_COMPILER=g++-10 + make -j2 + + - name: build-clang-7 + run: | + cd tests + mkdir build-clang-7 + cd build-clang-7 + cmake .. -DCMAKE_C_COMPILER=clang-7 -DCMAKE_CXX_COMPILER=clang++-7 + make -j2 + - name: build-clang-8 + run: | + cd tests + mkdir build-clang-8 + cd build-clang-8 + cmake .. -DCMAKE_C_COMPILER=clang-8 -DCMAKE_CXX_COMPILER=clang++-8 + make -j2 + - name: build-clang-9 + run: | + cd tests + mkdir build-clang-9 + cd build-clang-9 + cmake .. -DCMAKE_C_COMPILER=clang-9 -DCMAKE_CXX_COMPILER=clang++-9 + make -j2 + - name: build-clang-10 + run: | + cd tests + mkdir build-clang-10 + cd build-clang-10 + cmake .. -DCMAKE_C_COMPILER=clang-10 -DCMAKE_CXX_COMPILER=clang++-10 + make -j2 + - name: build-clang-11 + run: | + cd tests + mkdir build-clang-11 + cd build-clang-11 + cmake .. -DCMAKE_C_COMPILER=clang-11 -DCMAKE_CXX_COMPILER=clang++-11 + make -j2 + - name: build-clang-12 + run: | + cd tests + mkdir build-clang-12 + cd build-clang-12 + cmake .. -DCMAKE_C_COMPILER=clang-12 -DCMAKE_CXX_COMPILER=clang++-12 + make -j2 + + - name: run-gcc-7 + run: | + cd tests/build-gcc-7 + ../runalltests.sh + - name: run-gcc-8 + run: | + cd tests/build-gcc-8 + ../runalltests.sh + - name: run-gcc-9 + run: | + cd tests/build-gcc-9 + ../runalltests.sh + - name: run-gcc-10 + run: | + cd tests/build-gcc-10 + ../runalltests.sh + + - name: run-clang-7 + run: | + cd tests/build-clang-7 + ../runalltests.sh + - name: run-clang-8 + run: | + cd tests/build-clang-8 + ../runalltests.sh + - name: run-clang-9 + run: | + cd tests/build-clang-9 + ../runalltests.sh + - name: run-clang-10 + run: | + cd tests/build-clang-10 + ../runalltests.sh + - name: run-clang-11 + run: | + cd tests/build-clang-11 + ../runalltests.sh + - name: run-clang-12 + run: | + cd tests/build-clang-12 + ../runalltests.sh diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index f79ab09..c1de8b7 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -62,9 +62,9 @@ if(${MSVC}) endif() else() # Stop compiling immediately after first error - add_compile_options(-Wfatal-errors) + # add_compile_options(-Wfatal-errors) # Check for initializing unions without required braces - add_compile_options(-Wmissing-braces) + # add_compile_options(-Wmissing-braces) endif() diff --git a/tests/runalltests.sh b/tests/runalltests.sh new file mode 100755 index 0000000..fca839d --- /dev/null +++ b/tests/runalltests.sh @@ -0,0 +1,32 @@ +#!/bin/bash +set -ex +./runtest -t attributes +./runtest -t attributes -i inj +./runtest -t calls +./runtest -t calls -i inj +./runtest -t calls -i calls +./runtest -t categories +./runtest -t categories -i inj +./runtest -t coverage +./runtest -t coverage -i inj +./runtest -t coveragec +./runtest -t coveragec -i inj +./runtest -t coverage-counter +./runtest -t coverage-counter -i inj +./runtest -t coverage-cu +./runtest -t coverage-cu -i inj +./runtest -t coverage-mem +./runtest -t coverage-mem -i inj +./runtest -t coverage-memcudart +./runtest -t coverage-memcudart -i inj +./runtest -t coverage-payload +./runtest -t coverage-payload -i inj +./runtest -t domains +./runtest -t domains -i inj +./runtest -t linkerdupes +./runtest -t linkerdupes -i inj +./runtest -t regstrings +./runtest -t regstrings -i inj +./runtest -t self +./runtest -t self -i inj +./runtest -t self -i self