mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
infrastructure: keep a reference to execResult instead of only exit code to possibly print the stderr stream contents
This commit is contained in:
parent
a5c59d1e26
commit
ef2d61cff4
@ -794,12 +794,12 @@ var DefinitelyTyped;
|
||||
})();
|
||||
|
||||
/////////////////////////////
|
||||
// Used to get printable relative path to a file
|
||||
// Represents the results of a test file execution
|
||||
/////////////////////////////
|
||||
var File = (function () {
|
||||
function File(name, hasError) {
|
||||
function File(name, execResult) {
|
||||
this.name = name;
|
||||
this.hasError = hasError;
|
||||
this.execResult = execResult;
|
||||
}
|
||||
// From '/complete/path/to/file' to 'specfolder/specfile.d.ts'
|
||||
File.prototype.formatName = function (baseDir) {
|
||||
@ -813,6 +813,9 @@ var DefinitelyTyped;
|
||||
return File;
|
||||
})();
|
||||
|
||||
/////////////////////////////
|
||||
// Determine syntax errors in typings
|
||||
/////////////////////////////
|
||||
var SyntaxChecking = (function () {
|
||||
function SyntaxChecking(fileHandler, out) {
|
||||
this.fileHandler = fileHandler;
|
||||
@ -824,7 +827,7 @@ var DefinitelyTyped;
|
||||
var list = [];
|
||||
|
||||
for (var i = 0; i < this.files.length; i++) {
|
||||
if (this.files[i].hasError) {
|
||||
if (this.files[i].execResult.exitCode) {
|
||||
list.push(this.files[i]);
|
||||
}
|
||||
}
|
||||
@ -836,7 +839,7 @@ var DefinitelyTyped;
|
||||
var list = [];
|
||||
|
||||
for (var i = 0; i < this.files.length; i++) {
|
||||
if (!this.files[i].hasError) {
|
||||
if (!this.files[i].execResult.exitCode) {
|
||||
list.push(this.files[i]);
|
||||
}
|
||||
}
|
||||
@ -869,19 +872,16 @@ var DefinitelyTyped;
|
||||
SyntaxChecking.prototype.run = function (it, file, len, maxLen, callback) {
|
||||
var _this = this;
|
||||
if (!endsWith(file.toUpperCase(), '-TESTS.TS') && endsWith(file.toUpperCase(), '.TS') && file.indexOf('../_infrastructure') < 0) {
|
||||
new Test(file).run(function (o) {
|
||||
var failed = false;
|
||||
|
||||
if (o.exitCode === 1) {
|
||||
new Test(file).run(function (execResult) {
|
||||
if (execResult.exitCode === 1) {
|
||||
_this.out.printFailure();
|
||||
failed = true;
|
||||
len++;
|
||||
} else {
|
||||
_this.out.printSuccess();
|
||||
len++;
|
||||
}
|
||||
|
||||
_this.files.push(new File(file, failed));
|
||||
_this.files.push(new File(file, execResult));
|
||||
|
||||
if (len > maxLen) {
|
||||
len = 0;
|
||||
@ -928,6 +928,9 @@ var DefinitelyTyped;
|
||||
return SyntaxChecking;
|
||||
})();
|
||||
|
||||
/////////////////////////////
|
||||
// Determines errors in typing tests
|
||||
/////////////////////////////
|
||||
var TestEval = (function () {
|
||||
function TestEval(fileHandler, out) {
|
||||
this.fileHandler = fileHandler;
|
||||
@ -939,7 +942,7 @@ var DefinitelyTyped;
|
||||
var list = [];
|
||||
|
||||
for (var i = 0; i < this.files.length; i++) {
|
||||
if (this.files[i].hasError) {
|
||||
if (this.files[i].execResult.exitCode) {
|
||||
list.push(this.files[i]);
|
||||
}
|
||||
}
|
||||
@ -951,7 +954,7 @@ var DefinitelyTyped;
|
||||
var list = [];
|
||||
|
||||
for (var i = 0; i < this.files.length; i++) {
|
||||
if (!this.files[i].hasError) {
|
||||
if (!this.files[i].execResult.exitCode) {
|
||||
list.push(this.files[i]);
|
||||
}
|
||||
}
|
||||
@ -984,19 +987,16 @@ var DefinitelyTyped;
|
||||
TestEval.prototype.run = function (it, file, len, maxLen, callback) {
|
||||
var _this = this;
|
||||
if (endsWith(file.toUpperCase(), '-TESTS.TS')) {
|
||||
new Test(file).run(function (o) {
|
||||
var failed = false;
|
||||
|
||||
if (o.exitCode === 1) {
|
||||
new Test(file).run(function (execResult) {
|
||||
if (execResult.exitCode === 1) {
|
||||
_this.out.printFailure();
|
||||
failed = true;
|
||||
len++;
|
||||
} else {
|
||||
_this.out.printSuccess();
|
||||
len++;
|
||||
}
|
||||
|
||||
_this.files.push(new File(file, failed));
|
||||
_this.files.push(new File(file, execResult));
|
||||
|
||||
if (len > maxLen) {
|
||||
len = 0;
|
||||
@ -1090,13 +1090,17 @@ var DefinitelyTyped;
|
||||
timer.start();
|
||||
|
||||
this.out.printHeader();
|
||||
this.out.printSyntaxChecking();
|
||||
|
||||
// Run syntax tests
|
||||
this.out.printSyntaxChecking();
|
||||
this.sc.start(function (syntaxFailedCount, syntaxTotal) {
|
||||
// Now run typing tests
|
||||
_this.out.printTypingTests();
|
||||
_this.te.start(function (testFailedCount, testTotal) {
|
||||
var total = _this.printTypingsWithoutTest();
|
||||
// Get the tests without any typing and simultaneously print their names
|
||||
var totalTypingsWithoutTest = _this.printTypingsWithoutTest();
|
||||
|
||||
// End total timer and print final messages
|
||||
timer.end();
|
||||
|
||||
_this.out.printDiv();
|
||||
@ -1106,7 +1110,7 @@ var DefinitelyTyped;
|
||||
_this.out.printElapsedTime(timer.asString, timer.time);
|
||||
_this.out.printSyntaxErrorCount(syntaxFailedCount, syntaxTotal);
|
||||
_this.out.printTestErrorCount(testFailedCount, testTotal);
|
||||
_this.out.printWithoutTestCount(total, _this.fh.allTypings().length);
|
||||
_this.out.printWithoutTestCount(totalTypingsWithoutTest, _this.fh.allTypings().length);
|
||||
|
||||
_this.out.printDiv();
|
||||
|
||||
|
||||
@ -26,8 +26,12 @@ module DefinitelyTyped.TestManager {
|
||||
}
|
||||
}
|
||||
|
||||
interface TscCallback {
|
||||
(result: ExecResult): void;
|
||||
}
|
||||
|
||||
class Tsc {
|
||||
public static run(tsfile: string, callback: Function) {
|
||||
public static run(tsfile: string, callback: TscCallback) {
|
||||
var command = 'node ./_infrastructure/tests/typescript/tsc.js --module commonjs ';
|
||||
if (IO.fileExists(tsfile + '.tscparams')) {
|
||||
command += '@' + tsfile + '.tscparams';
|
||||
@ -43,7 +47,7 @@ module DefinitelyTyped.TestManager {
|
||||
class Test {
|
||||
constructor(public tsfile: string) { }
|
||||
|
||||
public run(callback: Function) {
|
||||
public run(callback: TscCallback) {
|
||||
Tsc.run(this.tsfile, callback);
|
||||
}
|
||||
}
|
||||
@ -239,11 +243,11 @@ module DefinitelyTyped.TestManager {
|
||||
}
|
||||
|
||||
/////////////////////////////
|
||||
// Used to get printable relative path to a file
|
||||
// Represents the results of a test file execution
|
||||
/////////////////////////////
|
||||
class File {
|
||||
|
||||
constructor(public name: string, public hasError: boolean) { }
|
||||
constructor(public name: string, public execResult: ExecResult) { }
|
||||
|
||||
// From '/complete/path/to/file' to 'specfolder/specfile.d.ts'
|
||||
public formatName(baseDir: string): string {
|
||||
@ -256,6 +260,10 @@ module DefinitelyTyped.TestManager {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////
|
||||
// Determine syntax errors in typings
|
||||
/////////////////////////////
|
||||
class SyntaxChecking {
|
||||
|
||||
private timer: Timer;
|
||||
@ -266,7 +274,7 @@ module DefinitelyTyped.TestManager {
|
||||
var list: File[] = [];
|
||||
|
||||
for (var i = 0; i < this.files.length; i++) {
|
||||
if (this.files[i].hasError) {
|
||||
if (this.files[i].execResult.exitCode) {
|
||||
list.push(this.files[i]);
|
||||
}
|
||||
}
|
||||
@ -278,7 +286,7 @@ module DefinitelyTyped.TestManager {
|
||||
var list: File[] = [];
|
||||
|
||||
for (var i = 0; i < this.files.length; i++) {
|
||||
if (!this.files[i].hasError) {
|
||||
if (!this.files[i].execResult.exitCode) {
|
||||
list.push(this.files[i]);
|
||||
}
|
||||
}
|
||||
@ -314,19 +322,17 @@ module DefinitelyTyped.TestManager {
|
||||
|
||||
private run(it, file, len, maxLen, callback: Function) {
|
||||
if (!endsWith(file.toUpperCase(), '-TESTS.TS') && endsWith(file.toUpperCase(), '.TS') && file.indexOf('../_infrastructure') < 0) {
|
||||
new Test(file).run((o) => {
|
||||
var failed = false;
|
||||
new Test(file).run((execResult) => {
|
||||
|
||||
if (o.exitCode === 1) {
|
||||
this.out.printFailure();
|
||||
failed = true;
|
||||
if (execResult.exitCode === 1) {
|
||||
this.out.printFailure();
|
||||
len++;
|
||||
} else {
|
||||
this.out.printSuccess();
|
||||
len++;
|
||||
}
|
||||
|
||||
this.files.push(new File(file, failed));
|
||||
this.files.push(new File(file, execResult));
|
||||
|
||||
if (len > maxLen) {
|
||||
len = 0;
|
||||
@ -372,6 +378,9 @@ module DefinitelyTyped.TestManager {
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////
|
||||
// Determines errors in typing tests
|
||||
/////////////////////////////
|
||||
class TestEval {
|
||||
|
||||
private timer: Timer;
|
||||
@ -382,7 +391,7 @@ module DefinitelyTyped.TestManager {
|
||||
var list: File[] = [];
|
||||
|
||||
for (var i = 0; i < this.files.length; i++) {
|
||||
if (this.files[i].hasError) {
|
||||
if (this.files[i].execResult.exitCode) {
|
||||
list.push(this.files[i]);
|
||||
}
|
||||
}
|
||||
@ -394,7 +403,7 @@ module DefinitelyTyped.TestManager {
|
||||
var list: File[] = [];
|
||||
|
||||
for (var i = 0; i < this.files.length; i++) {
|
||||
if (!this.files[i].hasError) {
|
||||
if (!this.files[i].execResult.exitCode) {
|
||||
list.push(this.files[i]);
|
||||
}
|
||||
}
|
||||
@ -430,19 +439,17 @@ module DefinitelyTyped.TestManager {
|
||||
|
||||
private run(it, file, len, maxLen, callback: Function) {
|
||||
if (endsWith(file.toUpperCase(), '-TESTS.TS')) {
|
||||
new Test(file).run((o) => {
|
||||
var failed = false;
|
||||
new Test(file).run((execResult) => {
|
||||
|
||||
if (o.exitCode === 1) {
|
||||
if (execResult.exitCode === 1) {
|
||||
this.out.printFailure();
|
||||
failed = true;
|
||||
len++;
|
||||
} else {
|
||||
this.out.printSuccess();
|
||||
len++;
|
||||
}
|
||||
|
||||
this.files.push(new File(file, failed));
|
||||
this.files.push(new File(file, execResult));
|
||||
|
||||
if (len > maxLen) {
|
||||
len = 0;
|
||||
@ -543,13 +550,19 @@ module DefinitelyTyped.TestManager {
|
||||
timer.start();
|
||||
|
||||
this.out.printHeader();
|
||||
|
||||
// Run syntax tests
|
||||
this.out.printSyntaxChecking();
|
||||
|
||||
this.sc.start((syntaxFailedCount, syntaxTotal) => {
|
||||
this.out.printTypingTests();
|
||||
this.te.start((testFailedCount, testTotal) => {
|
||||
var total = this.printTypingsWithoutTest();
|
||||
|
||||
// Now run typing tests
|
||||
this.out.printTypingTests();
|
||||
this.te.start((testFailedCount, testTotal) => {
|
||||
|
||||
// Get the tests without any typing and simultaneously print their names
|
||||
var totalTypingsWithoutTest = this.printTypingsWithoutTest();
|
||||
|
||||
// End total timer and print final messages
|
||||
timer.end();
|
||||
|
||||
this.out.printDiv();
|
||||
@ -559,7 +572,7 @@ module DefinitelyTyped.TestManager {
|
||||
this.out.printElapsedTime(timer.asString, timer.time);
|
||||
this.out.printSyntaxErrorCount(syntaxFailedCount, syntaxTotal);
|
||||
this.out.printTestErrorCount(testFailedCount, testTotal);
|
||||
this.out.printWithoutTestCount(total, this.fh.allTypings().length);
|
||||
this.out.printWithoutTestCount(totalTypingsWithoutTest, this.fh.allTypings().length);
|
||||
|
||||
this.out.printDiv();
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user