Skip to main content

Module dyntest

Module dyntest 

Source
Available on crate feature dyntest only.
Expand description

动态编译运行 harness(仅开发期使用):将代码片段生成临时 Cargo 工程并编译执行,支持超时、批量与缓存(DnyRun / BatchRunner)。

需要同时启用 "dyntest" 与 "std" 特性。传入代码将被编译执行,仅可在隔离沙箱中使用。

Structs§

BatchRunner
批量运行器:串行执行多个 DnyTask,可选超时、仅编译、依赖缓存与逐任务回调。
DnyResult
单次动态测试的结果,Display 输出彩色摘要(超长输出自动截断)。
DnyRun
单个临时 Cargo 工程的句柄:在 target/dyn_tests/dny_<id>/ 下生成工程并编译执行,Drop 时释放心跳锁。
DnyTask
单个动态测试任务:main.rs 内容、依赖与运行配置的 Builder。
DynTestLock
工程心跳锁:在 target/dyn_tests/lock/ 下创建锁文件并由后台线程每 500ms 续写,Drop 时停线程删文件,用于识别僵尸工程。

Enums§

SystemError
动态测试运行的系统级错误(区别于被测程序自身的失败)。

Functions§

clear_dny_project
清理全部动态测试工程:等待活跃锁释放(心跳停滞超 1500ms 的视为僵尸并清除其锁),再删除 target/dyn_tests 目录。
dny_run
运行单个动态测试任务的便捷入口(等价于单任务 BatchRunner)。
dny_run_batch
批量运行的便捷入口(不使用依赖预热缓存)。
dny_run_batch_use_cache
批量运行的便捷入口(启用首任务依赖预热缓存,首个结果为 "init_cache")。