@@ -449,6 +449,117 @@ jobs:
449449 ASAN_RUN : 1
450450 ASAN_OPTIONS : abort_on_error=1
451451 UBSAN_OPTIONS : halt_on_error=1
452+ ubuntu-clang-thread-sanitizer-build :
453+ needs :
454+ - ubuntu-clang-build
455+ runs-on : ${{ matrix.os }}
456+ strategy :
457+ matrix :
458+ os : ["ubuntu-24.04"]
459+ steps :
460+ - uses : actions/checkout@v4
461+ with :
462+ submodules : recursive
463+ - name : Setup environment
464+ run : |
465+ sudo apt-get update
466+ sudo apt-get install --no-install-recommends -y ninja-build python3-pip \
467+ openmpi-bin openmpi-common libopenmpi-dev
468+ wget https://apt.llvm.org/llvm.sh
469+ chmod u+x llvm.sh
470+ sudo ./llvm.sh 20 all
471+ - name : ccache
472+ uses :
hendrikmuhs/[email protected] 473+ with :
474+ key : ${{ runner.os }}-clang
475+ create-symlink : true
476+ max-size : 1G
477+ - name : CMake configure
478+ run : >
479+ cmake -S . -B build
480+ -D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
481+ -G Ninja
482+ -D CMAKE_BUILD_TYPE=RELEASE -D ENABLE_THREAD_SANITIZER=ON
483+ -D CMAKE_INSTALL_PREFIX=install
484+ env :
485+ CC : clang-20
486+ CXX : clang++-20
487+ - name : Build project
488+ run : |
489+ cmake --build build --parallel
490+ env :
491+ CC : clang-20
492+ CXX : clang++-20
493+ - name : Install project
494+ run : |
495+ cmake --build build --target install
496+ - name : Archive installed package
497+ run : |
498+ tar -czvf ubuntu-clang-thread-sanitizer-install-${{ matrix.os }}.tar.gz -C install .
499+ - name : Upload installed package
500+ uses : actions/upload-artifact@v4
501+ with :
502+ name : ubuntu-clang-thread-sanitizer-install-${{ matrix.os }}
503+ path : ubuntu-clang-thread-sanitizer-install-${{ matrix.os }}.tar.gz
504+ ubuntu-clang-thread-sanitizer-test :
505+ needs :
506+ - ubuntu-clang-thread-sanitizer-build
507+ runs-on : ${{ matrix.os }}
508+ strategy :
509+ matrix :
510+ os : ["ubuntu-24.04"]
511+ steps :
512+ - uses : actions/checkout@v4
513+ - name : Setup environment
514+ run : |
515+ sudo apt-get update
516+ sudo apt-get install --no-install-recommends -y ninja-build python3-pip valgrind \
517+ openmpi-bin openmpi-common libopenmpi-dev
518+ wget https://apt.llvm.org/llvm.sh
519+ chmod u+x llvm.sh
520+ sudo ./llvm.sh 20 all
521+ - name : Download installed package
522+ uses : actions/download-artifact@v4
523+ with :
524+ name : ubuntu-clang-thread-sanitizer-install-${{ matrix.os }}
525+ - name : Extract installed package
526+ run : |
527+ mkdir -p install
528+ tar -xzvf ubuntu-clang-thread-sanitizer-install-${{ matrix.os }}.tar.gz -C install
529+ - name : Run tests (MPI)
530+ run : python3 scripts/run_tests.py --running-type="processes" --additional-mpi-args="--oversubscribe"
531+ env :
532+ PROC_COUNT : 2
533+ OMP_NUM_THREADS : 2
534+ ASAN_RUN : 1
535+ ASAN_OPTIONS : abort_on_error=1
536+ - name : Run tests (threads, num_threads=1)
537+ run : python3 scripts/run_tests.py --running-type="threads"
538+ env :
539+ OMP_NUM_THREADS : 1
540+ ASAN_RUN : 1
541+ ASAN_OPTIONS : abort_on_error=1
542+ - name : Run tests (threads, num_threads=2)
543+ run : python3 scripts/run_tests.py --running-type="threads"
544+ env :
545+ OMP_NUM_THREADS : 2
546+ ASAN_RUN : 1
547+ ASAN_OPTIONS : abort_on_error=1
548+ UBSAN_OPTIONS : halt_on_error=1
549+ - name : Run tests (threads, num_threads=3)
550+ run : python3 scripts/run_tests.py --running-type="threads"
551+ env :
552+ OMP_NUM_THREADS : 3
553+ ASAN_RUN : 1
554+ ASAN_OPTIONS : abort_on_error=1
555+ UBSAN_OPTIONS : halt_on_error=1
556+ - name : Run tests (threads, num_threads=4)
557+ run : python3 scripts/run_tests.py --running-type="threads"
558+ env :
559+ OMP_NUM_THREADS : 4
560+ ASAN_RUN : 1
561+ ASAN_OPTIONS : abort_on_error=1
562+ UBSAN_OPTIONS : halt_on_error=1
452563 ubuntu-clang-sanitizer-test-extended :
453564 needs :
454565 - ubuntu-clang-sanitizer-test
0 commit comments