mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-20 19:15:54 +00:00
UT: Share setUp and tearDown code.
This commit is contained in:
@@ -7,10 +7,12 @@ var path = require("path");
|
||||
// Where to find the binary.
|
||||
exports.rippled = path.join(process.cwd(), "rippled");
|
||||
|
||||
exports.server_default = "alpha";
|
||||
|
||||
// Configuration for servers.
|
||||
exports.servers = {
|
||||
// A local test server.
|
||||
'alpha' : {
|
||||
"alpha" : {
|
||||
'trusted' : true,
|
||||
// "peer_ip" : "0.0.0.0",
|
||||
// "peer_port" : 51235,
|
||||
@@ -26,39 +28,39 @@ exports.servers = {
|
||||
// Configuration for test accounts.
|
||||
exports.accounts = {
|
||||
// Users
|
||||
'alice' : {
|
||||
'account' : 'rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn',
|
||||
'secret' : 'alice',
|
||||
"alice" : {
|
||||
'account' : "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn",
|
||||
'secret' : "alice",
|
||||
},
|
||||
'bob' : {
|
||||
'account' : 'rPMh7Pi9ct699iZUTWaytJUoHcJ7cgyziK',
|
||||
'secret' : 'bob',
|
||||
"bob" : {
|
||||
'account' : "rPMh7Pi9ct699iZUTWaytJUoHcJ7cgyziK",
|
||||
'secret' : "bob",
|
||||
},
|
||||
'carol' : {
|
||||
'account' : 'rH4KEcG9dEwGwpn6AyoWK9cZPLL4RLSmWW',
|
||||
'secret' : 'carol',
|
||||
"carol" : {
|
||||
'account' : "rH4KEcG9dEwGwpn6AyoWK9cZPLL4RLSmWW",
|
||||
'secret' : "carol",
|
||||
},
|
||||
|
||||
// Nexuses
|
||||
'bitstamp' : {
|
||||
'account' : 'r4jKmc2nQb5yEU6eycefiNKGHTU5NQJASx',
|
||||
'secret' : 'bitstamp',
|
||||
"bitstamp" : {
|
||||
'account' : "r4jKmc2nQb5yEU6eycefiNKGHTU5NQJASx",
|
||||
'secret' : "bitstamp",
|
||||
},
|
||||
'mtgox' : {
|
||||
'account' : 'rGihwhaqU8g7ahwAvTq6iX5rvsfcbgZw6v',
|
||||
'secret' : 'mtgox',
|
||||
"mtgox" : {
|
||||
'account' : "rGihwhaqU8g7ahwAvTq6iX5rvsfcbgZw6v",
|
||||
'secret' : "mtgox",
|
||||
},
|
||||
|
||||
// Merchants
|
||||
'amazon' : {
|
||||
'account' : 'rhheXqX7bDnXePJeMHhubDDvw2uUTtenPd',
|
||||
'secret' : 'amazon',
|
||||
"amazon" : {
|
||||
'account' : "rhheXqX7bDnXePJeMHhubDDvw2uUTtenPd",
|
||||
'secret' : "amazon",
|
||||
},
|
||||
|
||||
// Master account
|
||||
'root' : {
|
||||
'account' : 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh',
|
||||
'secret' : 'masterpassphrase',
|
||||
"root" : {
|
||||
'account' : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
|
||||
'secret' : "masterpassphrase",
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -6,34 +6,22 @@ var Amount = require("../js/amount.js").Amount;
|
||||
var Remote = require("../js/remote.js").Remote;
|
||||
var Server = require("./server.js").Server;
|
||||
|
||||
var testutils = require("./testutils.js");
|
||||
|
||||
buster.testRunner.timeout = 5000;
|
||||
|
||||
var alpha;
|
||||
|
||||
buster.testCase("Offer tests", {
|
||||
'setUp' :
|
||||
function (done) {
|
||||
server = Server.from_config("alpha").on('started', function () {
|
||||
alpha = Remote.from_config("alpha").once('ledger_closed', done) .connect();
|
||||
}).start();
|
||||
},
|
||||
|
||||
'tearDown' :
|
||||
function (done) {
|
||||
alpha
|
||||
.on('disconnected', function () {
|
||||
server.on('stopped', done).stop();
|
||||
})
|
||||
.connect(false);
|
||||
},
|
||||
'setUp' : testutils.test_setup,
|
||||
'tearDown' : testutils.test_teardown,
|
||||
|
||||
"offer create then cancel in one ledger" :
|
||||
function (done) {
|
||||
var self = this;
|
||||
var final_create;
|
||||
|
||||
async.waterfall([
|
||||
function (callback) {
|
||||
alpha.transaction()
|
||||
self.remote.transaction()
|
||||
.offer_create("root", "500", "100/USD/root")
|
||||
.on("proposed", function (m) {
|
||||
// console.log("PROPOSED: offer_create: %s", JSON.stringify(m));
|
||||
@@ -49,7 +37,7 @@ buster.testCase("Offer tests", {
|
||||
.submit();
|
||||
},
|
||||
function (m, callback) {
|
||||
alpha.transaction()
|
||||
self.remote.transaction()
|
||||
.offer_cancel("root", m.transaction.Sequence)
|
||||
.on("proposed", function (m) {
|
||||
// console.log("PROPOSED: offer_cancel: %s", JSON.stringify(m));
|
||||
@@ -65,7 +53,7 @@ buster.testCase("Offer tests", {
|
||||
.submit();
|
||||
},
|
||||
function (m, callback) {
|
||||
alpha
|
||||
self.remote
|
||||
.once("ledger_closed", function (ledger_closed, ledger_closed_index) {
|
||||
// console.log("LEDGER_CLOSED: %d: %s", ledger_closed_index, ledger_closed);
|
||||
})
|
||||
@@ -81,12 +69,13 @@ buster.testCase("Offer tests", {
|
||||
|
||||
"offer_create then ledger_accept then offer_cancel then ledger_accept." :
|
||||
function (done) {
|
||||
var self = this;
|
||||
var final_create;
|
||||
var offer_seq;
|
||||
|
||||
async.waterfall([
|
||||
function (callback) {
|
||||
alpha.transaction()
|
||||
self.remote.transaction()
|
||||
.offer_create("root", "500", "100/USD/root")
|
||||
.on("proposed", function (m) {
|
||||
// console.log("PROPOSED: offer_create: %s", JSON.stringify(m));
|
||||
@@ -108,7 +97,7 @@ buster.testCase("Offer tests", {
|
||||
},
|
||||
function (callback) {
|
||||
if (!final_create) {
|
||||
alpha
|
||||
self.remote
|
||||
.once("ledger_closed", function (ledger_closed, ledger_closed_index) {
|
||||
// console.log("LEDGER_CLOSED: %d: %s", ledger_closed_index, ledger_closed);
|
||||
|
||||
@@ -122,7 +111,7 @@ buster.testCase("Offer tests", {
|
||||
function (callback) {
|
||||
// console.log("CANCEL: offer_cancel: %d", offer_seq);
|
||||
|
||||
alpha.transaction()
|
||||
self.remote.transaction()
|
||||
.offer_cancel("root", offer_seq)
|
||||
.on("proposed", function (m) {
|
||||
// console.log("PROPOSED: offer_cancel: %s", JSON.stringify(m));
|
||||
@@ -140,7 +129,7 @@ buster.testCase("Offer tests", {
|
||||
},
|
||||
// See if ledger_accept will crash.
|
||||
function (callback) {
|
||||
alpha
|
||||
self.remote
|
||||
.once("ledger_closed", function (ledger_closed, ledger_closed_index) {
|
||||
// console.log("LEDGER_CLOSED: A: %d: %s", ledger_closed_index, ledger_closed);
|
||||
callback();
|
||||
@@ -148,7 +137,7 @@ buster.testCase("Offer tests", {
|
||||
.ledger_accept();
|
||||
},
|
||||
function (callback) {
|
||||
alpha
|
||||
self.remote
|
||||
.once("ledger_closed", function (ledger_closed, ledger_closed_index) {
|
||||
// console.log("LEDGER_CLOSED: B: %d: %s", ledger_closed_index, ledger_closed);
|
||||
callback();
|
||||
@@ -166,12 +155,13 @@ buster.testCase("Offer tests", {
|
||||
|
||||
"new user offer_create then ledger_accept then offer_cancel then ledger_accept." :
|
||||
function (done) {
|
||||
var self = this;
|
||||
var final_create;
|
||||
var offer_seq;
|
||||
|
||||
async.waterfall([
|
||||
function (callback) {
|
||||
alpha.transaction()
|
||||
self.remote.transaction()
|
||||
.payment('root', 'alice', "1000")
|
||||
.set_flags('CreateAccount')
|
||||
.on('proposed', function (m) {
|
||||
@@ -182,7 +172,7 @@ buster.testCase("Offer tests", {
|
||||
.submit()
|
||||
},
|
||||
function (callback) {
|
||||
alpha.transaction()
|
||||
self.remote.transaction()
|
||||
.offer_create("alice", "500", "100/USD/alice")
|
||||
.on("proposed", function (m) {
|
||||
// console.log("PROPOSED: offer_create: %s", JSON.stringify(m));
|
||||
@@ -204,7 +194,7 @@ buster.testCase("Offer tests", {
|
||||
},
|
||||
function (callback) {
|
||||
if (!final_create) {
|
||||
alpha
|
||||
self.remote
|
||||
.once("ledger_closed", function (ledger_closed, ledger_closed_index) {
|
||||
// console.log("LEDGER_CLOSED: %d: %s", ledger_closed_index, ledger_closed);
|
||||
|
||||
@@ -218,7 +208,7 @@ buster.testCase("Offer tests", {
|
||||
function (callback) {
|
||||
// console.log("CANCEL: offer_cancel: %d", offer_seq);
|
||||
|
||||
alpha.transaction()
|
||||
self.remote.transaction()
|
||||
.offer_cancel("alice", offer_seq)
|
||||
.on("proposed", function (m) {
|
||||
// console.log("PROPOSED: offer_cancel: %s", JSON.stringify(m));
|
||||
@@ -236,7 +226,7 @@ buster.testCase("Offer tests", {
|
||||
},
|
||||
// See if ledger_accept will crash.
|
||||
function (callback) {
|
||||
alpha
|
||||
self.remote
|
||||
.once("ledger_closed", function (ledger_closed, ledger_closed_index) {
|
||||
// console.log("LEDGER_CLOSED: A: %d: %s", ledger_closed_index, ledger_closed);
|
||||
callback();
|
||||
@@ -244,7 +234,7 @@ buster.testCase("Offer tests", {
|
||||
.ledger_accept();
|
||||
},
|
||||
function (callback) {
|
||||
alpha
|
||||
self.remote
|
||||
.once("ledger_closed", function (ledger_closed, ledger_closed_index) {
|
||||
// console.log("LEDGER_CLOSED: B: %d: %s", ledger_closed_index, ledger_closed);
|
||||
callback();
|
||||
@@ -260,11 +250,12 @@ buster.testCase("Offer tests", {
|
||||
|
||||
"offer cancel past and future sequence" :
|
||||
function (done) {
|
||||
var self = this;
|
||||
var final_create;
|
||||
|
||||
async.waterfall([
|
||||
function (callback) {
|
||||
alpha.transaction()
|
||||
self.remote.transaction()
|
||||
.payment('root', 'alice', Amount.from_json("10000"))
|
||||
.set_flags('CreateAccount')
|
||||
.on("proposed", function (m) {
|
||||
@@ -281,7 +272,7 @@ buster.testCase("Offer tests", {
|
||||
},
|
||||
// Past sequence but wrong
|
||||
function (m, callback) {
|
||||
alpha.transaction()
|
||||
self.remote.transaction()
|
||||
.offer_cancel("root", m.transaction.Sequence)
|
||||
.on("proposed", function (m) {
|
||||
// console.log("PROPOSED: offer_cancel past: %s", JSON.stringify(m));
|
||||
@@ -291,7 +282,7 @@ buster.testCase("Offer tests", {
|
||||
},
|
||||
// Same sequence
|
||||
function (m, callback) {
|
||||
alpha.transaction()
|
||||
self.remote.transaction()
|
||||
.offer_cancel("root", m.transaction.Sequence+1)
|
||||
.on("proposed", function (m) {
|
||||
// console.log("PROPOSED: offer_cancel same: %s", JSON.stringify(m));
|
||||
@@ -302,9 +293,9 @@ buster.testCase("Offer tests", {
|
||||
// Future sequence
|
||||
function (m, callback) {
|
||||
// After a malformed transaction, need to recover correct sequence.
|
||||
alpha.set_account_seq("root", alpha.account_seq("root")-1);
|
||||
self.remote.set_account_seq("root", self.remote.account_seq("root")-1);
|
||||
|
||||
alpha.transaction()
|
||||
self.remote.transaction()
|
||||
.offer_cancel("root", m.transaction.Sequence+2)
|
||||
.on("proposed", function (m) {
|
||||
// console.log("ERROR: offer_cancel future: %s", JSON.stringify(m));
|
||||
@@ -314,7 +305,7 @@ buster.testCase("Offer tests", {
|
||||
},
|
||||
// See if ledger_accept will crash.
|
||||
function (callback) {
|
||||
alpha
|
||||
self.remote
|
||||
.once("ledger_closed", function (ledger_closed, ledger_closed_index) {
|
||||
// console.log("LEDGER_CLOSED: A: %d: %s", ledger_closed_index, ledger_closed);
|
||||
callback();
|
||||
@@ -322,7 +313,7 @@ buster.testCase("Offer tests", {
|
||||
.ledger_accept();
|
||||
},
|
||||
function (callback) {
|
||||
alpha
|
||||
self.remote
|
||||
.once("ledger_closed", function (ledger_closed, ledger_closed_index) {
|
||||
// console.log("LEDGER_CLOSED: B: %d: %s", ledger_closed_index, ledger_closed);
|
||||
callback();
|
||||
|
||||
@@ -4,6 +4,8 @@ var Amount = require("../js/amount.js").Amount;
|
||||
var Remote = require("../js/remote.js").Remote;
|
||||
var Server = require("./server.js").Server;
|
||||
|
||||
var testutils = require("./testutils.js");
|
||||
|
||||
var fastTearDown = true;
|
||||
|
||||
// How long to wait for server to start.
|
||||
@@ -12,25 +14,12 @@ var serverDelay = 1500; // XXX Not implemented.
|
||||
buster.testRunner.timeout = 5000;
|
||||
|
||||
buster.testCase("Remote functions", {
|
||||
'setUp' :
|
||||
function (done) {
|
||||
server = Server.from_config("alpha").on('started', function () {
|
||||
alpha = Remote.from_config("alpha").once('ledger_closed', done) .connect();
|
||||
}).start();
|
||||
},
|
||||
|
||||
'tearDown' :
|
||||
function (done) {
|
||||
alpha
|
||||
.on('disconnected', function () {
|
||||
server.on('stopped', done).stop();
|
||||
})
|
||||
.connect(false);
|
||||
},
|
||||
'setUp' : testutils.test_setup,
|
||||
'tearDown' : testutils.test_teardown,
|
||||
|
||||
'request_ledger_current' :
|
||||
function (done) {
|
||||
alpha.request_ledger_current().on('success', function (m) {
|
||||
this.remote.request_ledger_current().on('success', function (m) {
|
||||
// console.log(m);
|
||||
|
||||
buster.assert.equals(m.ledger_current_index, 3);
|
||||
@@ -46,7 +35,7 @@ buster.testCase("Remote functions", {
|
||||
|
||||
'request_ledger_closed' :
|
||||
function (done) {
|
||||
alpha.request_ledger_closed().on('success', function (m) {
|
||||
this.remote.request_ledger_closed().on('success', function (m) {
|
||||
// console.log("result: %s", JSON.stringify(m));
|
||||
|
||||
buster.assert.equals(m.ledger_closed_index, 2);
|
||||
@@ -62,10 +51,12 @@ buster.testCase("Remote functions", {
|
||||
|
||||
'manual account_root success' :
|
||||
function (done) {
|
||||
alpha.request_ledger_closed().on('success', function (r) {
|
||||
var self = this;
|
||||
|
||||
this.remote.request_ledger_closed().on('success', function (r) {
|
||||
// console.log("result: %s", JSON.stringify(r));
|
||||
|
||||
alpha
|
||||
self.remote
|
||||
.request_ledger_entry('account_root')
|
||||
.ledger_closed(r.ledger_closed)
|
||||
.account_root("rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh")
|
||||
@@ -93,10 +84,12 @@ buster.testCase("Remote functions", {
|
||||
// XXX This should be detected locally.
|
||||
'account_root remote malformedAddress' :
|
||||
function (done) {
|
||||
alpha.request_ledger_closed().on('success', function (r) {
|
||||
var self = this;
|
||||
|
||||
this.remote.request_ledger_closed().on('success', function (r) {
|
||||
// console.log("result: %s", JSON.stringify(r));
|
||||
|
||||
alpha
|
||||
self.remote
|
||||
.request_ledger_entry('account_root')
|
||||
.ledger_closed(r.ledger_closed)
|
||||
.account_root("zHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh")
|
||||
@@ -124,10 +117,12 @@ buster.testCase("Remote functions", {
|
||||
|
||||
'account_root entryNotFound' :
|
||||
function (done) {
|
||||
alpha.request_ledger_closed().on('success', function (r) {
|
||||
var self = this;
|
||||
|
||||
this.remote.request_ledger_closed().on('success', function (r) {
|
||||
// console.log("result: %s", JSON.stringify(r));
|
||||
|
||||
alpha
|
||||
self.remote
|
||||
.request_ledger_entry('account_root')
|
||||
.ledger_closed(r.ledger_closed)
|
||||
.account_root("alice")
|
||||
@@ -154,10 +149,12 @@ buster.testCase("Remote functions", {
|
||||
|
||||
'ledger_entry index' :
|
||||
function (done) {
|
||||
alpha.request_ledger_closed().on('success', function (r) {
|
||||
var self = this;
|
||||
|
||||
this.remote.request_ledger_closed().on('success', function (r) {
|
||||
// console.log("result: %s", JSON.stringify(r));
|
||||
|
||||
alpha
|
||||
self.remote
|
||||
.request_ledger_entry('index')
|
||||
.ledger_closed(r.ledger_closed)
|
||||
.account_root("alice")
|
||||
@@ -185,7 +182,7 @@ buster.testCase("Remote functions", {
|
||||
|
||||
'create account' :
|
||||
function (done) {
|
||||
alpha.transaction()
|
||||
this.remote.transaction()
|
||||
.payment('root', 'alice', Amount.from_json("10000"))
|
||||
.set_flags('CreateAccount')
|
||||
.on('success', function (r) {
|
||||
@@ -204,10 +201,12 @@ buster.testCase("Remote functions", {
|
||||
|
||||
"create account final" :
|
||||
function (done) {
|
||||
var self = this;
|
||||
|
||||
var got_proposed;
|
||||
var got_success;
|
||||
|
||||
alpha.transaction()
|
||||
this.remote.transaction()
|
||||
.payment('root', 'alice', Amount.from_json("10000"))
|
||||
.set_flags('CreateAccount')
|
||||
.on('success', function (r) {
|
||||
@@ -234,7 +233,7 @@ buster.testCase("Remote functions", {
|
||||
|
||||
got_proposed = true;
|
||||
|
||||
alpha.ledger_accept();
|
||||
self.remote.ledger_accept();
|
||||
})
|
||||
.on('status', function (s) {
|
||||
// console.log("status: %s", JSON.stringify(s));
|
||||
|
||||
@@ -4,36 +4,24 @@ var Amount = require("../js/amount.js").Amount;
|
||||
var Remote = require("../js/remote.js").Remote;
|
||||
var Server = require("./server.js").Server;
|
||||
|
||||
var testutils = require("./testutils.js");
|
||||
|
||||
// How long to wait for server to start.
|
||||
var serverDelay = 1500;
|
||||
|
||||
buster.testRunner.timeout = 5000;
|
||||
|
||||
var alpha;
|
||||
|
||||
buster.testCase("Sending", {
|
||||
'setUp' :
|
||||
function (done) {
|
||||
server = Server.from_config("alpha").on('started', function () {
|
||||
alpha = Remote.from_config("alpha").once('ledger_closed', done) .connect();
|
||||
}).start();
|
||||
},
|
||||
|
||||
'tearDown' :
|
||||
function (done) {
|
||||
alpha
|
||||
.on('disconnected', function () {
|
||||
server.on('stopped', done).stop();
|
||||
})
|
||||
.connect(false);
|
||||
},
|
||||
'setUp' : testutils.test_setup,
|
||||
'tearDown' : testutils.test_teardown,
|
||||
|
||||
"send to non-existant account without create." :
|
||||
function (done) {
|
||||
var self = this;
|
||||
var ledgers = 20;
|
||||
var got_proposed;
|
||||
var ledgers = 20;
|
||||
|
||||
alpha.transaction()
|
||||
this.remote.transaction()
|
||||
.payment('root', 'alice', Amount.from_json("10000"))
|
||||
.on('success', function (r) {
|
||||
// Transaction sent.
|
||||
@@ -46,7 +34,7 @@ buster.testCase("Sending", {
|
||||
|
||||
ledgers -= 1;
|
||||
if (ledgers) {
|
||||
alpha.ledger_accept();
|
||||
self.remote.ledger_accept();
|
||||
}
|
||||
else {
|
||||
buster.assert(false, "Final never received.");
|
||||
@@ -68,7 +56,7 @@ buster.testCase("Sending", {
|
||||
|
||||
got_proposed = true;
|
||||
|
||||
alpha.ledger_accept(); // Move it along.
|
||||
self.remote.ledger_accept(); // Move it along.
|
||||
})
|
||||
.on('final', function (m) {
|
||||
// console.log("final: %s", JSON.stringify(m));
|
||||
|
||||
34
test/testutils.js
Normal file
34
test/testutils.js
Normal file
@@ -0,0 +1,34 @@
|
||||
var Remote = require("../js/remote.js").Remote;
|
||||
var Server = require("./server.js").Server;
|
||||
|
||||
var config = require("./config.js");
|
||||
|
||||
var test_setup = function (done, host) {
|
||||
var self = this;
|
||||
var host = host || config.server_default;
|
||||
|
||||
this.store = this.store || {};
|
||||
|
||||
var data = this.store[host] = this.store[host] || {};
|
||||
|
||||
data.server = Server.from_config(host).on('started', function () {
|
||||
self.remote = data.remote = Remote.from_config(host).once('ledger_closed', done).connect();
|
||||
}).start();
|
||||
};
|
||||
|
||||
var test_teardown = function (done, host) {
|
||||
var host = host || config.server_default;
|
||||
|
||||
var data = this.store[host];
|
||||
|
||||
data.remote
|
||||
.on('disconnected', function () {
|
||||
data.server.on('stopped', done).stop();
|
||||
})
|
||||
.connect(false);
|
||||
};
|
||||
|
||||
exports.test_setup = test_setup;
|
||||
exports.test_teardown = test_teardown;
|
||||
|
||||
// vim:sw=2:sts=2:ts=8
|
||||
Reference in New Issue
Block a user