UnitTest++ 在VC6中编译的patch
August 8th, 2007
UnitTest++是一个全功能的C++ unit test framework,与老牌的CppUnit相比轻便简单灵活。
但是下载以后发现,不能在VC6下编译。去网上搜搜,看到的大多数都是“throw this junk compiler”的意见,但是公司里用的还是VC6,没有办法换。所以只好自己写了一个patch。
其实问题到也不大,主要有三点:
- VC6
中的strcpy等字符串函数不再std namespace中 - VC6臭名昭著的for (int i)中i的作用域问题
- VC6不支持template function和non-template function的overloading
其中第三条较麻烦,换了一个traits类来解决,作到了接口不变。所有的166个test都运行通过。
这个patch的修改都用编译开关包了起来,并不会破坏其他编译器的编译,已经在VC2005, gcc 3.4.4(cygwin)和gcc 4.1.2(Ubuntu Feisty)中测试通过了。这个patch原本是针对UnitTest++ 1.3的,不过经测试在最新的svn revision 184上也能正常工作。
patch可以在这儿下到。
Recent Comments