Better error messages for out of range integral values

* This change passes detailed error messages from the JSON parser
  on the server side, back to the client for inclusion into the
  reply's error message.

* Errors originating from the server's inability to parse are
  reclassified from rpcINTERNAL to rpcINVALID_PARAMS.
This commit is contained in:
Howard Hinnant
2018-01-17 17:48:58 -05:00
committed by seelabs
parent 35cc341544
commit a8481e369d
4 changed files with 34 additions and 3 deletions

View File

@@ -121,6 +121,20 @@ class LedgerRPC_test : public beast::unit_test::suite
checkErrorValue(jrr, "invalidParams", "Invalid parameters.");
}
{
// Request a ledger with a very large (double) sequence.
auto const ret = env.rpc (
"json", "ledger", "{ \"ledger_index\" : 2e15 }");
BEAST_EXPECT (RPC::contains_error(ret));
BEAST_EXPECT (ret[jss::error_message] == "Invalid parameters.");
}
{
// Request a ledger with very large (integer) sequence.
auto const ret = env.rpc (
"json", "ledger", "{ \"ledger_index\" : 1000000000000000 }");
checkErrorValue(ret, "invalidParams", "Invalid parameters.");
}
}
void testLedgerCurrent()