gpt4 book ai didi

c++ - 匹配 Google Test 的 ASSERT_DEATH 正则表达式中的行尾

转载 作者:行者123 更新时间:2023-11-30 05:24:09 29 4
gpt4 key购买 nike

使用 Google Test 对断言包装器进行单元测试,可以选择在错误消息中包含 __FILE____LINE__ 信息。

void My_Assert (bool test)
{
#if USE_FILE_MACRO
std::cerr << "fatal error: false in file __FILE__ at line __LINE__\n"
#else
std::cerr << "fatal error: false\n"
#endif
throw std::runtime_error ("Fatal error");
}

我想确保此测试不包括文件和行,,所以我只希望 ASSERT_DEATH 匹配“fatal error: false”,而不是“ fatal error :文件 my_file.cpp 第 42 行中的 false”。这就是我要开始的:

ASSERT_DEATH( try {My_Assert (false);} catch (...){exit(1);}, "fatal error: false" );

我尝试添加一个美元符号来匹配行尾,但这与“ fatal error :false”不匹配。我尝试了 \s[:space:] 的不同变体,但没有成功。我可能误解了文档,美元符号与 gtest 正则表达式中的行尾不匹配:我无法判断 advanced guide here 中的语句是否“匹配字符串的结尾(而不是每一行的结尾)”仅适用于 Windows 正则表达式或所有系统。我正在使用 LLVM 版本 7.3.0 (clang-703.0.31) 为 OSX 编译。

最佳答案

看来你需要在false之后考虑换行符,使用false\n

如果您需要在行和字符串的末尾匹配 false,请使用 ($|\n)

关于c++ - 匹配 Google Test 的 ASSERT_DEATH 正则表达式中的行尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38794538/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com