我正在开发一个长整数库作为我的 C++ 家庭作业,我们的老师提供了一个接口使用示例。这是该文件的一部分:
void test_conversions()
{
int ordinary = 42;
lint long_int(ordinary);
long_int = ordinary;
ordinary = static_cast<int>(long_int); // ok
std::string s("-15");
lint z(s);
z.to_string() == s; // this should be true
}
void failed_conversions_test()
{
int ordinary = 42;
std::string str = "-42";
lint x = 5;
ordinary = x; // must be compilation error!
x = str; // must be compilation error!
str = x; // must be compilation error!
}
我想在构建过程中测试这个文件的兼容性。如您所见,应该有四个测试:一个用于编译成功 ( test_conversions
),三个用于每个失败的failed_conversions_test
. int main()
我可以通过添加 stub并调用ADD_TEST
in轻松实现编译成功检查CMakeLists.txt
,但我如何告诉 CMake 编译剩余的三个测试并确保编译不成功?
我正在考虑添加诸如“运行执行所有操作的自定义脚本”之类的内容,但这非常依赖于编译器和平台,并且看起来不是好方法。
谢谢你。