Problem
#57 verify 的 DA 實測:swift-testing 的 .timeLimit(.minutes(1)) 掛在一個同步阻塞於 C call(waitUntilExit / blocking read)的 test body 上,60 s 時記錄一則 issue,但 body 繼續跑滿 150 s——它不會解除阻塞、不會終止 body。
repo 內以此為「掛住會轉成真的紅燈」的既有站點(grep -rn timeLimit Tests/):
Tests/LTMQueryTests/ConservativeStrategyTests.swift:202 註解逐字寫「它回歸時的症狀是掛住而不是失敗,.timeLimit 把它轉成一個真的紅燈」
Tests/LTMEvalTests/InterleavingTerminationTests.swift(4 條)
Tests/LTMMemoryTests/CorpusContainmentTests.swift(4 條,FIFO 阻塞情境)
Tests/LTMIndexTests/IndexBuilderTests.swift:1086
.timeLimit 對純 Swift 迴圈的 body 是否能中止,與對阻塞 syscall 的 body 行為可能不同——DA 只量了後者。各站點要分別驗。
Type
bug(測試基礎設施的假宣稱)
Expected
- 逐站點實測:把 body 換成對應形狀的永久阻塞(純迴圈 vs blocking syscall),看
.timeLimit 是否讓整個 swift test 在限時內結束並紅。
- 對不成立的站點:改成能真正解除阻塞的機制(子行程 → terminate/kill;FIFO → O_NONBLOCK 或 alarm),註解改真。
- 對成立的站點:註解補上「限純 Swift body」的界線。
Actual
註解宣稱「掛住 → 紅燈」,至少對 blocking-syscall 形狀不成立(DA 實測)。#57 的測試已改用有界等待+親手 terminate/kill,不再依賴 .timeLimit。
Source: surfaced during /idd-verify #57 (DA lens)
Current Status
Tasks
Problem
#57 verify 的 DA 實測:swift-testing 的
.timeLimit(.minutes(1))掛在一個同步阻塞於 C call(waitUntilExit/ blocking read)的 test body 上,60 s 時記錄一則 issue,但 body 繼續跑滿 150 s——它不會解除阻塞、不會終止 body。repo 內以此為「掛住會轉成真的紅燈」的既有站點(
grep -rn timeLimit Tests/):Tests/LTMQueryTests/ConservativeStrategyTests.swift:202註解逐字寫「它回歸時的症狀是掛住而不是失敗,.timeLimit把它轉成一個真的紅燈」Tests/LTMEvalTests/InterleavingTerminationTests.swift(4 條)Tests/LTMMemoryTests/CorpusContainmentTests.swift(4 條,FIFO 阻塞情境)Tests/LTMIndexTests/IndexBuilderTests.swift:1086.timeLimit對純 Swift 迴圈的 body 是否能中止,與對阻塞 syscall 的 body 行為可能不同——DA 只量了後者。各站點要分別驗。Type
bug(測試基礎設施的假宣稱)
Expected
.timeLimit是否讓整個swift test在限時內結束並紅。Actual
註解宣稱「掛住 → 紅燈」,至少對 blocking-syscall 形狀不成立(DA 實測)。#57 的測試已改用有界等待+親手 terminate/kill,不再依賴
.timeLimit。Source: surfaced during /idd-verify #57 (DA lens)
Current Status
Tasks
expectCompletes(within:_:):detached thread+有界 semaphore,逾時具名失敗並 return.timeLimit