Skip to content

Commit ff0670b

Browse files
committed
2 parents 6fef5a0 + 3191698 commit ff0670b

File tree

4 files changed

+25
-18
lines changed

4 files changed

+25
-18
lines changed

lib/runner.js

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ var errorLogRe = /^test262\/error (.*)$/;
157157
// errorStack: stack trace of error thrown (used for debugging purposes)
158158
Runner.prototype.validateResult = function(test, result) {
159159
var expectingStack = false;
160-
var isNegative = test.attrs.flags.negative || test.attrs.negative;
160+
var negative = test.attrs.negative;
161161
// parse result from log
162162
(result.log || []).forEach(function(log) {
163163
var errorMatch = log.match(errorLogRe);
@@ -203,17 +203,13 @@ Runner.prototype.validateResult = function(test, result) {
203203
test.errorMessage = result.errorMessage;
204204
test.errorStack = result.errorStack;
205205

206-
if(isNegative) {
207-
if(test.attrs.negative) {
208-
// failure can either match against error name, or an exact match
209-
// against error message (the latter case is thus far only to support
210-
// NotEarlyError thrown errors which have an error type of "Error").
211-
test.pass =
212-
!!result.errorName.match(new RegExp(test.attrs.negative)) ||
213-
result.errorMessage === test.attrs.negative;
214-
} else {
215-
test.pass = true
216-
}
206+
if(negative) {
207+
// failure can either match against error name, or an exact match
208+
// against error message (the latter case is thus far only to support
209+
// NotEarlyError thrown errors which have an error type of "Error").
210+
test.pass =
211+
!!result.errorName.match(new RegExp(negative)) ||
212+
result.errorMessage === negative;
217213
} else {
218214
test.pass = false
219215
}
@@ -223,8 +219,10 @@ Runner.prototype.validateResult = function(test, result) {
223219
test.pass = false;
224220
test.errorName = "Test262 Error";
225221
test.errorMessage = "Test did not run to completion ($DONE not called)";
226-
} else if(isNegative) {
222+
} else if(negative) {
227223
test.pass = false;
224+
test.errorName = "Error Expected";
225+
test.errorMessage = "'" + negative + "' is expected, but was not thrown";
228226
} else {
229227
test.pass = true;
230228
}

lib/simpleReporter.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
var through = require('through');
22
var readline = require('readline');
3-
var util = require('util');
43
var path = require('path');
54

65
var state = {
@@ -35,8 +34,10 @@ function actualString(test) {
3534
}
3635

3736
module.exports = through(function(data) {
38-
process.stdout.clearLine();
39-
process.stdout.cursorTo(0);
37+
if (process.stdout.clearLine && process.stdout.cursorTo) {
38+
process.stdout.clearLine();
39+
process.stdout.cursorTo(0);
40+
}
4041

4142
if(data.pass) {
4243
state.pass++;
@@ -50,8 +51,10 @@ module.exports = through(function(data) {
5051
" Got: " + actualString(data) + "\n\n");
5152
}
5253
}, function() {
53-
process.stdout.clearLine();
54-
process.stdout.cursorTo(0);
54+
if (process.stdout.clearLine && process.stdout.cursorTo) {
55+
process.stdout.clearLine();
56+
process.stdout.cursorTo(0);
57+
}
5558
console.log("Ran " + (state.pass + state.fail) + " tests")
5659
console.log(state.pass + " passed")
5760
console.log(state.fail + " failed")

test/collateral/negativeMessage.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/*---
2+
description: Should report the expected error indicated by the "negative" frontmatter
3+
negative: ExpectedError
4+
---*/

test/expected.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ var all = [
1515
{ file: 'test/collateral/error.js', strictMode: true, pass: false, errorMessage: 'failure message', errorName: 'Test262Error' },
1616
{ file: 'test/collateral/thrownError.js', strictMode: false, pass: false, errorMessage: 'failure message', errorName: 'Error', topOfStack: "foo" },
1717
{ file: 'test/collateral/thrownError.js', strictMode: true, pass: false, errorMessage: 'failure message', errorName: 'Error', topOfStack: "foo" },
18+
{ file: 'test/collateral/negativeMessage.js', strictMode: false, pass: false, errorMessage: "'ExpectedError' is expected, but was not thrown", errorName: 'Error Expected'},
19+
{ file: 'test/collateral/negativeMessage.js', strictMode: true, pass: false, errorMessage: "'ExpectedError' is expected, but was not thrown", errorName: 'Error Expected'},
1820
]
1921

2022
var seen = {};

0 commit comments

Comments
 (0)