diff options
author | Vasil Dimov <vd@FreeBSD.org> | 2020-08-31 13:16:13 +0200 |
---|---|---|
committer | Vasil Dimov <vd@FreeBSD.org> | 2020-09-17 14:45:17 +0200 |
commit | fe42411b4b07b99c591855f5f00ad45dfeec8e30 (patch) | |
tree | 9b87f884e89db127a6580319c18868a7b9f74858 /src/test/util | |
parent | d2bb681f96fb327b4c4d5b2b113692ca22fdffbf (diff) |
test: move HasReason so it can be reused
Move the class `HasReason` from `miner_tests.cpp` to
`setup_common.h` so that it can be reused by other tests.
Diffstat (limited to 'src/test/util')
-rw-r--r-- | src/test/util/setup_common.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/test/util/setup_common.h b/src/test/util/setup_common.h index 22f5d6d936..a09c8c122d 100644 --- a/src/test/util/setup_common.h +++ b/src/test/util/setup_common.h @@ -153,4 +153,20 @@ CBlock getBlock13b8a(); // define an implicit conversion here so that uint256 may be used directly in BOOST_CHECK_* std::ostream& operator<<(std::ostream& os, const uint256& num); +/** + * BOOST_CHECK_EXCEPTION predicates to check the specific validation error. + * Use as + * BOOST_CHECK_EXCEPTION(code that throws, exception type, HasReason("foo")); + */ +class HasReason { +public: + explicit HasReason(const std::string& reason) : m_reason(reason) {} + template <typename E> + bool operator() (const E& e) const { + return std::string(e.what()).find(m_reason) != std::string::npos; + }; +private: + const std::string m_reason; +}; + #endif |