作者liptonbin (我还存在耶)
看板C_and_CPP
标题[问题] 请问marco的 #号
时间Fri Nov 25 17:52:21 2016
请教一下
定义宣告如下
#define EXPECT_TRUE(condition) \
GTEST_TEST_BOOLEAN_(condition,
#condition, false, true, \
GTEST_NONFATAL_FAILURE_)
#define GTEST_NONFATAL_FAILURE_(message) \
GTEST_MESSAGE_(message, ::testing::TestPartResult::kNonFatalFailure)
#define GTEST_TEST_BOOLEAN_(expression, text, actual, expected, fail) \
GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
if (const ::testing::AssertionResult gtest_ar_ = \
::testing::AssertionResult(expression)) \
; \
else \
fail(::testing::internal::GetBoolAssertionFailureMessage(\
gtest_ar_, text, #actual,
#expected).c_str())
==============================================================
使用上的范例如下
EXPECT_TRUE(1) or EXPECT_TRUE(0) 判断成功或是失败
或
EXPECT_TRUE(system("echo 1 > /sys/class/gpio/gpio1021/value") == 0);
或
EXPECT_TRUE(!memcmp(buf, ref, sizeof(buf)));
我想问的是,上面的define的#,false,true,GTEST_NONFATAL_FAILURE_
这三个参数是要做什麽???
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.230.113.51
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1480067544.A.F51.html
※ 编辑: liptonbin (61.230.113.51), 11/25/2016 17:57:23
1F:推 Qbsuran: #define F(x) #x, F(ABC)编译变成"ABC" 11/25 17:58
2F:推 LPH66: 後三个参数名字都跟你说了: actual 是实际值 11/25 18:00
3F:→ LPH66: expected 是期待要有的值, fail 是失败时写错误讯息的函数 11/25 18:00
4F:→ LPH66: actual 跟 expected 都是用来建构错误讯息的 11/25 18:01
5F:→ LPH66: (可以看到在 fail(...) 里面它们前面也有 # 字) 11/25 18:01
6F:→ LPH66: 也就是这里写什麽错误讯息里就会照样出现什麽 11/25 18:02
7F:→ LPH66: #condition 类似用途, 只不过这里它会印出你的判断式 11/25 18:03