@@ -449,6 +449,118 @@ jobs:
449
449
PPC_ASAN_RUN : 1
450
450
ASAN_OPTIONS : abort_on_error=1
451
451
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
+ PPC_IGNORE_TEST_TIME_LIMIT : 1
537
+ - name : Run tests (threads, num_threads=1)
538
+ run : python3 scripts/run_tests.py --running-type="threads"
539
+ env :
540
+ OMP_NUM_THREADS : 1
541
+ ASAN_RUN : 1
542
+ ASAN_OPTIONS : abort_on_error=1
543
+ PPC_IGNORE_TEST_TIME_LIMIT : 1
544
+ - name : Run tests (threads, num_threads=2)
545
+ run : python3 scripts/run_tests.py --running-type="threads"
546
+ env :
547
+ OMP_NUM_THREADS : 2
548
+ ASAN_RUN : 1
549
+ ASAN_OPTIONS : abort_on_error=1
550
+ - name : Run tests (threads, num_threads=3)
551
+ run : python3 scripts/run_tests.py --running-type="threads"
552
+ env :
553
+ OMP_NUM_THREADS : 3
554
+ ASAN_RUN : 1
555
+ ASAN_OPTIONS : abort_on_error=1
556
+ PPC_IGNORE_TEST_TIME_LIMIT : 1
557
+ - name : Run tests (threads, num_threads=4)
558
+ run : python3 scripts/run_tests.py --running-type="threads"
559
+ env :
560
+ OMP_NUM_THREADS : 4
561
+ ASAN_RUN : 1
562
+ ASAN_OPTIONS : abort_on_error=1
563
+ PPC_IGNORE_TEST_TIME_LIMIT : 1
452
564
ubuntu-clang-sanitizer-test-extended :
453
565
needs :
454
566
- ubuntu-clang-sanitizer-test
0 commit comments