@@ -30,8 +30,16 @@ permissions:
3030
3131jobs :
3232 test_suite :
33- name : Run the test suite
34- runs-on : ubuntu-24.04
33+ name : " Run the test suite (GCC ${{ matrix.gcc }} on ${{ matrix.runs-on }})"
34+ runs-on : ${{ matrix.runs-on }}
35+ strategy :
36+ fail-fast : false
37+ matrix :
38+ include :
39+ - runs-on : ubuntu-22.04
40+ gcc : 9
41+ - runs-on : ubuntu-24.04
42+ gcc : 14
3543 steps :
3644 - uses : actions/checkout@v4
3745
6573
6674 sudo perl -MCPAN -e 'install(Memory::Process)' # no package in Ubuntu
6775
76+ - name : " Make GCC ${{ matrix.gcc }} and GCOV ${{ matrix.gcc }} systemwide defaults"
77+ run : |-
78+ set -x -o pipefail
79+ # Make requested version GCC and GCOV the system default
80+ # before we have an easy way to fully divert "make check"
81+ # off of the default commands
82+ for i in gcc{,-{ar,nm,ranlib}} gcov{,-{dump,tool}} lto-dump ; do
83+ sudo rm /usr/bin/"${i}"
84+ sudo ln -s "${i}-${{ matrix.gcc }}" /usr/bin/"${i}"
85+ "${i}" --version | head -n1
86+ done
87+
6888 - name : make install
6989 run : |-
7090 set -x -o pipefail
@@ -86,13 +106,13 @@ jobs:
86106 - name : Upload test log as an artifact
87107 uses : actions/upload-artifact@v4
88108 with :
89- name : " lcov-${{ github.sha }}-${{ runner.os }}-test-log" # .zip
109+ name : " lcov-${{ github.sha }}-${{ runner.os }}-GCC-${{ runner.gcc }}- test-log" # .zip
90110 path : tests/test.log
91111 if-no-files-found : error
92112
93113 - name : Upload test directory shrapnel as an artifact
94114 uses : actions/upload-artifact@v4
95115 with :
96- name : " lcov-${{ github.sha }}-${{ runner.os }}-shrapnel" # .zip
116+ name : " lcov-${{ github.sha }}-${{ runner.os }}-GCC-${{ runner.gcc }}- shrapnel" # .zip
97117 path : tests
98118 # if-no-files-found: error
0 commit comments