gtest意外转换

时间:2015-12-09 04:31:53

标签: c++ googletest

我正在测试我的功能的正确操作

bool Core::IsMeta(void)
{
  return mProc->GetCode(mPC)->Meta;
}

使用说明

EXPECT_EQ(true,CC->IsMeta()); // The instruction pointed to is meta
EXPECT_EQ(false,CC1->IsMeta()); // The instruction pointed to is NOT meta

测试运行正常,但两个测试表现不同:“真实”和“真实”。案件编译确定,“假”'案件提出警告

  

包含来自的文件   / ..../build/gtest/src/gtest/include/gtest/gtest.h:1929:0,                    来自/ ... .cpp:1:   / ... .cpp:   在成员函数'虚拟空虚   ...... :: TestBody()':   / ... /build/gtest/src/gtest/include/gtest/internal/gtest-internal.h:133:55:   警告:将'false'转换为'char的参数1的指针类型   测试::内部:: IsNullLiteralHelper(测试::内部::秘密*)”   [-Wconversion空]        (sizeof(:: testing :: internal :: IsNullLiteralHelper(x))== 1)                                                          ^

为什么gtest想要转换' false'指针?为什么不'真的'? 我错过了什么吗?

2 个答案:

答案 0 :(得分:8)

对于布尔值,您需要使用EXPECT_TRUE()EXPECT_FALSE()而不是EXPECT_EQ

答案 1 :(得分:0)

问题不在于gtest,它实际上是here所述的gcc错误。