.test:linux: extends: .common:linux:cross stage: test script: - . ci/scripts/test.linux.script.sh after_script: - . ci/scripts/test.linux.after_script.sh rules: - if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen" - if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen" - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/all-tests/" tags: - saas-linux-2xlarge-amd64 allow_failure: exit_codes: 42 ##### x86-64 ################################################################### .test:linux:x86-64: extends: .test:linux variables: EIGEN_CI_TARGET_ARCH: x86_64 EIGEN_CI_CROSS_TARGET_TRIPLE: x86_64-linux-gnu # GCC-10 (modern stable) .test:linux:x86-64:gcc-10:default: extends: .test:linux:x86-64 needs: [ build:linux:cross:x86-64:gcc-10:default ] variables: EIGEN_CI_INSTALL: g++-10 test:linux:x86-64:gcc-10:default:official: extends: .test:linux:x86-64:gcc-10:default variables: EIGEN_CI_CTEST_LABEL: Official test:linux:x86-64:gcc-10:default:unsupported: extends: .test:linux:x86-64:gcc-10:default variables: EIGEN_CI_CTEST_LABEL: Unsupported .test:linux:x86-64:gcc-10:avx: extends: .test:linux:x86-64 needs: [ build:linux:cross:x86-64:gcc-10:avx ] variables: EIGEN_CI_INSTALL: g++-10 test:linux:x86-64:gcc-10:avx:official: extends: .test:linux:x86-64:gcc-10:avx variables: EIGEN_CI_CTEST_LABEL: Official test:linux:x86-64:gcc-10:avx:unsupported: extends: .test:linux:x86-64:gcc-10:avx variables: EIGEN_CI_CTEST_LABEL: Unsupported .test:linux:x86-64:gcc-10:avx2: extends: .test:linux:x86-64 needs: [ build:linux:cross:x86-64:gcc-10:avx2 ] variables: EIGEN_CI_INSTALL: g++-10 test:linux:x86-64:gcc-10:avx2:official: extends: .test:linux:x86-64:gcc-10:avx2 variables: EIGEN_CI_CTEST_LABEL: Official test:linux:x86-64:gcc-10:avx2:unsupported: extends: .test:linux:x86-64:gcc-10:avx2 variables: EIGEN_CI_CTEST_LABEL: Unsupported .test:linux:x86-64:gcc-10:avx512dq: extends: .test:linux:x86-64 needs: [ build:linux:cross:x86-64:gcc-10:avx512dq ] variables: EIGEN_CI_INSTALL: g++-10 tags: - eigen-runner - linux - x86-64 - avx512 test:linux:x86-64:gcc-10:avx512dq:official: extends: .test:linux:x86-64:gcc-10:avx512dq variables: EIGEN_CI_CTEST_LABEL: Official test:linux:x86-64:gcc-10:avx512dq:unsupported: extends: .test:linux:x86-64:gcc-10:avx512dq variables: EIGEN_CI_CTEST_LABEL: Unsupported # GCC-13 (strict support for _Float16) .test:linux:x86-64:gcc-13:default: extends: .test:linux:x86-64 needs: [ build:linux:cross:x86-64:gcc-13:default ] variables: EIGEN_CI_INSTALL: g++-13 .test:linux:x86-64:gcc-13:avx512fp16: extends: .test:linux:x86-64:gcc-13:default needs: [ build:linux:cross:x86-64:gcc-13:avx512fp16 ] tags: - eigen-runner - linux - x86-64 - avx512 test:linux:x86-64:gcc-13:avx512fp16:official: extends: .test:linux:x86-64:gcc-13:avx512fp16 variables: EIGEN_CI_TEST_LABEL: Official test:linux:x86-64:gcc-13:avx512fp16:unsupported: extends: .test:linux:x86-64:gcc-13:avx512fp16 variables: EIGEN_CI_TEST_LABEL: Unsupported # Clang-14 (modern stable) .test:linux:x86-64:clang-14:default: extends: .test:linux:x86-64 needs: [ build:linux:cross:x86-64:clang-14:default ] variables: EIGEN_CI_INSTALL: clang-14 test:linux:x86-64:clang-14:default:official: extends: .test:linux:x86-64:clang-14:default variables: EIGEN_CI_CTEST_LABEL: Official test:linux:x86-64:clang-14:default:unsupported: extends: .test:linux:x86-64:clang-14:default variables: EIGEN_CI_CTEST_LABEL: Unsupported .test:linux:x86-64:clang-14:avx2: extends: .test:linux:x86-64 needs: [ build:linux:cross:x86-64:clang-14:avx2 ] variables: EIGEN_CI_INSTALL: clang-14 test:linux:x86-64:clang-14:avx2:official: extends: .test:linux:x86-64:clang-14:avx2 variables: EIGEN_CI_CTEST_LABEL: Official test:linux:x86-64:clang-14:avx2:unsupported: extends: .test:linux:x86-64:clang-14:avx2 variables: EIGEN_CI_CTEST_LABEL: Unsupported .test:linux:x86-64:clang-14:avx512dq: extends: .test:linux:x86-64 needs: [ build:linux:cross:x86-64:clang-14:avx512dq ] variables: EIGEN_CI_INSTALL: clang-14 tags: - eigen-runner - linux - x86-64 - avx512 test:linux:x86-64:clang-14:avx512dq:official: extends: .test:linux:x86-64:clang-14:avx512dq variables: EIGEN_CI_CTEST_LABEL: Official test:linux:x86-64:clang-14:avx512dq:unsupported: extends: .test:linux:x86-64:clang-14:avx512dq variables: EIGEN_CI_CTEST_LABEL: Unsupported # Generic vector extension backend. .test:linux:x86-64:clang-19:generic:avx512dq: extends: .test:linux:x86-64 needs: [ build:linux:cross:x86-64:clang-19:generic:avx512dq ] variables: EIGEN_CI_INSTALL: clang-19 tags: - eigen-runner - linux - x86-64 - avx512 test:linux:x86-64:clang-19:generic:avx512dq:official: extends: .test:linux:x86-64:clang-19:generic:avx512dq variables: EIGEN_CI_CTEST_LABEL: Official test:linux:x86-64:clang-19:generic:avx512dq:unsupported: extends: .test:linux:x86-64:clang-19:generic:avx512dq variables: EIGEN_CI_CTEST_LABEL: Unsupported .test:linux:x86-64:clang-19:cxx20:nightly: extends: .test:linux:x86-64 needs: [ build:linux:cross:x86-64:clang-19:cxx20:nightly ] variables: EIGEN_CI_INSTALL: clang-19 rules: - if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen" - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/all-tests/" test:linux:x86-64:clang-19:cxx20:nightly:official: extends: .test:linux:x86-64:clang-19:cxx20:nightly variables: EIGEN_CI_CTEST_LABEL: Official test:linux:x86-64:clang-19:cxx20:nightly:unsupported: extends: .test:linux:x86-64:clang-19:cxx20:nightly variables: EIGEN_CI_CTEST_LABEL: Unsupported ##### Sanitizers ############################################################### .test:linux:x86-64:clang-19:default:asan-ubsan: extends: .test:linux:x86-64 variables: EIGEN_CI_INSTALL: clang-19 llvm-19 ASAN_OPTIONS: detect_leaks=0:print_stacktrace=1 UBSAN_OPTIONS: print_stacktrace=1 ASAN_SYMBOLIZER_PATH: /usr/lib/llvm-19/bin/llvm-symbolizer EIGEN_CI_CTEST_ARGS: --timeout 2000 test:linux:x86-64:clang-19:default:asan-ubsan:official: extends: .test:linux:x86-64:clang-19:default:asan-ubsan needs: [ build:linux:cross:x86-64:clang-19:default:asan-ubsan:official ] variables: EIGEN_CI_CTEST_LABEL: Official test:linux:x86-64:clang-19:default:asan-ubsan:unsupported: extends: .test:linux:x86-64:clang-19:default:asan-ubsan needs: [ build:linux:cross:x86-64:clang-19:default:asan-ubsan:unsupported ] variables: EIGEN_CI_CTEST_LABEL: Unsupported ##### NVHPC #################################################################### .test:linux:x86-64:nvhpc-26.1:default: extends: .test:linux:x86-64 image: nvcr.io/nvidia/nvhpc:26.1-devel-cuda13.1-ubuntu24.04 variables: EIGEN_CI_INSTALL: "" test:linux:x86-64:nvhpc-26.1:default:official: extends: .test:linux:x86-64:nvhpc-26.1:default needs: [ build:linux:x86-64:nvhpc-26.1:default:official ] variables: EIGEN_CI_CTEST_LABEL: Official test:linux:x86-64:nvhpc-26.1:default:unsupported: extends: .test:linux:x86-64:nvhpc-26.1:default needs: [ build:linux:x86-64:nvhpc-26.1:default:unsupported ] variables: EIGEN_CI_CTEST_LABEL: Unsupported ##### CUDA ##################################################################### .test:linux:cuda: extends: .test:linux allow_failure: true variables: EIGEN_CI_CTEST_LABEL: gpu tags: - saas-linux-medium-amd64-gpu-standard # GCC-10, CUDA-12.2 test:linux:cuda-12.2:gcc-10: extends: .test:linux:cuda image: nvidia/cuda:12.2.0-devel-ubuntu20.04 needs: [ build:linux:cuda-12.2:gcc-10 ] variables: EIGEN_CI_CXX_COMPILER: g++-10 EIGEN_CI_CC_COMPILER: gcc-10 # Clang-12, CUDA-12.2 test:linux:cuda-12.2:clang-12: extends: .test:linux:cuda image: nvidia/cuda:12.2.0-devel-ubuntu20.04 needs: [ build:linux:cuda-12.2:clang-12 ] variables: EIGEN_CI_CXX_COMPILER: clang++-12 EIGEN_CI_CC_COMPILER: clang-12 ##### arm ###################################################################### .test:linux:arm: extends: .test:linux variables: EIGEN_CI_TARGET_ARCH: arm EIGEN_CI_CROSS_TARGET_TRIPLE: arm-linux-gnueabihf EIGEN_CI_CTEST_ARGS: --timeout 2000 EIGEN_CI_CTEST_PARALLEL: "4" # Thread pool tests are too slow under qemu emulation. EIGEN_CI_CTEST_EXCLUDE: tensor_thread_pool tags: - saas-linux-large-amd64 .test:linux:arm:gcc-10:default: extends: .test:linux:arm needs: [ build:linux:cross:arm:gcc-10:default ] variables: EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf qemu-user-static test:linux:arm:gcc-10:default:official: extends: .test:linux:arm:gcc-10:default variables: EIGEN_CI_CTEST_LABEL: Official test:linux:arm:gcc-10:default:unsupported: extends: .test:linux:arm:gcc-10:default variables: EIGEN_CI_CTEST_LABEL: Unsupported .test:linux:arm:clang-14:default: extends: .test:linux:arm needs: [ build:linux:cross:arm:clang-14:default ] variables: EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf clang-14 qemu-user-static test:linux:arm:clang-14:default:official: extends: .test:linux:arm:clang-14:default variables: EIGEN_CI_CTEST_LABEL: Official test:linux:arm:clang-14:default:unsupported: extends: .test:linux:arm:clang-14:default variables: EIGEN_CI_CTEST_LABEL: Unsupported ##### aarch64 ################################################################## .test:linux:aarch64: extends: .test:linux variables: EIGEN_CI_TARGET_ARCH: aarch64 EIGEN_CI_CROSS_TARGET_TRIPLE: aarch64-linux-gnu tags: - saas-linux-large-arm64 .test:linux:aarch64:gcc-10:default: extends: .test:linux:aarch64 needs: [ build:linux:cross:aarch64:gcc-10:default ] variables: EIGEN_CI_INSTALL: g++-10 test:linux:aarch64:gcc-10:default:official: extends: .test:linux:aarch64:gcc-10:default variables: EIGEN_CI_CTEST_LABEL: Official test:linux:aarch64:gcc-10:default:unsupported: extends: .test:linux:aarch64:gcc-10:default variables: EIGEN_CI_CTEST_LABEL: Unsupported .test:linux:aarch64:clang-14:default: extends: .test:linux:aarch64 needs: [ build:linux:cross:aarch64:clang-14:default ] variables: EIGEN_CI_INSTALL: clang-14 test:linux:aarch64:clang-14:default:official: extends: .test:linux:aarch64:clang-14:default variables: EIGEN_CI_CTEST_LABEL: Official test:linux:aarch64:clang-14:default:unsupported: extends: .test:linux:aarch64:clang-14:default variables: EIGEN_CI_CTEST_LABEL: Unsupported ##### ppc64le ################################################################## .test:linux:ppc64le: extends: .test:linux variables: EIGEN_CI_TARGET_ARCH: ppc64le EIGEN_CI_CROSS_TARGET_TRIPLE: powerpc64le-linux-gnu EIGEN_CI_CTEST_ARGS: --timeout 2000 EIGEN_CI_CTEST_PARALLEL: "4" # Thread pool tests are too slow under qemu emulation. EIGEN_CI_CTEST_EXCLUDE: tensor_thread_pool tags: - saas-linux-large-amd64 .test:linux:ppc64le:gcc-14:default: extends: .test:linux:ppc64le needs: [ build:linux:cross:ppc64le:gcc-14:default ] variables: EIGEN_CI_CROSS_INSTALL: g++-14-powerpc64le-linux-gnu qemu-user-static test:linux:ppc64le:gcc-14:default:official: extends: .test:linux:ppc64le:gcc-14:default variables: EIGEN_CI_CTEST_LABEL: Official test:linux:ppc64le:gcc-14:default:unsupported: extends: .test:linux:ppc64le:gcc-14:default variables: EIGEN_CI_CTEST_LABEL: Unsupported .test:linux:ppc64le:clang-16:default: extends: .test:linux:ppc64le needs: [ build:linux:cross:ppc64le:clang-16:default ] variables: EIGEN_CI_CROSS_INSTALL: g++-14-powerpc64le-linux-gnu clang-16 qemu-user-static test:linux:ppc64le:clang-16:default:official: extends: .test:linux:ppc64le:clang-16:default variables: EIGEN_CI_CTEST_LABEL: Official test:linux:ppc64le:clang-16:default:unsupported: extends: .test:linux:ppc64le:clang-16:default variables: EIGEN_CI_CTEST_LABEL: Unsupported ##### loongarch64 ############################################################## .test:linux:loongarch64: extends: .test:linux variables: EIGEN_CI_TARGET_ARCH: loongarch64 EIGEN_CI_CROSS_TARGET_TRIPLE: loongarch64-linux-gnu EIGEN_CI_CROSS_INSTALL: g++-14-loongarch64-linux-gnu qemu-user-static EIGEN_CI_CTEST_ARGS: --timeout 2000 EIGEN_CI_CTEST_PARALLEL: "4" # Thread pool tests are too slow under qemu emulation. EIGEN_CI_CTEST_EXCLUDE: tensor_thread_pool tags: - saas-linux-large-amd64 # GCC-14 (Ubuntu 24) .test:linux:loongarch64:gcc-14:default: extends: .test:linux:loongarch64 needs: [ build:linux:cross:loongarch64:gcc-14:default ] test:linux:loongarch64:gcc-14:default:official: extends: .test:linux:loongarch64:gcc-14:default variables: EIGEN_CI_CTEST_LABEL: Official test:linux:loongarch64:gcc-14:default:unsupported: extends: .test:linux:loongarch64:gcc-14:default variables: EIGEN_CI_CTEST_LABEL: Unsupported ##### MR Smoke Tests ########################################################### test:linux:x86-64:gcc-10:default:smoketest: extends: .test:linux:x86-64:gcc-10:default needs: [ build:linux:cross:x86-64:gcc-10:default:smoketest ] variables: EIGEN_CI_CTEST_LABEL: smoketest rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" tags: - saas-linux-medium-amd64 test:linux:x86-64:clang-14:default:smoketest: extends: .test:linux:x86-64:clang-14:default needs: [ build:linux:cross:x86-64:clang-14:default:smoketest ] variables: EIGEN_CI_CTEST_LABEL: smoketest rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" tags: - saas-linux-medium-amd64 test:linux:aarch64:gcc-10:default:smoketest: extends: .test:linux:aarch64:gcc-10:default needs: [ build:linux:aarch64:gcc-10:default:smoketest ] variables: EIGEN_CI_CTEST_LABEL: smoketest rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" tags: - saas-linux-medium-arm64 ##### Sanitizer Smoke Tests #################################################### test:linux:x86-64:clang-14:sanitizer:smoketest: extends: .test:linux:x86-64:clang-14:default needs: [ build:linux:cross:x86-64:clang-14:sanitizer:smoketest ] variables: EIGEN_CI_INSTALL: clang-14 llvm-14 libclang-rt-14-dev EIGEN_CI_CTEST_LABEL: smoketest EIGEN_CI_CTEST_ARGS: --timeout 120 ASAN_OPTIONS: "detect_leaks=0:halt_on_error=1:abort_on_error=1:allocator_may_return_null=1:print_stacktrace=1:detect_stack_use_after_return=0" ASAN_SYMBOLIZER_PATH: "/usr/lib/llvm-14/bin/llvm-symbolizer" UBSAN_OPTIONS: "halt_on_error=0:print_stacktrace=1" rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" tags: - saas-linux-large-amd64 allow_failure: true timeout: 30m