diff options
Diffstat (limited to 'third_party/libwebrtc/rtc_base/checks_unittest.cc')
-rw-r--r-- | third_party/libwebrtc/rtc_base/checks_unittest.cc | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/third_party/libwebrtc/rtc_base/checks_unittest.cc b/third_party/libwebrtc/rtc_base/checks_unittest.cc new file mode 100644 index 0000000000..95deba9f1c --- /dev/null +++ b/third_party/libwebrtc/rtc_base/checks_unittest.cc @@ -0,0 +1,73 @@ +/* + * Copyright 2019 The WebRTC Project Authors. All rights reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#include "rtc_base/checks.h" + +#include "test/gtest.h" + +TEST(ChecksTest, ExpressionNotEvaluatedWhenCheckPassing) { + int i = 0; + RTC_CHECK(true) << "i=" << ++i; + RTC_CHECK_EQ(i, 0) << "Previous check passed, but i was incremented!"; +} + +#if GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID) +TEST(ChecksDeathTest, Checks) { +#if RTC_CHECK_MSG_ENABLED + EXPECT_DEATH(RTC_FATAL() << "message", + "\n\n#\n" + "# Fatal error in: \\S+, line \\w+\n" + "# last system error: \\w+\n" + "# Check failed: FATAL\\(\\)\n" + "# message"); + + int a = 1, b = 2; + EXPECT_DEATH(RTC_CHECK_EQ(a, b) << 1 << 2u, + "\n\n#\n" + "# Fatal error in: \\S+, line \\w+\n" + "# last system error: \\w+\n" + "# Check failed: a == b \\(1 vs. 2\\)\n" + "# 12"); + RTC_CHECK_EQ(5, 5); + + RTC_CHECK(true) << "Shouldn't crash" << 1; + EXPECT_DEATH(RTC_CHECK(false) << "Hi there!", + "\n\n#\n" + "# Fatal error in: \\S+, line \\w+\n" + "# last system error: \\w+\n" + "# Check failed: false\n" + "# Hi there!"); +#else + EXPECT_DEATH(RTC_FATAL() << "message", + "\n\n#\n" + "# Fatal error in: \\S+, line \\w+\n" + "# last system error: \\w+\n" + "# Check failed.\n" + "# "); + + int a = 1, b = 2; + EXPECT_DEATH(RTC_CHECK_EQ(a, b) << 1 << 2u, + "\n\n#\n" + "# Fatal error in: \\S+, line \\w+\n" + "# last system error: \\w+\n" + "# Check failed.\n" + "# "); + RTC_CHECK_EQ(5, 5); + + RTC_CHECK(true) << "Shouldn't crash" << 1; + EXPECT_DEATH(RTC_CHECK(false) << "Hi there!", + "\n\n#\n" + "# Fatal error in: \\S+, line \\w+\n" + "# last system error: \\w+\n" + "# Check failed.\n" + "# "); +#endif // RTC_CHECK_MSG_ENABLED +} +#endif // GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID) |