Requirements: Runtime testing
- 主要语言
- Haskell
- 星标
- 1.3k
- 派生
- 201
- PR 合并指标
- 30 天内没有已合并 PR
描述
It would be great to be able to define runtime tests that must be passed as part of the requirements checker. This would involve a severe change in the way the requirements checker works, but my plan is this:
1. Implement the requirements checker as a GHC source plugin rather than a separate CodeWorld build step.
2. For static rules (all of those currently implemented), the result is computed at compile time and hard-coded into the generated code. For dynamic rules (like runtime tests), code is generated to check the result at runtime.
3. Code for reporting (and evaluation, in the dynamic case) of rules is injected at the beginning of `main`, to run as the first action of the compiled code before anything else.
贡献指南
调研方向
首先定位 requirements checker 和单独的 CodeWorld build step,然后阅读当前 static rules 的评估方式。当 checker 成为一个 GHC source plugin,能够在编译时处理 static rules、在生成的代码中处理 dynamic runtime tests,并在 main 执行其他操作之前进行 reporting 时,所提出的工作即告完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- haskell
- 领域
- compilers, testing-qa
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 25/100