aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Dashjr <luke-jr+git@utopios.org>2016-12-12 23:04:10 +0000
committerJonas Schnelli <dev@jonasschnelli.ch>2016-12-13 09:18:13 +0100
commit6a32c0f69de1d9caf1af26e192efbb80f7534fdd (patch)
tree7b8bddee7aab436b6b9ec558d5a8c2c55695485f
parent89c8d2c12c4ac71f2454b8d4a04ad2dc5acd6b76 (diff)
Qt/Test: Check handling of empty arguments in RPC debug console
-rw-r--r--src/qt/test/rpcnestedtests.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/qt/test/rpcnestedtests.cpp b/src/qt/test/rpcnestedtests.cpp
index 69757f9a93..0aeef04550 100644
--- a/src/qt/test/rpcnestedtests.cpp
+++ b/src/qt/test/rpcnestedtests.cpp
@@ -18,6 +18,19 @@
#include <boost/filesystem.hpp>
+static UniValue rpcNestedTest_rpc(const JSONRPCRequest& request)
+{
+ if (request.fHelp) {
+ return "help message";
+ }
+ return request.params.write(0, 0);
+}
+
+static const CRPCCommand vRPCCommands[] =
+{
+ { "test", "rpcNestedTest", &rpcNestedTest_rpc, true },
+};
+
void RPCNestedTests::rpcNestedTests()
{
UniValue jsonRPCError;
@@ -26,6 +39,7 @@ void RPCNestedTests::rpcNestedTests()
// could be moved to a more generic place when we add more tests on QT level
const CChainParams& chainparams = Params();
RegisterAllCoreRPCCommands(tableRPC);
+ tableRPC.appendCommand("rpcNestedTest", &vRPCCommands[0]);
ClearDatadirCache();
std::string path = QDir::tempPath().toStdString() + "/" + strprintf("test_bitcoin_qt_%lu_%i", (unsigned long)GetTime(), (int)(GetRand(100000)));
QDir dir(QString::fromStdString(path));
@@ -85,6 +99,23 @@ void RPCNestedTests::rpcNestedTests()
RPCConsole::RPCExecuteCommandLine(result, "getblock(getbestblockhash())[tx][0]");
QVERIFY(result == "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b");
+ RPCConsole::RPCExecuteCommandLine(result, "rpcNestedTest");
+ QVERIFY(result == "[]");
+ RPCConsole::RPCExecuteCommandLine(result, "rpcNestedTest ''");
+ QVERIFY(result == "[\"\"]");
+ RPCConsole::RPCExecuteCommandLine(result, "rpcNestedTest \"\"");
+ QVERIFY(result == "[\"\"]");
+ RPCConsole::RPCExecuteCommandLine(result, "rpcNestedTest '' abc");
+ QVERIFY(result == "[\"\",\"abc\"]");
+ RPCConsole::RPCExecuteCommandLine(result, "rpcNestedTest abc '' abc");
+ QVERIFY(result == "[\"abc\",\"\",\"abc\"]");
+ RPCConsole::RPCExecuteCommandLine(result, "rpcNestedTest abc abc");
+ QVERIFY(result == "[\"abc\",\"abc\"]");
+ RPCConsole::RPCExecuteCommandLine(result, "rpcNestedTest abc\t\tabc");
+ QVERIFY(result == "[\"abc\",\"abc\"]");
+ RPCConsole::RPCExecuteCommandLine(result, "rpcNestedTest abc,,abc");
+ QVERIFY(result == "[\"abc\",\"\",\"abc\"]");
+
delete pcoinsTip;
delete pcoinsdbview;
delete pblocktree;