diff options
author | Benety Goh <benety@mongodb.com> | 2015-05-13 16:16:26 -0400 |
---|---|---|
committer | Benety Goh <benety@mongodb.com> | 2015-05-14 20:47:06 -0400 |
commit | f3d242c808ec6c1b7145dd3f084da438829552cb (patch) | |
tree | 0dd6e60dd8e247d4e64e3f5b2a17588747ce0247 | |
parent | 463d3343d559590d60cfd5c48ac98ad675d5390e (diff) | |
download | mongo-f3d242c808ec6c1b7145dd3f084da438829552cb.tar.gz |
SERVER-18016 added unit test assertion macro to check error code in exception
-rw-r--r-- | src/mongo/db/repl/task_runner_test.cpp | 10 | ||||
-rw-r--r-- | src/mongo/unittest/unittest.h | 9 |
2 files changed, 15 insertions, 4 deletions
diff --git a/src/mongo/db/repl/task_runner_test.cpp b/src/mongo/db/repl/task_runner_test.cpp index 38166cf706f..7de153bb227 100644 --- a/src/mongo/db/repl/task_runner_test.cpp +++ b/src/mongo/db/repl/task_runner_test.cpp @@ -45,12 +45,14 @@ namespace { TEST_F(TaskRunnerTest, InvalidConstruction) { // Null thread pool. - ASSERT_THROWS(TaskRunner(nullptr, []() -> OperationContext* { return nullptr; }), - UserException); + ASSERT_THROWS_CODE(TaskRunner(nullptr, []() -> OperationContext* { return nullptr; }), + UserException, + ErrorCodes::BadValue); // Null function for creating operation contexts. - ASSERT_THROWS(TaskRunner(&getThreadPool(), TaskRunner::CreateOperationContextFn()), - UserException); + ASSERT_THROWS_CODE(TaskRunner(&getThreadPool(), TaskRunner::CreateOperationContextFn()), + UserException, + ErrorCodes::BadValue); } TEST_F(TaskRunnerTest, GetDiagnosticString) { diff --git a/src/mongo/unittest/unittest.h b/src/mongo/unittest/unittest.h index b5f6f3eb850..e22f76c5f1d 100644 --- a/src/mongo/unittest/unittest.h +++ b/src/mongo/unittest/unittest.h @@ -135,6 +135,15 @@ ::mongo::stdx::placeholders::_1))) /** + * Behaves like ASSERT_THROWS, above, but also fails if calling getCode() on the thrown exception + * does not return an error code equal to EXPECTED_CODE. + */ +#define ASSERT_THROWS_CODE(STATEMENT, EXCEPTION_TYPE, EXPECTED_CODE) \ + ASSERT_THROWS_PRED(STATEMENT, \ + EXCEPTION_TYPE, \ + ([](const EXCEPTION_TYPE& ex) { return (EXPECTED_CODE) == ex.getCode(); })) + +/** * Behaves like ASSERT_THROWS, above, but also fails if PREDICATE(ex) for the throw exception, ex, * is false. */ |