Add explicit "apt-get update" for all test cases which uses "apt-get".
- It may help to stabilize fetching from apt archive.
As for "CC=gcc-11"
- Add "g++-11" package.
- "g++-11" has been removed from the default virtual environment.
https://github.com/actions/virtual-environments/issues/3467
[lz4-c-compilers] contains the following commands
```
make all
CFLAGS=-fPIC LDFLAGS='-pie -fPIE -D_FORTIFY_SOURCE=2' make -C programs
```
[lz4-c-compilers] 025c3ce8f9/.github/workflows/ci.yml (L17-L154)
Disable "(Trusty) gcc-6 standard C compilation"
[lz4-c-compilers] contains the following commands for gcc-6
```
make c_standards
make -C tests test-lz4
```
[lz4-c-compilers] 025c3ce8f9/.github/workflows/ci.yml (L17-L154)
[lz4-compilers] contains the following commands.
Note that `make all` contains `make examples`
```
make cxxtest
make clean
make examples
make clean cmake
make clean clangtest
```
[lz4-build-make-travis-install] contains the following commands.
```
make travis-install
```
[lz4-c-compilers] 025c3ce8f9/.github/workflows/ci.yml (L17-L154)
[lz4-build-make-travis-install] 025c3ce8f9/.github/workflows/ci.yml (L498-L510)
[lz4-custom-distance] contains the following command
```
MOREFLAGS='-DLZ4_DISTANCE_MAX=8000' make V=1 check
make V=1 -C programs lz4-wlib
make V=1 -C tests fullbench-wmalloc # test LZ4_USER_MEMORY_FUNCTIONS
CC="c++ -Wno-deprecated" make V=1 -C tests fullbench-wmalloc # stricter function signature check
```
Actually, there're 3+1 tests
(1) Test for Custom LZ4_DISTANCE_MAX. 6654c2c, #753, #755
(2) Test for dynamic link library. 3dd34df, #888
(3-1) Test for LZ4_USER_MEMORY_FUNCTIONS. 52646e8, #937, #946
(3-2) Same as (3-1), but compile it with c++.
After we'll stabilize CI tests, this test should be split into 3 individual parts for clarity.
[lz4-custom-distance] 025c3ce8f9/.github/workflows/ci.yml (L241-L255)
[lz4-frame] in ci.yml contains the following command
```
make -C tests test-frametest
```
[lz4-fuzzer] in ci.yml contains the following command
```
make -C tests test-fuzzer
```
lz4-platform-macos-latest[1] in ci.yml contains the following test command
```
make # test library build
make test MOREFLAGS='-Werror -Wconversion -Wno-sign-conversion' | tee
```
[1] 025c3ce8f9/.github/workflows/ci.yml (L450)
## Added compilers
- gcc: 4.[4678], 5, 6, 11
- clang: 3.[56789], 4, 5, 12
## Known issue
- make -C tests test-lz4c32
- Fails with all versions of clang. See #991 for details.
- CFLAGS='-O3 -mx32' make -C tests test-lz4c32
- Fails with all versions of clang
- Fails with gcc-11
- `make cxxtest`
- Disabled for now. Will be enabled after #993.
- `make c_standards_c90`, `make c_standards_c11`
- Disabled for now. Will be enabled after #994.
## Difference with `.travis.yml`
The following tests are not included yet.
- name: Compile OSS-Fuzz targets
- name: tag build
The following tests won't be included due to lmitation of the CI environment.
- name: aarch64 real-hw tests
- name: PPC64LE real-hw tests
- name: IBM s390x real-hw tests
Except above, all other features in `.travis.yml` has been included in this change set.
The following post describes details.
To support older compiler which doesn't have explicit dialect option
for C90 (gcc-4.4), this change set split "c_standards" into multiple
part.
Original "make c_standards" still works as intended. But this change
gives extra freedom of choice for external program For example, CI
can choose test for standards which is supported by specimen compiler.
With this separation, we can also introduce C17 smoothly.