tests/ — 測試策略

6,768 tests / 120 suites:Hybrid LSP 覆蓋是重頭戲
目錄:tests/(6,768 tests / 120 suites)

大方向

CBM 的測試量非常大(6,768 tests / 120 suites)。特別值得注意的是 Hybrid LSP 各語系的覆蓋測試——每個支援的語言都有一大堆「這個模式要解析到那個目標」的斷言測試。


1. 測試分類

test_<lang>_lsp.c tests/Hybrid LSP 各語系解析測試(最大的測試群)。

graphify 案例中最大的社群就是這些:test_c_lsp.c(602 節點社群)、test_rust_lsp.ctest_php_lsp.ctest_java_lsp.ctest_ts_lsp.ctest_kotlin_lsp.ctest_py_lsp.c。每個都斷言「某段程式碼的某個呼叫解析到正確目標」。這是「Go to Definition 等級解析」品質的來源。

test_cypher.c · test_store.c · test_cli.c · test_daemon*.c tests/核心模組的單元測試。

Cypher 引擎、store、CLI、daemon 各有專屬測試檔。多數函式有 _for_test() 鉤子讓測試注入失敗/延遲(可測試性設計)。

2. 特殊測試

test-infrastructure/ · repro/ · scale_contract.sh tests/回歸、重現、規模契約。

repro/ 放 issue 重現(repro_issue408…);scale_contract.sh 驗證規模行為(大 repo 不退化);smoke_guard.sh 做煙霧守衛。還有 grammar_cases.h 涵蓋各文法邊界案例。

3. 如何跑

scripts/test.sh scripts/測試入口(與 CI gate 相同)。
scripts/test.sh                     # full: clean sanitizer build + all suites + guards
scripts/test.sh --suites <name>     # 單一 suite,增量,幾秒
build/c/test-runner --list-suites   # 看有哪些 suite

CI gate 也跑 scripts/test.sh——本機過 = CI 過。另有 test_build_dir_safety.shtest_cpp_index_hang.sh 這類 shell 守衛。

看完這頁你應該能說出:CBM 的測試主力是 Hybrid LSP 各語系的解析斷言、_for_test() 鉤子讓核心可測、repro/ 放 issue 重現、以及 test.sh 與 CI gate 相同。