File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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
Original file line number Diff line number Diff line change 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 :
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
Original file line number Diff line number Diff 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)
532528cmake --build build --target tfl_test_queue
533529./build/bin/tfl_test_queue
Original file line number Diff line number Diff 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# 单文件(按需构建)
534530cmake --build build --target tfl_test_queue
535531./build/bin/tfl_test_queue
You can’t perform that action at this time.
0 commit comments