aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorW. J. van der Laan <laanwj@protonmail.com>2021-03-31 19:56:56 +0200
committerW. J. van der Laan <laanwj@protonmail.com>2021-03-31 20:17:39 +0200
commit602b038d433b8f35116c7149175bba191f690bb6 (patch)
tree28fd80b938f2f0c07a5619095ee4ede2215ad655 /src/test
parentb14462083f82aeaa9a376978f210db5538db296f (diff)
parent916ab0195d567fd0a9097045e73a6654c453adea (diff)
downloadbitcoin-602b038d433b8f35116c7149175bba191f690bb6.tar.xz
Merge #21366: refactor: replace util::Ref with std::any (C++17)
916ab0195d567fd0a9097045e73a6654c453adea remove unused class util::Ref and its unit test (Sebastian Falbesoner) 8dbb87a3932f81e23ba7afd865b9aeeb535f0c20 refactor: replace util::Ref by std::any (C++17) (Sebastian Falbesoner) 95cccf8a4b392959c1fd7ec0647e04eb13880865 util: introduce helper AnyPtr to access std::any instances (Sebastian Falbesoner) Pull request description: As described in `util/ref.h`: "_This implements a small subset of the functionality in C++17's std::any class, and **can be dropped when the project updates to C++17**_". For accessing the contained object of a `std::any` instance, a helper template function `AnyPtr` is introduced (thanks to ryanofsky). ACKs for top commit: hebasto: re-ACK 916ab0195d567fd0a9097045e73a6654c453adea, with command ryanofsky: Code review ACK 916ab0195d567fd0a9097045e73a6654c453adea. Changes since last review: rebase and replacing types with `auto`. I might have used `const auto*` and `auto*` instead of plain `auto` because I think the qualifiers are useful, but this is all good. Tree-SHA512: fe2c3e4f5726f8ad40c61128339bb24ad11d2c261f71f7b934b1efe3e3279df14046452b0d9b566917ef61d5c7e0fd96ccbf35ff810357e305710f5002c27d47
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ref_tests.cpp33
-rw-r--r--src/test/rpc_tests.cpp5
2 files changed, 3 insertions, 35 deletions
diff --git a/src/test/ref_tests.cpp b/src/test/ref_tests.cpp
deleted file mode 100644
index 0ec0799fbc..0000000000
--- a/src/test/ref_tests.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (c) 2020 The Bitcoin Core developers
-// Distributed under the MIT software license, see the accompanying
-// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-
-#include <util/ref.h>
-
-#include <boost/test/unit_test.hpp>
-
-BOOST_AUTO_TEST_SUITE(ref_tests)
-
-BOOST_AUTO_TEST_CASE(ref_test)
-{
- util::Ref ref;
- BOOST_CHECK(!ref.Has<int>());
- BOOST_CHECK_THROW(ref.Get<int>(), NonFatalCheckError);
- int value = 5;
- ref.Set(value);
- BOOST_CHECK(ref.Has<int>());
- BOOST_CHECK_EQUAL(ref.Get<int>(), 5);
- ++ref.Get<int>();
- BOOST_CHECK_EQUAL(ref.Get<int>(), 6);
- BOOST_CHECK_EQUAL(value, 6);
- ++value;
- BOOST_CHECK_EQUAL(value, 7);
- BOOST_CHECK_EQUAL(ref.Get<int>(), 7);
- BOOST_CHECK(!ref.Has<bool>());
- BOOST_CHECK_THROW(ref.Get<bool>(), NonFatalCheckError);
- ref.Clear();
- BOOST_CHECK(!ref.Has<int>());
- BOOST_CHECK_THROW(ref.Get<int>(), NonFatalCheckError);
-}
-
-BOOST_AUTO_TEST_SUITE_END()
diff --git a/src/test/rpc_tests.cpp b/src/test/rpc_tests.cpp
index 2e0fc7e48f..67e70b3bc3 100644
--- a/src/test/rpc_tests.cpp
+++ b/src/test/rpc_tests.cpp
@@ -10,9 +10,10 @@
#include <interfaces/chain.h>
#include <node/context.h>
#include <test/util/setup_common.h>
-#include <util/ref.h>
#include <util/time.h>
+#include <any>
+
#include <boost/algorithm/string.hpp>
#include <boost/test/unit_test.hpp>
@@ -32,7 +33,7 @@ UniValue RPCTestingSetup::CallRPC(std::string args)
boost::split(vArgs, args, boost::is_any_of(" \t"));
std::string strMethod = vArgs[0];
vArgs.erase(vArgs.begin());
- util::Ref context{m_node};
+ std::any context{&m_node};
JSONRPCRequest request(context);
request.strMethod = strMethod;
request.params = RPCConvertValues(strMethod, vArgs);