From 56fca44a4bc4819a1c64d0435f8383f9c42ceab3 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Sat, 28 Oct 2023 15:05:42 +0200 Subject: [PATCH] build: run sanitizers on macos ci (#4189) Skip three fs_event tests that time out under Thread Sanitizer. --- .github/workflows/sanitizer.yml | 37 ++++++++++++++++++++++++++++++++- test/test-fs-event.c | 8 ++++++- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sanitizer.yml b/.github/workflows/sanitizer.yml index 8173c822..78052d0c 100644 --- a/.github/workflows/sanitizer.yml +++ b/.github/workflows/sanitizer.yml @@ -13,7 +13,7 @@ on: - master jobs: - sanitizers: + sanitizers-linux: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 @@ -60,3 +60,38 @@ jobs: - name: UBSAN Test run: | ./build-ubsan/uv_run_tests_a + + sanitizers-macos: + runs-on: macos-11 + steps: + - uses: actions/checkout@v2 + + - name: Envinfo + run: npx envinfo + + - name: ASAN Build + run: | + mkdir build-asan + (cd build-asan && cmake .. -DBUILD_TESTING=ON -DASAN=ON -DCMAKE_BUILD_TYPE=Debug) + cmake --build build-asan + - name: ASAN Test + run: | + ./build-asan/uv_run_tests_a + + - name: TSAN Build + run: | + mkdir build-tsan + (cd build-tsan && cmake .. -DBUILD_TESTING=ON -DTSAN=ON -DCMAKE_BUILD_TYPE=Release) + cmake --build build-tsan + - name: TSAN Test + run: | + ./build-tsan/uv_run_tests_a + + - name: UBSAN Build + run: | + mkdir build-ubsan + (cd build-ubsan && cmake .. -DBUILD_TESTING=ON -DUBSAN=ON -DCMAKE_BUILD_TYPE=Debug) + cmake --build build-ubsan + - name: UBSAN Test + run: | + ./build-ubsan/uv_run_tests_a diff --git a/test/test-fs-event.c b/test/test-fs-event.c index b5c888d6..7b5c0d8e 100644 --- a/test/test-fs-event.c +++ b/test/test-fs-event.c @@ -405,6 +405,8 @@ TEST_IMPL(fs_event_watch_dir) { RETURN_SKIP(NO_FS_EVENTS); #elif defined(__MVS__) RETURN_SKIP("Directory watching not supported on this platform."); +#elif defined(__APPLE__) && defined(__TSAN__) + RETURN_SKIP("Times out under TSAN."); #endif uv_loop_t* loop = uv_default_loop(); @@ -443,7 +445,9 @@ TEST_IMPL(fs_event_watch_dir) { TEST_IMPL(fs_event_watch_dir_recursive) { -#if defined(__APPLE__) || defined(_WIN32) +#if defined(__APPLE__) && defined(__TSAN__) + RETURN_SKIP("Times out under TSAN."); +#elif defined(__APPLE__) || defined(_WIN32) uv_loop_t* loop; int r; uv_fs_event_t fs_event_root; @@ -946,6 +950,8 @@ TEST_IMPL(fs_event_close_in_callback) { RETURN_SKIP(NO_FS_EVENTS); #elif defined(__MVS__) RETURN_SKIP("Directory watching not supported on this platform."); +#elif defined(__APPLE__) && defined(__TSAN__) + RETURN_SKIP("Times out under TSAN."); #endif uv_loop_t* loop; int r;