aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/testing/unittest
diff options
context:
space:
mode:
authortkhanipov <tkhanipov@yandex-team.ru>2022-02-10 16:49:46 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:49:46 +0300
commit60a6df6d382906cd4ca6cd885920b3c20820170e (patch)
tree5d5cb817648f650d76cf1076100726fd9b8448e8 /library/cpp/testing/unittest
parent60c0dade397b9b2f9a22f5daa5b2ea5e433e6e40 (diff)
downloadydb-60a6df6d382906cd4ca6cd885920b3c20820170e.tar.gz
Restoring authorship annotation for <tkhanipov@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/testing/unittest')
-rw-r--r--library/cpp/testing/unittest/registar.h112
-rw-r--r--library/cpp/testing/unittest/registar_ut.cpp34
2 files changed, 73 insertions, 73 deletions
diff --git a/library/cpp/testing/unittest/registar.h b/library/cpp/testing/unittest/registar.h
index 743c3ff091..44517a0092 100644
--- a/library/cpp/testing/unittest/registar.h
+++ b/library/cpp/testing/unittest/registar.h
@@ -563,68 +563,68 @@ public: \
#define UNIT_CHECK_GENERATED_NO_EXCEPTION(A, E) UNIT_CHECK_GENERATED_NO_EXCEPTION_C(A, E, "and exception message is:\n" << CurrentExceptionMessage())
-// Same as UNIT_ASSERT_EXCEPTION_SATISFIES but prints additional string C when nothing was thrown
-#define UNIT_ASSERT_EXCEPTION_SATISFIES_C(A, E, pred, C) \
- do { \
- bool _thrown = false; \
- try { \
- (void)(A); \
- } catch (const ::NUnitTest::TAssertException&) { \
- throw; \
- } catch (const E& e) { \
- _thrown = true; \
- UNIT_ASSERT_C(pred(e), "Exception does not satisfy predicate '" \
- << #pred << "'"); \
- } catch (...) { \
- _thrown = true; \
- UNIT_FAIL_IMPL("exception assertion failed", \
- #A << " did not throw " << #E \
- << ", but threw other exception " \
- << "with message:\n" \
- << CurrentExceptionMessage()); \
- } \
- if (!_thrown) { \
- UNIT_FAIL_IMPL("exception assertion failed", \
- #A << " did not throw any exception" \
- << " (expected " << #E << ") " << C); \
- } \
+// Same as UNIT_ASSERT_EXCEPTION_SATISFIES but prints additional string C when nothing was thrown
+#define UNIT_ASSERT_EXCEPTION_SATISFIES_C(A, E, pred, C) \
+ do { \
+ bool _thrown = false; \
+ try { \
+ (void)(A); \
+ } catch (const ::NUnitTest::TAssertException&) { \
+ throw; \
+ } catch (const E& e) { \
+ _thrown = true; \
+ UNIT_ASSERT_C(pred(e), "Exception does not satisfy predicate '" \
+ << #pred << "'"); \
+ } catch (...) { \
+ _thrown = true; \
+ UNIT_FAIL_IMPL("exception assertion failed", \
+ #A << " did not throw " << #E \
+ << ", but threw other exception " \
+ << "with message:\n" \
+ << CurrentExceptionMessage()); \
+ } \
+ if (!_thrown) { \
+ UNIT_FAIL_IMPL("exception assertion failed", \
+ #A << " did not throw any exception" \
+ << " (expected " << #E << ") " << C); \
+ } \
} while (false)
-// Assert that a specific exception is thrown and satisfies predicate pred(e), where e is the exception instance.
-// Example:
-// UNIT_ASSERT_EXCEPTION_SATISFIES(MakeRequest(invalidData), TError,
-// [](const TError& e){ return e.Status == HTTP_BAD_REQUEST; })
-// This code validates that MakeRequest with invalidData throws TError with code 400.
-#define UNIT_ASSERT_EXCEPTION_SATISFIES(A, E, pred) \
- UNIT_ASSERT_EXCEPTION_SATISFIES_C(A, E, pred, "")
-
-// Same as UNIT_ASSERT_EXCEPTION_CONTAINS but prints additional string C when nothing was thrown
-#define UNIT_ASSERT_EXCEPTION_CONTAINS_C(A, E, substr, C) \
- do { \
- const TString _substr{substr}; \
- UNIT_ASSERT_EXCEPTION_SATISFIES_C(A, E, \
- [&_substr](const E&){ \
- if (!_substr.empty()) { \
- UNIT_ASSERT_C(CurrentExceptionMessage() \
- .Contains(_substr), \
- "Exception message does not contain \"" \
- << _substr << "\".\n" \
- << "Exception message: " \
- << CurrentExceptionMessage()); \
- } \
- return true; \
- }, \
- C); \
- } while (false)
-
-// Assert that a specific exception is thrown and CurrentExceptionMessage() contains substr
+// Assert that a specific exception is thrown and satisfies predicate pred(e), where e is the exception instance.
+// Example:
+// UNIT_ASSERT_EXCEPTION_SATISFIES(MakeRequest(invalidData), TError,
+// [](const TError& e){ return e.Status == HTTP_BAD_REQUEST; })
+// This code validates that MakeRequest with invalidData throws TError with code 400.
+#define UNIT_ASSERT_EXCEPTION_SATISFIES(A, E, pred) \
+ UNIT_ASSERT_EXCEPTION_SATISFIES_C(A, E, pred, "")
+
+// Same as UNIT_ASSERT_EXCEPTION_CONTAINS but prints additional string C when nothing was thrown
+#define UNIT_ASSERT_EXCEPTION_CONTAINS_C(A, E, substr, C) \
+ do { \
+ const TString _substr{substr}; \
+ UNIT_ASSERT_EXCEPTION_SATISFIES_C(A, E, \
+ [&_substr](const E&){ \
+ if (!_substr.empty()) { \
+ UNIT_ASSERT_C(CurrentExceptionMessage() \
+ .Contains(_substr), \
+ "Exception message does not contain \"" \
+ << _substr << "\".\n" \
+ << "Exception message: " \
+ << CurrentExceptionMessage()); \
+ } \
+ return true; \
+ }, \
+ C); \
+ } while (false)
+
+// Assert that a specific exception is thrown and CurrentExceptionMessage() contains substr
#define UNIT_ASSERT_EXCEPTION_CONTAINS(A, E, substr) \
UNIT_ASSERT_EXCEPTION_CONTAINS_C(A, E, substr, "")
-// Same as UNIT_ASSERT_EXCEPTION but prints additional string C when nothing was thrown
-#define UNIT_ASSERT_EXCEPTION_C(A, E, C) UNIT_ASSERT_EXCEPTION_SATISFIES_C(A, E, [](const E&){ return true; }, C)
+// Same as UNIT_ASSERT_EXCEPTION but prints additional string C when nothing was thrown
+#define UNIT_ASSERT_EXCEPTION_C(A, E, C) UNIT_ASSERT_EXCEPTION_SATISFIES_C(A, E, [](const E&){ return true; }, C)
-// Assert that a specific exception is thrown
+// Assert that a specific exception is thrown
#define UNIT_ASSERT_EXCEPTION(A, E) UNIT_ASSERT_EXCEPTION_C(A, E, "")
#define UNIT_ASSERT_NO_EXCEPTION_RESULT_C(A, C) \
diff --git a/library/cpp/testing/unittest/registar_ut.cpp b/library/cpp/testing/unittest/registar_ut.cpp
index 81827e7571..1f36d53abb 100644
--- a/library/cpp/testing/unittest/registar_ut.cpp
+++ b/library/cpp/testing/unittest/registar_ut.cpp
@@ -301,15 +301,15 @@ Y_UNIT_TEST_SUITE(TUnitTestMacroTest) {
UNIT_ASSERT_EXCEPTION_CONTAINS(Throw(), TExpectedException, substr);
}
- template <class TExpectedException, class P>
- void AssertExceptionSatisfies(const P& predicate) {
- UNIT_ASSERT_EXCEPTION_SATISFIES(Throw(), TExpectedException, predicate);
- }
-
- int GetValue() const {
- return 5; // just some value for predicate testing
- }
-
+ template <class TExpectedException, class P>
+ void AssertExceptionSatisfies(const P& predicate) {
+ UNIT_ASSERT_EXCEPTION_SATISFIES(Throw(), TExpectedException, predicate);
+ }
+
+ int GetValue() const {
+ return 5; // just some value for predicate testing
+ }
+
bool ThrowMe;
};
@@ -362,12 +362,12 @@ Y_UNIT_TEST_SUITE(TUnitTestMacroTest) {
UNIT_ASSERT_EXCEPTION_CONTAINS(TTestException("abc").Throw(), TTestException, "a");
}
-
- Y_UNIT_TEST(ExceptionSatisfies) {
- const auto goodPredicate = [](const TTestException& e) { return e.GetValue() == 5; };
- const auto badPredicate = [](const TTestException& e) { return e.GetValue() != 5; };
- UNIT_ASSERT_NO_EXCEPTION(TTestException().AssertExceptionSatisfies<TTestException>(goodPredicate));
- UNIT_ASSERT_TEST_FAILS(TTestException().AssertExceptionSatisfies<TTestException>(badPredicate));
- UNIT_ASSERT_TEST_FAILS(TTestException().AssertExceptionSatisfies<TOtherTestException>(goodPredicate));
- }
+
+ Y_UNIT_TEST(ExceptionSatisfies) {
+ const auto goodPredicate = [](const TTestException& e) { return e.GetValue() == 5; };
+ const auto badPredicate = [](const TTestException& e) { return e.GetValue() != 5; };
+ UNIT_ASSERT_NO_EXCEPTION(TTestException().AssertExceptionSatisfies<TTestException>(goodPredicate));
+ UNIT_ASSERT_TEST_FAILS(TTestException().AssertExceptionSatisfies<TTestException>(badPredicate));
+ UNIT_ASSERT_TEST_FAILS(TTestException().AssertExceptionSatisfies<TOtherTestException>(goodPredicate));
+ }
}