Expose CRPCTable via bitcoinrpc.h for testing
This commit is contained in:
parent
9862229d4d
commit
e46704dd90
3 changed files with 41 additions and 33 deletions
|
@ -10,6 +10,7 @@
|
||||||
#include "net.h"
|
#include "net.h"
|
||||||
#include "init.h"
|
#include "init.h"
|
||||||
#include "ui_interface.h"
|
#include "ui_interface.h"
|
||||||
|
#include "bitcoinrpc.h"
|
||||||
|
|
||||||
#undef printf
|
#undef printf
|
||||||
#include <boost/asio.hpp>
|
#include <boost/asio.hpp>
|
||||||
|
@ -22,9 +23,6 @@
|
||||||
#include <boost/filesystem/fstream.hpp>
|
#include <boost/filesystem/fstream.hpp>
|
||||||
typedef boost::asio::ssl::stream<boost::asio::ip::tcp::socket> SSLStream;
|
typedef boost::asio::ssl::stream<boost::asio::ip::tcp::socket> SSLStream;
|
||||||
|
|
||||||
#include "json/json_spirit_reader_template.h"
|
|
||||||
#include "json/json_spirit_writer_template.h"
|
|
||||||
#include "json/json_spirit_utils.h"
|
|
||||||
#define printf OutputDebugStringF
|
#define printf OutputDebugStringF
|
||||||
// MinGW 3.4.5 gets "fatal error: had to relocate PCH" if the json headers are
|
// MinGW 3.4.5 gets "fatal error: had to relocate PCH" if the json headers are
|
||||||
// precompiled in headers.h. The problem might be when the pch file goes over
|
// precompiled in headers.h. The problem might be when the pch file goes over
|
||||||
|
@ -37,27 +35,6 @@ using namespace boost::asio;
|
||||||
using namespace json_spirit;
|
using namespace json_spirit;
|
||||||
|
|
||||||
void ThreadRPCServer2(void* parg);
|
void ThreadRPCServer2(void* parg);
|
||||||
typedef Value(*rpcfn_type)(const Array& params, bool fHelp);
|
|
||||||
|
|
||||||
class CRPCCommand
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
string name;
|
|
||||||
rpcfn_type actor;
|
|
||||||
bool okSafeMode;
|
|
||||||
};
|
|
||||||
|
|
||||||
class CRPCTable
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
map<string, const CRPCCommand*> mapCommands;
|
|
||||||
public:
|
|
||||||
CRPCTable();
|
|
||||||
const CRPCCommand* operator[](string name) const;
|
|
||||||
string help(string name) const;
|
|
||||||
};
|
|
||||||
|
|
||||||
const CRPCTable tableRPC;
|
|
||||||
|
|
||||||
static std::string strRPCUserColonPass;
|
static std::string strRPCUserColonPass;
|
||||||
|
|
||||||
|
@ -2028,7 +2005,7 @@ Value getblock(const Array& params, bool fHelp)
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
static CRPCCommand vRPCCommands[] =
|
static const CRPCCommand vRPCCommands[] =
|
||||||
{ // name function safe mode?
|
{ // name function safe mode?
|
||||||
// ------------------------ ----------------------- ----------
|
// ------------------------ ----------------------- ----------
|
||||||
{ "help", &help, true },
|
{ "help", &help, true },
|
||||||
|
@ -2084,7 +2061,7 @@ CRPCTable::CRPCTable()
|
||||||
unsigned int vcidx;
|
unsigned int vcidx;
|
||||||
for (vcidx = 0; vcidx < (sizeof(vRPCCommands) / sizeof(vRPCCommands[0])); vcidx++)
|
for (vcidx = 0; vcidx < (sizeof(vRPCCommands) / sizeof(vRPCCommands[0])); vcidx++)
|
||||||
{
|
{
|
||||||
CRPCCommand *pcmd;
|
const CRPCCommand *pcmd;
|
||||||
|
|
||||||
pcmd = &vRPCCommands[vcidx];
|
pcmd = &vRPCCommands[vcidx];
|
||||||
mapCommands[pcmd->name] = pcmd;
|
mapCommands[pcmd->name] = pcmd;
|
||||||
|
@ -2785,3 +2762,5 @@ int main(int argc, char *argv[])
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const CRPCTable tableRPC;
|
||||||
|
|
|
@ -3,5 +3,39 @@
|
||||||
// Distributed under the MIT/X11 software license, see the accompanying
|
// Distributed under the MIT/X11 software license, see the accompanying
|
||||||
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
|
#ifndef _BITCOINRPC_H_
|
||||||
|
#define _BITCOINRPC_H_ 1
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <map>
|
||||||
|
|
||||||
|
#include "json/json_spirit_reader_template.h"
|
||||||
|
#include "json/json_spirit_writer_template.h"
|
||||||
|
#include "json/json_spirit_utils.h"
|
||||||
|
|
||||||
void ThreadRPCServer(void* parg);
|
void ThreadRPCServer(void* parg);
|
||||||
int CommandLineRPC(int argc, char *argv[]);
|
int CommandLineRPC(int argc, char *argv[]);
|
||||||
|
|
||||||
|
typedef json_spirit::Value(*rpcfn_type)(const json_spirit::Array& params, bool fHelp);
|
||||||
|
|
||||||
|
class CRPCCommand
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
std::string name;
|
||||||
|
rpcfn_type actor;
|
||||||
|
bool okSafeMode;
|
||||||
|
};
|
||||||
|
|
||||||
|
class CRPCTable
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
std::map<std::string, const CRPCCommand*> mapCommands;
|
||||||
|
public:
|
||||||
|
CRPCTable();
|
||||||
|
const CRPCCommand* operator[](std::string name) const;
|
||||||
|
std::string help(std::string name) const;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern const CRPCTable tableRPC;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -3,16 +3,11 @@
|
||||||
|
|
||||||
#include "base58.h"
|
#include "base58.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "json/json_spirit_reader_template.h"
|
#include "bitcoinrpc.h"
|
||||||
#include "json/json_spirit_writer_template.h"
|
|
||||||
#include "json/json_spirit_utils.h"
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace json_spirit;
|
using namespace json_spirit;
|
||||||
|
|
||||||
typedef Value(*rpcfn_type)(const Array& params, bool fHelp);
|
|
||||||
extern map<string, rpcfn_type> mapCallTable;
|
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE(rpc_tests)
|
BOOST_AUTO_TEST_SUITE(rpc_tests)
|
||||||
|
|
||||||
static Array
|
static Array
|
||||||
|
@ -36,7 +31,7 @@ struct TestNetFixture
|
||||||
|
|
||||||
BOOST_FIXTURE_TEST_CASE(rpc_addmultisig, TestNetFixture)
|
BOOST_FIXTURE_TEST_CASE(rpc_addmultisig, TestNetFixture)
|
||||||
{
|
{
|
||||||
rpcfn_type addmultisig = mapCallTable["addmultisigaddress"];
|
rpcfn_type addmultisig = tableRPC["addmultisigaddress"]->actor;
|
||||||
|
|
||||||
// old, 65-byte-long:
|
// old, 65-byte-long:
|
||||||
const char* address1Hex = "0434e3e09f49ea168c5bbf53f877ff4206923858aab7c7e1df25bc263978107c95e35065a27ef6f1b27222db0ec97e0e895eaca603d3ee0d4c060ce3d8a00286c8";
|
const char* address1Hex = "0434e3e09f49ea168c5bbf53f877ff4206923858aab7c7e1df25bc263978107c95e35065a27ef6f1b27222db0ec97e0e895eaca603d3ee0d4c060ce3d8a00286c8";
|
||||||
|
|
Loading…
Reference in a new issue