Skip to content

Commit 5094f8d

Browse files
committed
Split off rpc_wallet_tests
Split wallet tests from other RPC tests. Now no #ifdef ENABLE_WALLET are needed anymore in either file.
1 parent 829c920 commit 5094f8d

File tree

3 files changed

+86
-72
lines changed

3 files changed

+86
-72
lines changed

src/test/Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ test_bitcoin_SOURCES = alert_tests.cpp \
3838
sighash_tests.cpp $(JSON_TEST_FILES) $(RAW_TEST_FILES)
3939

4040
if ENABLE_WALLET
41-
test_bitcoin_SOURCES += accounting_tests.cpp wallet_tests.cpp miner_tests.cpp
41+
test_bitcoin_SOURCES += accounting_tests.cpp wallet_tests.cpp miner_tests.cpp rpc_wallet_tests.cpp
4242
endif
4343

4444
nodist_test_bitcoin_SOURCES = $(BUILT_SOURCES)

src/test/rpc_tests.cpp

Lines changed: 3 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@
99
using namespace std;
1010
using namespace json_spirit;
1111

12-
BOOST_AUTO_TEST_SUITE(rpc_tests)
13-
14-
static Array
12+
Array
1513
createArgs(int nRequired, const char* address1=NULL, const char* address2=NULL)
1614
{
1715
Array result;
@@ -23,46 +21,7 @@ createArgs(int nRequired, const char* address1=NULL, const char* address2=NULL)
2321
return result;
2422
}
2523

26-
#ifdef ENABLE_WALLET
27-
BOOST_AUTO_TEST_CASE(rpc_addmultisig)
28-
{
29-
rpcfn_type addmultisig = tableRPC["addmultisigaddress"]->actor;
30-
31-
// old, 65-byte-long:
32-
const char address1Hex[] = "0434e3e09f49ea168c5bbf53f877ff4206923858aab7c7e1df25bc263978107c95e35065a27ef6f1b27222db0ec97e0e895eaca603d3ee0d4c060ce3d8a00286c8";
33-
// new, compressed:
34-
const char address2Hex[] = "0388c2037017c62240b6b72ac1a2a5f94da790596ebd06177c8572752922165cb4";
35-
36-
Value v;
37-
CBitcoinAddress address;
38-
BOOST_CHECK_NO_THROW(v = addmultisig(createArgs(1, address1Hex), false));
39-
address.SetString(v.get_str());
40-
BOOST_CHECK(address.IsValid() && address.IsScript());
41-
42-
BOOST_CHECK_NO_THROW(v = addmultisig(createArgs(1, address1Hex, address2Hex), false));
43-
address.SetString(v.get_str());
44-
BOOST_CHECK(address.IsValid() && address.IsScript());
45-
46-
BOOST_CHECK_NO_THROW(v = addmultisig(createArgs(2, address1Hex, address2Hex), false));
47-
address.SetString(v.get_str());
48-
BOOST_CHECK(address.IsValid() && address.IsScript());
49-
50-
BOOST_CHECK_THROW(addmultisig(createArgs(0), false), runtime_error);
51-
BOOST_CHECK_THROW(addmultisig(createArgs(1), false), runtime_error);
52-
BOOST_CHECK_THROW(addmultisig(createArgs(2, address1Hex), false), runtime_error);
53-
54-
BOOST_CHECK_THROW(addmultisig(createArgs(1, ""), false), runtime_error);
55-
BOOST_CHECK_THROW(addmultisig(createArgs(1, "NotAValidPubkey"), false), runtime_error);
56-
57-
string short1(address1Hex, address1Hex+sizeof(address1Hex)-2); // last byte missing
58-
BOOST_CHECK_THROW(addmultisig(createArgs(2, short1.c_str()), false), runtime_error);
59-
60-
string short2(address1Hex+1, address1Hex+sizeof(address1Hex)); // first byte missing
61-
BOOST_CHECK_THROW(addmultisig(createArgs(2, short2.c_str()), false), runtime_error);
62-
}
63-
#endif
64-
65-
static Value CallRPC(string args)
24+
Value CallRPC(string args)
6625
{
6726
vector<string> vArgs;
6827
boost::split(vArgs, args, boost::is_any_of(" \t"));
@@ -81,35 +40,8 @@ static Value CallRPC(string args)
8140
}
8241
}
8342

84-
#ifdef ENABLE_WALLET
85-
BOOST_AUTO_TEST_CASE(rpc_wallet)
86-
{
87-
// Test RPC calls for various wallet statistics
88-
Value r;
8943

90-
BOOST_CHECK_NO_THROW(CallRPC("listunspent"));
91-
BOOST_CHECK_THROW(CallRPC("listunspent string"), runtime_error);
92-
BOOST_CHECK_THROW(CallRPC("listunspent 0 string"), runtime_error);
93-
BOOST_CHECK_THROW(CallRPC("listunspent 0 1 not_array"), runtime_error);
94-
BOOST_CHECK_THROW(CallRPC("listunspent 0 1 [] extra"), runtime_error);
95-
BOOST_CHECK_NO_THROW(r=CallRPC("listunspent 0 1 []"));
96-
BOOST_CHECK(r.get_array().empty());
97-
98-
BOOST_CHECK_NO_THROW(CallRPC("listreceivedbyaddress"));
99-
BOOST_CHECK_NO_THROW(CallRPC("listreceivedbyaddress 0"));
100-
BOOST_CHECK_THROW(CallRPC("listreceivedbyaddress not_int"), runtime_error);
101-
BOOST_CHECK_THROW(CallRPC("listreceivedbyaddress 0 not_bool"), runtime_error);
102-
BOOST_CHECK_NO_THROW(CallRPC("listreceivedbyaddress 0 true"));
103-
BOOST_CHECK_THROW(CallRPC("listreceivedbyaddress 0 true extra"), runtime_error);
104-
105-
BOOST_CHECK_NO_THROW(CallRPC("listreceivedbyaccount"));
106-
BOOST_CHECK_NO_THROW(CallRPC("listreceivedbyaccount 0"));
107-
BOOST_CHECK_THROW(CallRPC("listreceivedbyaccount not_int"), runtime_error);
108-
BOOST_CHECK_THROW(CallRPC("listreceivedbyaccount 0 not_bool"), runtime_error);
109-
BOOST_CHECK_NO_THROW(CallRPC("listreceivedbyaccount 0 true"));
110-
BOOST_CHECK_THROW(CallRPC("listreceivedbyaccount 0 true extra"), runtime_error);
111-
}
112-
#endif
44+
BOOST_AUTO_TEST_SUITE(rpc_tests)
11345

11446
BOOST_AUTO_TEST_CASE(rpc_rawparams)
11547
{

src/test/rpc_wallet_tests.cpp

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
#include "rpcserver.h"
2+
#include "rpcclient.h"
3+
4+
#include "base58.h"
5+
6+
#include <boost/algorithm/string.hpp>
7+
#include <boost/test/unit_test.hpp>
8+
9+
using namespace std;
10+
using namespace json_spirit;
11+
12+
extern Array createArgs(int nRequired, const char* address1=NULL, const char* address2=NULL);
13+
extern Value CallRPC(string args);
14+
15+
BOOST_AUTO_TEST_SUITE(rpc_wallet_tests)
16+
17+
BOOST_AUTO_TEST_CASE(rpc_addmultisig)
18+
{
19+
rpcfn_type addmultisig = tableRPC["addmultisigaddress"]->actor;
20+
21+
// old, 65-byte-long:
22+
const char address1Hex[] = "0434e3e09f49ea168c5bbf53f877ff4206923858aab7c7e1df25bc263978107c95e35065a27ef6f1b27222db0ec97e0e895eaca603d3ee0d4c060ce3d8a00286c8";
23+
// new, compressed:
24+
const char address2Hex[] = "0388c2037017c62240b6b72ac1a2a5f94da790596ebd06177c8572752922165cb4";
25+
26+
Value v;
27+
CBitcoinAddress address;
28+
BOOST_CHECK_NO_THROW(v = addmultisig(createArgs(1, address1Hex), false));
29+
address.SetString(v.get_str());
30+
BOOST_CHECK(address.IsValid() && address.IsScript());
31+
32+
BOOST_CHECK_NO_THROW(v = addmultisig(createArgs(1, address1Hex, address2Hex), false));
33+
address.SetString(v.get_str());
34+
BOOST_CHECK(address.IsValid() && address.IsScript());
35+
36+
BOOST_CHECK_NO_THROW(v = addmultisig(createArgs(2, address1Hex, address2Hex), false));
37+
address.SetString(v.get_str());
38+
BOOST_CHECK(address.IsValid() && address.IsScript());
39+
40+
BOOST_CHECK_THROW(addmultisig(createArgs(0), false), runtime_error);
41+
BOOST_CHECK_THROW(addmultisig(createArgs(1), false), runtime_error);
42+
BOOST_CHECK_THROW(addmultisig(createArgs(2, address1Hex), false), runtime_error);
43+
44+
BOOST_CHECK_THROW(addmultisig(createArgs(1, ""), false), runtime_error);
45+
BOOST_CHECK_THROW(addmultisig(createArgs(1, "NotAValidPubkey"), false), runtime_error);
46+
47+
string short1(address1Hex, address1Hex+sizeof(address1Hex)-2); // last byte missing
48+
BOOST_CHECK_THROW(addmultisig(createArgs(2, short1.c_str()), false), runtime_error);
49+
50+
string short2(address1Hex+1, address1Hex+sizeof(address1Hex)); // first byte missing
51+
BOOST_CHECK_THROW(addmultisig(createArgs(2, short2.c_str()), false), runtime_error);
52+
}
53+
54+
BOOST_AUTO_TEST_CASE(rpc_wallet)
55+
{
56+
// Test RPC calls for various wallet statistics
57+
Value r;
58+
59+
BOOST_CHECK_NO_THROW(CallRPC("listunspent"));
60+
BOOST_CHECK_THROW(CallRPC("listunspent string"), runtime_error);
61+
BOOST_CHECK_THROW(CallRPC("listunspent 0 string"), runtime_error);
62+
BOOST_CHECK_THROW(CallRPC("listunspent 0 1 not_array"), runtime_error);
63+
BOOST_CHECK_THROW(CallRPC("listunspent 0 1 [] extra"), runtime_error);
64+
BOOST_CHECK_NO_THROW(r=CallRPC("listunspent 0 1 []"));
65+
BOOST_CHECK(r.get_array().empty());
66+
67+
BOOST_CHECK_NO_THROW(CallRPC("listreceivedbyaddress"));
68+
BOOST_CHECK_NO_THROW(CallRPC("listreceivedbyaddress 0"));
69+
BOOST_CHECK_THROW(CallRPC("listreceivedbyaddress not_int"), runtime_error);
70+
BOOST_CHECK_THROW(CallRPC("listreceivedbyaddress 0 not_bool"), runtime_error);
71+
BOOST_CHECK_NO_THROW(CallRPC("listreceivedbyaddress 0 true"));
72+
BOOST_CHECK_THROW(CallRPC("listreceivedbyaddress 0 true extra"), runtime_error);
73+
74+
BOOST_CHECK_NO_THROW(CallRPC("listreceivedbyaccount"));
75+
BOOST_CHECK_NO_THROW(CallRPC("listreceivedbyaccount 0"));
76+
BOOST_CHECK_THROW(CallRPC("listreceivedbyaccount not_int"), runtime_error);
77+
BOOST_CHECK_THROW(CallRPC("listreceivedbyaccount 0 not_bool"), runtime_error);
78+
BOOST_CHECK_NO_THROW(CallRPC("listreceivedbyaccount 0 true"));
79+
BOOST_CHECK_THROW(CallRPC("listreceivedbyaccount 0 true extra"), runtime_error);
80+
}
81+
82+
BOOST_AUTO_TEST_SUITE_END()

0 commit comments

Comments
 (0)