Skip to content

Commit 439ee1e

Browse files
committed
Merge pull request #223 from Microsoft/linuxTestFixes
Linux test fixes
2 parents e742694 + 5d85421 commit 439ee1e

19 files changed

+600
-875
lines changed

src/harness/harness.ts

+12-5
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
/// <reference path='..\compiler\sys.ts' />
1919
/// <reference path='external\mocha.d.ts'/>
2020
/// <reference path='external\chai.d.ts'/>
21-
///<reference path='sourceMapRecorder.ts'/>
21+
/// <reference path='sourceMapRecorder.ts'/>
2222

2323
// this will work in the browser via browserify
2424
var _chai: typeof chai = require('chai');
@@ -598,7 +598,7 @@ module Harness {
598598
this.inputFiles.push(file);
599599
}
600600

601-
public compile(options?: ts.CompilerOptions) {
601+
public setCompilerOptions(options?: ts.CompilerOptions) {
602602
this.compileOptions = options || { noResolve: false };
603603
}
604604

@@ -624,7 +624,7 @@ module Harness {
624624
settingsCallback(null);
625625
}
626626

627-
this.settings.forEach(setting => {
627+
this.settings.forEach(setting => {
628628
switch (setting.flag.toLowerCase()) {
629629
// "filename", "comments", "declaration", "module", "nolib", "sourcemap", "target", "out", "outDir", "noimplicitany", "noresolve"
630630
case "module":
@@ -692,6 +692,10 @@ module Harness {
692692
case 'declaration':
693693
options.declaration = !!setting.value;
694694
break;
695+
case 'newline':
696+
case 'newlines':
697+
sys.newLine = setting.value;
698+
break;
695699

696700
case 'mapsourcefiles':
697701
case 'maproot':
@@ -753,6 +757,9 @@ module Harness {
753757
// Covert the source Map data into the baseline
754758
result.updateSourceMapRecord(program, sourceMapData);
755759
onComplete(result);
760+
761+
// reset what newline means in case the last test changed it
762+
sys.newLine = '\r\n';
756763
return options;
757764
}
758765
}
@@ -891,7 +898,7 @@ module Harness {
891898
var optionRegex = /^[\/]{2}\s*@(\w+)\s*:\s*(\S*)/gm; // multiple matches on multiple lines
892899

893900
// List of allowed metadata names
894-
var fileMetadataNames = ["filename", "comments", "declaration", "module", "nolib", "sourcemap", "target", "out", "outDir", "noimplicitany", "noresolve"];
901+
var fileMetadataNames = ["filename", "comments", "declaration", "module", "nolib", "sourcemap", "target", "out", "outDir", "noimplicitany", "noresolve", "newline", "newlines"];
895902

896903
function extractCompilerSettings(content: string): CompilerSetting[] {
897904

@@ -1119,7 +1126,7 @@ module Harness {
11191126
return filePath.indexOf('lib.d.ts') >= 0 || filePath.indexOf('lib.core.d.ts') >= 0;
11201127
}
11211128

1122-
if (Error) (<any>Error).stackTraceLimit = 100;
1129+
if (Error) (<any>Error).stackTraceLimit = 1;
11231130
}
11241131

11251132
// TODO: not sure why Utils.evalFile isn't working with this, eventually will concat it like old compiler instead of eval

src/harness/runner.ts

+2
Original file line numberDiff line numberDiff line change
@@ -104,4 +104,6 @@ if (runners.length === 0) {
104104
// runners.push(new GeneratedFourslashRunner());
105105
}
106106

107+
sys.newLine = '\r\n';
108+
107109
runTests(runners);

src/harness/rwcRunner.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ module RWC {
143143
harnessCompiler.addInputFile({ unitName: resolvedPath, content: content });
144144
});
145145

146-
harnessCompiler.compile();
146+
harnessCompiler.setCompilerOptions();
147147

148148
// Emit the results
149149
harnessCompiler.emitAll(emitterIOHost);

src/harness/unittestrunner.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class UnitTestRunner extends RunnerBase {
3737
return { unitName: test, content: Harness.IO.readFile(test) }
3838
});
3939
harnessCompiler.addInputFiles(toBeAdded);
40-
harnessCompiler.compile({ noResolve: true });
40+
harnessCompiler.setCompilerOptions({ noResolve: true });
4141

4242
var stdout = new Harness.Compiler.EmitterIOHost();
4343
var emitDiagnostics = harnessCompiler.emitAll(stdout);

tests/baselines/reference/contextualTyping.errors.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -234,5 +234,5 @@
234234
interface B extends A { }
235235
var x: B = { };
236236
~
237-
!!! Type '{}' is not assignable to type 'B':
238-
!!! Property 'x' is missing in type '{}'.
237+
!!! Type '{}' is not assignable to type 'B':\n Property 'x' is missing in type '{}'.
238+

tests/baselines/reference/contextualTyping.js

+3-193
Original file line numberDiff line numberDiff line change
@@ -228,198 +228,8 @@ Point.prototype = {
228228

229229
interface A { x: string; }
230230
interface B extends A { }
231-
var x: B = { };
231+
var x: B = { };
232+
232233

233234
//// [contextualTyping.js]
234-
var C1T5 = (function () {
235-
function C1T5() {
236-
this.foo = function (i) {
237-
return i;
238-
};
239-
}
240-
return C1T5;
241-
})();
242-
var C2T5;
243-
(function (C2T5) {
244-
C2T5.foo = function (i) {
245-
return i;
246-
};
247-
})(C2T5 || (C2T5 = {}));
248-
var c3t1 = (function (s) {
249-
return s;
250-
});
251-
var c3t2 = ({
252-
n: 1
253-
});
254-
var c3t3 = [];
255-
var c3t4 = function () {
256-
return ({});
257-
};
258-
var c3t5 = function (n) {
259-
return ({});
260-
};
261-
var c3t6 = function (n, s) {
262-
return ({});
263-
};
264-
var c3t7 = function (n) {
265-
return n;
266-
};
267-
var c3t8 = function (n) {
268-
return n;
269-
};
270-
var c3t9 = [[], []];
271-
var c3t10 = [({}), ({})];
272-
var c3t11 = [function (n, s) {
273-
return s;
274-
}];
275-
var c3t12 = {
276-
foo: ({})
277-
};
278-
var c3t13 = ({
279-
f: function (i, s) {
280-
return s;
281-
}
282-
});
283-
var c3t14 = ({
284-
a: []
285-
});
286-
var C4T5 = (function () {
287-
function C4T5() {
288-
this.foo = function (i, s) {
289-
return s;
290-
};
291-
}
292-
return C4T5;
293-
})();
294-
var C5T5;
295-
(function (C5T5) {
296-
C5T5.foo;
297-
C5T5.foo = function (i, s) {
298-
return s;
299-
};
300-
})(C5T5 || (C5T5 = {}));
301-
var c6t5;
302-
c6t5 = function (n) {
303-
return ({});
304-
};
305-
var c7t2;
306-
c7t2[0] = ({ n: 1 });
307-
var objc8 = ({});
308-
objc8.t1 = (function (s) {
309-
return s;
310-
});
311-
objc8.t2 = ({
312-
n: 1
313-
});
314-
objc8.t3 = [];
315-
objc8.t4 = function () {
316-
return ({});
317-
};
318-
objc8.t5 = function (n) {
319-
return ({});
320-
};
321-
objc8.t6 = function (n, s) {
322-
return ({});
323-
};
324-
objc8.t7 = function (n) {
325-
return n;
326-
};
327-
objc8.t8 = function (n) {
328-
return n;
329-
};
330-
objc8.t9 = [[], []];
331-
objc8.t10 = [({}), ({})];
332-
objc8.t11 = [function (n, s) {
333-
return s;
334-
}];
335-
objc8.t12 = {
336-
foo: ({})
337-
};
338-
objc8.t13 = ({
339-
f: function (i, s) {
340-
return s;
341-
}
342-
});
343-
objc8.t14 = ({
344-
a: []
345-
});
346-
function c9t5(f) {
347-
}
348-
;
349-
c9t5(function (n) {
350-
return ({});
351-
});
352-
var c10t5 = function () {
353-
return function (n) {
354-
return ({});
355-
};
356-
};
357-
var C11t5 = (function () {
358-
function C11t5(f) {
359-
}
360-
return C11t5;
361-
})();
362-
;
363-
var i = new C11t5(function (n) {
364-
return ({});
365-
});
366-
var c12t1 = (function (s) {
367-
return s;
368-
});
369-
var c12t2 = ({
370-
n: 1
371-
});
372-
var c12t3 = [];
373-
var c12t4 = function () {
374-
return ({});
375-
};
376-
var c12t5 = function (n) {
377-
return ({});
378-
};
379-
var c12t6 = function (n, s) {
380-
return ({});
381-
};
382-
var c12t7 = function (n) {
383-
return n;
384-
};
385-
var c12t8 = function (n) {
386-
return n;
387-
};
388-
var c12t9 = [[], []];
389-
var c12t10 = [({}), ({})];
390-
var c12t11 = [function (n, s) {
391-
return s;
392-
}];
393-
var c12t12 = {
394-
foo: ({})
395-
};
396-
var c12t13 = ({
397-
f: function (i, s) {
398-
return s;
399-
}
400-
});
401-
var c12t14 = ({
402-
a: []
403-
});
404-
function EF1(a, b) {
405-
return a + b;
406-
}
407-
var efv = EF1(1, 2);
408-
function Point(x, y) {
409-
this.x = x;
410-
this.y = y;
411-
return this;
412-
}
413-
Point.origin = new Point(0, 0);
414-
Point.prototype.add = function (dx, dy) {
415-
return new Point(this.x + dx, this.y + dy);
416-
};
417-
Point.prototype = {
418-
x: 0,
419-
y: 0,
420-
add: function (dx, dy) {
421-
return new Point(this.x + dx, this.y + dy);
422-
}
423-
};
424-
var x = {};
425-
//# sourceMappingURL=contextualTyping.js.map
235+
var C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map

0 commit comments

Comments
 (0)