✨ feat: 灵台引擎脾神(hj_transform)确定性 Markdown 解析器(WP-15)
- C ABI 新增 hj_transform_version / hj_transform_markdown(契约登记同步);HjBuffer 真实实现(头部+紧随数据) - v1 解析(hunjing-markdown-v1):fenced code/mermaid 提取、独占行 $$ 块级数学、未闭合结构保持源码态、其余归并 markdown block;canonical JSON 键序确定、UTF-8 校验、1MiB/256 block/64KiB 行硬限额 - 引擎内部设施抽取(engine_internal.h:last_error/句柄表/buffer 共享) - doctest 12 个用例(含 1 万次随机鲁棒性冒烟,固定种子可复现);libFuzzer 目标(-DHJ_BUILD_FUZZER,Apple clang 无 fuzzer 运行时,正式跑在 Linux CI) - nm 验证 9 个导出符号全部 hj_*
This commit is contained in:
1 parent
d3c8df79a8
commit
127191c889
10 files changed
+565
-26
No files matched your search
+18
-3
@@ -17,14 +17,29 @@ endif()
|
||||
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
|
||||
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
|
||||
|
||||
add_library(hunjing SHARED src/lingtai.cpp)
|
||||
target_include_directories(hunjing PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
add_library(hunjing SHARED src/lingtai.cpp src/transform.cpp)
|
||||
target_include_directories(hunjing
|
||||
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
|
||||
# 单元测试(doctest,ADR-025);单头直接引入,不用 FetchContent 拉网络
|
||||
add_executable(lingtai_tests tests/test_core.cpp src/lingtai.cpp)
|
||||
add_executable(lingtai_tests tests/test_main.cpp tests/test_core.cpp tests/test_transform.cpp
|
||||
src/lingtai.cpp src/transform.cpp)
|
||||
target_include_directories(lingtai_tests PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/third_party)
|
||||
|
||||
enable_testing()
|
||||
add_test(NAME lingtai_tests COMMAND lingtai_tests)
|
||||
|
||||
# fuzz 目标(ADR-025:hj_transform 为必测目标;需要 clang libFuzzer)
|
||||
option(HJ_BUILD_FUZZER "Build libFuzzer targets" OFF)
|
||||
if(HJ_BUILD_FUZZER)
|
||||
add_executable(fuzz_transform fuzz/fuzz_transform.cpp src/lingtai.cpp src/transform.cpp)
|
||||
target_include_directories(fuzz_transform PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
target_compile_options(fuzz_transform PRIVATE -fsanitize=fuzzer,address -g)
|
||||
target_link_options(fuzz_transform PRIVATE -fsanitize=fuzzer,address)
|
||||
endif()
|
||||
Reference in new issue
Block a user