Skip to content

Commit f53dd11

Browse files
authored
Merge pull request #1085 from davisjam/PrettyPrintTests
test: pretty test output
2 parents 56d1bcf + 97b7305 commit f53dd11

File tree

1 file changed

+34
-7
lines changed

1 file changed

+34
-7
lines changed

test/index.js

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,13 @@ function runTests(engine, options) {
110110
for (i = 0; i < len; i++) {
111111
filename = filenames[i];
112112
file = files[filename];
113-
success = testFile(engine, file, filename, i + 1);
114-
if (success) {
113+
114+
var before = process.hrtime();
115+
success = testFile(engine, file, filename, i + 1); // TODO Can't testFile throw?
116+
var elapsed = process.hrtime(before);
117+
var tookLessThanOneSec = (elapsed[0] === 0);
118+
119+
if (success && tookLessThanOneSec) {
115120
succeeded++;
116121
} else {
117122
failed++;
@@ -143,6 +148,10 @@ function testFile(engine, file, filename, index) {
143148
delete marked._original;
144149
}
145150

151+
console.log('#%d. Test %s.', index, filename);
152+
153+
var before = process.hrtime();
154+
146155
if (opts.length) {
147156
marked._original = marked.defaults;
148157
marked.defaults = {};
@@ -156,13 +165,24 @@ function testFile(engine, file, filename, index) {
156165
});
157166
}
158167

168+
var threw = false;
169+
var exceptionToThrow = null;
159170
try {
160171
text = engine(file.text).replace(/\s/g, '');
161172
html = file.html.replace(/\s/g, '');
162173
} catch (e) {
163-
console.log('%s failed.', filename);
164-
throw e;
174+
threw = true;
175+
exceptionToThrow = e;
165176
}
177+
var elapsed = process.hrtime(before);
178+
179+
var prettyElapsed = 'in ' + prettyElapsedTime(elapsed) + ' seconds';
180+
181+
// TODO Why do we throw this?
182+
if (threw) {
183+
console.log(' failed ' + prettyElapsed);
184+
throw exceptionToThrow;
185+
}
166186

167187
l = html.length;
168188

@@ -177,7 +197,7 @@ function testFile(engine, file, filename, index) {
177197
Math.min(j + 30, l));
178198

179199
console.log(
180-
'\n#%d. %s failed at offset %d. Near: "%s".\n',
200+
'\n#%d. %s failed at offset %d ' + prettyElapsed + '. Near: "%s".\n',
181201
index, filename, j, text);
182202

183203
console.log('\nGot:\n%s\n', text.trim() || text);
@@ -187,8 +207,8 @@ function testFile(engine, file, filename, index) {
187207
}
188208
}
189209

190-
console.log('#%d. %s completed.', index, filename);
191-
return true
210+
console.log(' passed ' + prettyElapsed);
211+
return true;
192212
}
193213

194214
/**
@@ -581,3 +601,10 @@ if (!module.parent) {
581601
exports.bench = bench;
582602
module.exports = exports;
583603
}
604+
605+
// returns time to millisecond granularity
606+
function prettyElapsedTime(hrtimeElapsed) {
607+
var seconds = hrtimeElapsed[0];
608+
var fracInMs = Math.round(hrtimeElapsed[1] / 1e6);
609+
return seconds + '.' + fracInMs;
610+
}

0 commit comments

Comments
 (0)