Skip to content

Commit 73da98e

Browse files
committed
15
1 parent 62a8dfb commit 73da98e

4 files changed

Lines changed: 14 additions & 14 deletions

File tree

.github/workflows/macos.yml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,16 @@ jobs:
5151
- name: Test
5252
working-directory: build
5353
run: |
54-
# 诊断模式: 暂时不加 suppressions,让 4 个竞争完整显形。
55-
# halt_on_error=1 一发现竞争即非零退出; verbosity=1 + second_deadlock_stack=1 打全栈。
56-
# 看清竞争来源(栈顶在 Catch:: 还是 taskflowlite/core/...)后,再决定 suppress 还是改源码。
57-
export TSAN_OPTIONS="halt_on_error=1 history_size=7 second_deadlock_stack=1 verbosity=1"
54+
mkdir -p bin
55+
# suppressions: 压制非本库的已知 TSan 噪音(测试框架 / 标准库线程启动路径)。
56+
# - race:__thread_proxy 新版 libc++ std::thread 启动路径(thread.h __thread_proxy)
57+
# 被 TSan 标为 atomic-write vs read 的竞争, 实为标准库内部线程生命周期管理,
58+
# 非本库数据竞争; test_allocator.cpp 起多线程时触发, 无法也不应改标准库, 故压制。
59+
# - race:Catch::* Catch2 运行时的已知噪音。
60+
printf 'race:__thread_proxy\nrace:Catch::RunContext\nrace:Catch::Detail\nrace:__sanitizer::IsAccessibleMemoryRange\n' > bin/tsan_suppressions.txt
61+
# 用绝对路径: ctest 运行测试时工作目录是 build/bin, 相对路径会被叠加成 build/bin/bin/... 而读不到。
62+
# 显式指定 suppressions, 以本文件为准(覆盖环境里可能存在的其它 supp 来源)。
63+
export TSAN_OPTIONS="suppressions=$(pwd)/bin/tsan_suppressions.txt halt_on_error=1 second_deadlock_stack=1 history_size=7"
5864
ctest --output-on-failure -LE perfile
5965
6066
# Release

.github/workflows/windows.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ jobs:
2222
Copy-Item "$asanDir\clang_rt.asan*.dll" -Destination build\bin\Debug -Force
2323
- name: Test
2424
working-directory: build
25-
run: ctest -C Debug --output-on-failure
25+
# 单文件目标(tfl_test_*)默认 EXCLUDE_FROM_ALL,未被构建;用 -LE perfile 跳过它们,
26+
# 只跑单体 TaskflowLiteTest(已覆盖全部用例)。
27+
run: ctest -C Debug --output-on-failure -LE perfile
2628

2729
# Release
2830
release:
@@ -35,4 +37,4 @@ jobs:
3537
run: cmake --build build --config Release --parallel 4
3638
- name: Test
3739
working-directory: build
38-
run: ctest -C Release --output-on-failure
40+
run: ctest -C Release --output-on-failure -LE perfile

README.en.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -524,10 +524,6 @@ cmake --build build --config Release
524524
# All tests
525525
./build/bin/TaskflowLiteTest
526526

527-
# Filter by tag
528-
./build/bin/TaskflowLiteTest "[flow]"
529-
./build/bin/TaskflowLiteTest "[queue]"
530-
531527
# Single file (build on demand)
532528
cmake --build build --target tfl_test_queue
533529
./build/bin/tfl_test_queue

README.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -526,10 +526,6 @@ cmake --build build --config Release
526526
# 全部
527527
./build/bin/TaskflowLiteTest
528528

529-
# 按标签
530-
./build/bin/TaskflowLiteTest "[flow]"
531-
./build/bin/TaskflowLiteTest "[queue]"
532-
533529
# 单文件(按需构建)
534530
cmake --build build --target tfl_test_queue
535531
./build/bin/tfl_test_queue

0 commit comments

Comments
 (0)