Add testing harness
This commit is contained in:
parent
f0876825f1
commit
55ab159a85
|
@ -121,7 +121,10 @@ Resources.replstrs = function(path)
|
||||||
}
|
}
|
||||||
|
|
||||||
var console = {
|
var console = {
|
||||||
print(msg, lvl) {
|
print(msg) { cmd(91, msg); },
|
||||||
|
say(msg) { console.print(msg + "\n"); },
|
||||||
|
|
||||||
|
pprint(msg, lvl) {
|
||||||
var lg;
|
var lg;
|
||||||
if (typeof msg === 'object') {
|
if (typeof msg === 'object') {
|
||||||
lg = JSON.stringify(msg, null, 2);
|
lg = JSON.stringify(msg, null, 2);
|
||||||
|
@ -142,34 +145,30 @@ var console = {
|
||||||
},
|
},
|
||||||
|
|
||||||
spam(msg) {
|
spam(msg) {
|
||||||
this.print(msg,0);
|
console.pprint(msg,0);
|
||||||
},
|
},
|
||||||
|
|
||||||
/* this always prints to stdout */
|
/* this always prints to stdout */
|
||||||
debug(msg) {
|
debug(msg) {
|
||||||
this.print(msg,1);
|
console.pprint(msg,1);
|
||||||
},
|
},
|
||||||
|
|
||||||
info(msg) {
|
info(msg) {
|
||||||
this.print(msg, 2);
|
console.pprint(msg, 2);
|
||||||
},
|
},
|
||||||
|
|
||||||
warn(msg) {
|
warn(msg) {
|
||||||
this.print(msg, 3);
|
console.pprint(msg, 3);
|
||||||
},
|
},
|
||||||
|
|
||||||
error(msg) {
|
error(msg) {
|
||||||
this.print(msg + "\n" + console.stackstr(3), 4);
|
console.pprint(msg + "\n" + console.stackstr(3), 4);
|
||||||
},
|
},
|
||||||
|
|
||||||
panic(msg) {
|
panic(msg) {
|
||||||
this.print(msg + "\n" + console.stackstr(1), 5);
|
console.pprint(msg + "\n" + console.stackstr(1), 5);
|
||||||
},
|
},
|
||||||
|
|
||||||
log(msg) {
|
|
||||||
if (typeof msg === 'object') msg = JSON.stringify(msg,null,1);
|
|
||||||
cmd(91, msg + '\n');
|
|
||||||
},
|
|
||||||
stackstr(skip=0) {
|
stackstr(skip=0) {
|
||||||
var err = new Error();
|
var err = new Error();
|
||||||
var stack = err.stack.split('\n');
|
var stack = err.stack.split('\n');
|
||||||
|
@ -181,8 +180,9 @@ var console = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
var say = console.log;
|
console.log = console.say;
|
||||||
say.doc = "Print to std out with an appended newline.";
|
var say = console.say;
|
||||||
|
var print = console.print;
|
||||||
|
|
||||||
console.doc = {
|
console.doc = {
|
||||||
level: "Set level to output logging to console.",
|
level: "Set level to output logging to console.",
|
||||||
|
@ -599,6 +599,10 @@ Cmdline.register_order("clean", function(argv) {
|
||||||
say("Cleaning not implemented.");
|
say("Cleaning not implemented.");
|
||||||
}, "Clean up a given object file.", "JSON ...");
|
}, "Clean up a given object file.", "JSON ...");
|
||||||
|
|
||||||
|
Cmdline.register_order("test", function(argv) {
|
||||||
|
use("scripts/test.js");
|
||||||
|
}, "Run tests.");
|
||||||
|
|
||||||
Cmdline.register_cmd("l", function(n) {
|
Cmdline.register_cmd("l", function(n) {
|
||||||
console.level = n;
|
console.level = n;
|
||||||
}, "Set log level.");
|
}, "Set log level.");
|
||||||
|
@ -607,6 +611,7 @@ return {
|
||||||
console,
|
console,
|
||||||
Resources,
|
Resources,
|
||||||
say,
|
say,
|
||||||
|
print,
|
||||||
Cmdline,
|
Cmdline,
|
||||||
cmd_args,
|
cmd_args,
|
||||||
steam
|
steam
|
||||||
|
|
31
scripts/test.js
Normal file
31
scripts/test.js
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
/* Tests for prosperon */
|
||||||
|
|
||||||
|
var tests = [];
|
||||||
|
var pass = 0;
|
||||||
|
var fail = 0;
|
||||||
|
|
||||||
|
var test = function(name, fn)
|
||||||
|
{
|
||||||
|
tests.push(function() {
|
||||||
|
print(`${pass+fail}/${tests.length}: ${name} ... `);
|
||||||
|
var result = fn();
|
||||||
|
if (result) print(`pass`);
|
||||||
|
else print(`fail`);
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
test("Pass test", _=>1);
|
||||||
|
test("Fail test", _=>0);
|
||||||
|
|
||||||
|
say(`Testing ${tests.length} tests.`);
|
||||||
|
for (var t of tests) {
|
||||||
|
if (t())
|
||||||
|
pass++;
|
||||||
|
else
|
||||||
|
fail++;
|
||||||
|
print("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
say(`Passed ${pass} tests and failed ${fail}`);
|
||||||
|
Game.quit();
|
Loading…
Reference in a new issue