Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Google测试中匹配行尾';s ASSERT_DEATH regex_C++_Regex_Googletest - Fatal编程技术网

C++ 在Google测试中匹配行尾';s ASSERT_DEATH regex

C++ 在Google测试中匹配行尾';s ASSERT_DEATH regex,c++,regex,googletest,C++,Regex,Googletest,使用Google Test对断言包装器进行单元测试,该包装器可以选择在错误消息中包含\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu文件和行信息 void My_Assert (bool test) { #if USE_FILE_MACRO std::cerr << "fatal error: false in file __FILE__ at line __LINE__\n" #else s

使用Google Test对断言包装器进行单元测试,该包装器可以选择在错误消息中包含
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu文件和
行信息

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"); 
}

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

似乎您需要在
false
之后解释换行符,请使用
false\n


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

不幸的是,没有提供足够的信息。1.提供一个2。提供有关目标平台和使用的编译器版本的详细信息。请改进你的问题!顺便说一句,进程崩溃时退出值是否在第一位非零?@πάνταῥεῖ 用更多信息更新了问题。正在测试的函数(My_Assert)不会崩溃-只需登录到stderr并抛出异常。
Assert_DEATH()
期望您的程序在实际检查正则表达式之前以非零退出代码第一位退出。你可能用错了。正则表达式在哪里?@πάνταῥεῖ - +1到“可能用错了”,但我真的不知道如何正确使用它。我在ASSERT_DEATH表达式的捕获中得到了出口(1),因此在运行测试时它肯定会崩溃(子进程)。
ASSERT_DEATH( try {My_Assert (false);} catch (...){exit(1);}, "fatal error: false" );