目前我在一种打破PHP
的编译器上工作(只是为了好玩) - 代码为低级VM
的源代码。
由于类型系统和许多PHP
- 功能不合逻辑,我需要一些测试脚本来验证我的代码的行为与PHP
中的行为一样。
我开始使用PHP
- 来源(here)测试所有内容。但是很多测试不仅仅是语言特定的,它们还包含来自Web服务器处理的一些功能(POST数据等)是否还有其他测试来测试PHP
作为一种语言?如果脚本本身是用PHP
编写的,那就最好了。
答案 0 :(得分:1)
如果您确认您的语义与PHP的Zend实现中的行为相同,那么我建议构建一个自动化工具来从PHP本身的BNF生成语法。这样你就会有很多表达大部分语义的.php文件。请务必在生成的文件中包含大量跟踪代码。
然后通过Zend实现运行它,以确保获得相同的验证。使用一些损坏的代码生成以确保您也能捕获它。只有当你知道你的实施是正确的(有怪癖)时,你才能继续前进。
http://llvm.org/devmtg/2008-08/Lopes_PHP-JIT-InTwoDays.pdf可能有所帮助。看看为LLVM构建PHP JIT的人。可能会提供一些信息,说明它们如何针对现有实现测试语言语法和语义的有效性。
答案 1 :(得分:0)
我可能会误解你,但这可能是你在寻找什么? http://www.simpletest.org/
他们把它设计成像JUnit,但对于php,根据描述。