diff --git a/test/error-reporting-test.coffee b/test/error-reporting-test.coffee deleted file mode 100644 index 8388ccfa7ec..00000000000 --- a/test/error-reporting-test.coffee +++ /dev/null @@ -1,137 +0,0 @@ -################################### REQUIRES ################################### - -testutils = require './testutils' -child_process = require 'child_process' -assert = require 'assert' - -#################################### CONFIG #################################### - -config = testutils.init_config() -rippled_path = config.default_server_config.rippled_path - -DEBUG = 0 - -setupFunc = suiteSetup # setup -teardownFunc = suiteTeardown # teardown - -#################################### HELPERS ################################### - -pretty_json = (value) -> - JSON.stringify value, undefined, 2 - -##################################### MAIN ##################################### - -define_cmd_line_test_factory = (server) -> - # A helper for running rippled `from the command line` - do_run_command = (args) => - base_options = - env: process.env - # We just want the stdout which will have the rpc responses in json, - # the stderr stream - stdio: ['ignore', 'pipe', 'ignore'] - # Make sure we use the standalone server config... - cwd: server().serverPath() - - child = child_process.spawn(rippled_path, args, base_options) - return child - - # A higher level helper that transforms any object args into json before - # sending - run_cmd = -> - args = [] - for arg in arguments - if typeof arg == 'object' - arg = JSON.stringify arg - args.push arg - do_run_command args - - n = 0 - # Define a `test` that will run a rippled command line eg. - # $ ./build/rippled sign passphrase '{"TransactionType" : "Payment"}' - sign_test = (secret, tx_json, error, debug) -> - [error_message, code] = error - - test "Signing test (#{++n}): #{error_message} ", (done) -> - child = run_cmd 'sign', secret, tx_json - - child.once 'exit', -> - result = JSON.parse(child.stdout.read()) - console.log pretty_json(result) if DEBUG or debug? - result = result.result - - assert_equal = (actual, expected, result) -> - msg = "Expected `#{expected}` in\n #{pretty_json result}" - assert.equal actual, expected, msg - - assert_equal result.error_message, error_message, result - assert_equal result.error, code, result - done() - - return sign_test - -suite 'errorReporting', -> - # This gives `var server = null` semantics for coffee script, so can set it - # later inside a nested scoped - server = null - - # The FactoryFactoryFactorater ;) - sign_test = define_cmd_line_test_factory -> server - - # We need to setup a server running in standalone mode, so we can subsequently - # run `rippled $cmd $param_n $param_n+1 ... - setupFunc (done) -> - testutils.build_setup().call @, => - server = @.store.alpha.server - done() - - # Tear it down once all the tests have run - # suiteTeardown (done) -> - teardownFunc (done) -> - console.log "suiteTeardown" - testutils.build_teardown().call @, -> - done() - - sign_test 'passphrase', - {}, - ['Missing field \'tx_json.TransactionType\'.', 'invalidParams'] - - sign_test 'passphrase', - {TransactionType: "Payment"}, - ['Missing field \'tx_json.Account\'.', 'srcActMissing'] - - sign_test 'passphrase', - { - TransactionType: "Payment", - # Using an account that doesn't exist in standalone server - # ledger - Account: "rMTzGg7nPPEMJthjgEBfiPZGoAM7MEVa1r" - }, - ['Source account not found.', 'srcActNotFound'] - - sign_test 'passphrase', - { - TransactionType: "Payment", - # Use the root account which WOULD exist - Account: "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" - Amount: "1" - }, - ["Missing field 'tx_json.Destination'.", 'invalidParams'] - - sign_test 'passphrase', - { - TransactionType: "Payment", - Account: "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" - Destination: "rMTzGg7nPPEMJthjgEBfiPZGoAM7MEVa1r" - Amount: "1" - }, - ['Secret does not match account.', 'badSecret'] - - sign_test 'masterpassphrase', - { - TransactionType: "Payment", - Account: "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" - Destination: "rMTzGg7nPPEMJthjgEBfiPZGoAM7MEVa1r" - # We don't have an Amount, so we'd expect some error handling - # here (or earlier really ...) - }, - ['Missing field \'tx_json.Amount\'.', 'invalidParams'] \ No newline at end of file diff --git a/test/testutils.js b/test/testutils.js index f79015b9a90..db3eee8fa5b 100644 --- a/test/testutils.js +++ b/test/testutils.js @@ -525,13 +525,10 @@ exports.verify_offer_not_found = verify_offer_not_found; exports.verify_owner_count = verify_owner_count; exports.verify_owner_counts = verify_owner_counts; -// ND: perhaps `exit` is more suitable, else when using suite(Setup|Teardown) -// with build_setup we could hang. -process.on('exit', function() { -// process.on('uncaughtException', function() { +process.on('uncaughtException', function() { Object.keys(server).forEach(function(host) { server[host].stop(); }); }); -// vim:sw=2:sts=2:ts=8:et \ No newline at end of file +// vim:sw=2:sts=2:ts=8:et