Compiler flag to specify line ending #1693 unit tests
This commit is contained in:
parent
bcdf5bba64
commit
2e0a55c4d3
|
@ -9,6 +9,9 @@ module ts {
|
|||
|
||||
/** The version of the TypeScript compiler release */
|
||||
export const version = "1.5.0";
|
||||
|
||||
const NEWLINE_CRLF = "\r\n";
|
||||
const NEWLINE_LF = "\n";
|
||||
|
||||
export function findConfigFile(searchPath: string): string {
|
||||
var fileName = "tsconfig.json";
|
||||
|
@ -91,9 +94,9 @@ module ts {
|
|||
}
|
||||
}
|
||||
|
||||
let newLine =
|
||||
options.newLine === NewLineKind.CarriageReturnLineFeed ? "\r\n" :
|
||||
options.newLine === NewLineKind.LineFeed ? "\n" :
|
||||
let newLine =
|
||||
options.newLine === NewLineKind.CarriageReturnLineFeed ? NEWLINE_CRLF :
|
||||
options.newLine === NewLineKind.LineFeed ? NEWLINE_LF :
|
||||
sys.newLine;
|
||||
|
||||
return {
|
||||
|
|
|
@ -805,6 +805,9 @@ module Harness {
|
|||
return result;
|
||||
}
|
||||
|
||||
const NEWLINE_CRLF = "\r\n";
|
||||
const NEWLINE_LF = "\n";
|
||||
|
||||
export var defaultLibFileName = 'lib.d.ts';
|
||||
export var defaultLibSourceFile = createSourceFileAndAssertInvariants(defaultLibFileName, IO.readFile(libFolder + 'lib.core.d.ts'), /*languageVersion*/ ts.ScriptTarget.Latest);
|
||||
export var defaultES6LibSourceFile = createSourceFileAndAssertInvariants(defaultLibFileName, IO.readFile(libFolder + 'lib.core.es6.d.ts'), /*languageVersion*/ ts.ScriptTarget.Latest);
|
||||
|
@ -822,7 +825,8 @@ module Harness {
|
|||
scriptTarget: ts.ScriptTarget,
|
||||
useCaseSensitiveFileNames: boolean,
|
||||
// the currentDirectory is needed for rwcRunner to passed in specified current directory to compiler host
|
||||
currentDirectory?: string): ts.CompilerHost {
|
||||
currentDirectory?: string,
|
||||
newLineKind?: ts.NewLineKind): ts.CompilerHost {
|
||||
|
||||
// Local get canonical file name function, that depends on passed in parameter for useCaseSensitiveFileNames
|
||||
function getCanonicalFileName(fileName: string): string {
|
||||
|
@ -841,6 +845,11 @@ module Harness {
|
|||
};
|
||||
inputFiles.forEach(register);
|
||||
|
||||
let newLine =
|
||||
newLineKind === ts.NewLineKind.CarriageReturnLineFeed ? NEWLINE_CRLF :
|
||||
newLineKind === ts.NewLineKind.LineFeed ? NEWLINE_LF :
|
||||
ts.sys.newLine;
|
||||
|
||||
return {
|
||||
getCurrentDirectory,
|
||||
getSourceFile: (fn, languageVersion) => {
|
||||
|
@ -869,7 +878,7 @@ module Harness {
|
|||
writeFile,
|
||||
getCanonicalFileName,
|
||||
useCaseSensitiveFileNames: () => useCaseSensitiveFileNames,
|
||||
getNewLine: () => ts.sys.newLine
|
||||
getNewLine: () => newLine
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -1042,7 +1051,16 @@ module Harness {
|
|||
|
||||
case 'newline':
|
||||
case 'newlines':
|
||||
newLine = setting.value;
|
||||
if (setting.value.toLowerCase() === 'crlf') {
|
||||
options.newLine = ts.NewLineKind.CarriageReturnLineFeed;
|
||||
} else if (setting.value.toLowerCase() === 'lf') {
|
||||
options.newLine = ts.NewLineKind.LineFeed;
|
||||
} else if (setting.value === '\\n') {
|
||||
// Handle old usage, e.g. contextualTyping.ts:// @newline: \n
|
||||
newLine = setting.value;
|
||||
} else {
|
||||
throw new Error('Unknown option for newLine: ' + setting.value);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'comments':
|
||||
|
@ -1103,7 +1121,7 @@ module Harness {
|
|||
var programFiles = inputFiles.concat(includeBuiltFiles).map(file => file.unitName);
|
||||
var program = ts.createProgram(programFiles, options, createCompilerHost(inputFiles.concat(includeBuiltFiles).concat(otherFiles),
|
||||
(fn, contents, writeByteOrderMark) => fileOutputs.push({ fileName: fn, code: contents, writeByteOrderMark: writeByteOrderMark }),
|
||||
options.target, useCaseSensitiveFileNames, currentDirectory));
|
||||
options.target, useCaseSensitiveFileNames, currentDirectory, options.newLine));
|
||||
|
||||
var emitResult = program.emit();
|
||||
|
||||
|
|
9
tests/baselines/reference/newLineFlagWithCRLF.js
Normal file
9
tests/baselines/reference/newLineFlagWithCRLF.js
Normal file
|
@ -0,0 +1,9 @@
|
|||
//// [newLineFlagWithCRLF.ts]
|
||||
var x=1;
|
||||
x=2;
|
||||
|
||||
|
||||
|
||||
//// [newLineFlagWithCRLF.js]
|
||||
var x = 1;
|
||||
x = 2;
|
8
tests/baselines/reference/newLineFlagWithCRLF.symbols
Normal file
8
tests/baselines/reference/newLineFlagWithCRLF.symbols
Normal file
|
@ -0,0 +1,8 @@
|
|||
=== tests/cases/compiler/newLineFlagWithCRLF.ts ===
|
||||
var x=1;
|
||||
>x : Symbol(x, Decl(newLineFlagWithCRLF.ts, 0, 3))
|
||||
|
||||
x=2;
|
||||
>x : Symbol(x, Decl(newLineFlagWithCRLF.ts, 0, 3))
|
||||
|
||||
|
11
tests/baselines/reference/newLineFlagWithCRLF.types
Normal file
11
tests/baselines/reference/newLineFlagWithCRLF.types
Normal file
|
@ -0,0 +1,11 @@
|
|||
=== tests/cases/compiler/newLineFlagWithCRLF.ts ===
|
||||
var x=1;
|
||||
>x : number
|
||||
>1 : number
|
||||
|
||||
x=2;
|
||||
>x=2 : number
|
||||
>x : number
|
||||
>2 : number
|
||||
|
||||
|
9
tests/baselines/reference/newLineFlagWithLF.js
Normal file
9
tests/baselines/reference/newLineFlagWithLF.js
Normal file
|
@ -0,0 +1,9 @@
|
|||
//// [newLineFlagWithLF.ts]
|
||||
var x=1;
|
||||
x=2;
|
||||
|
||||
|
||||
|
||||
//// [newLineFlagWithLF.js]
|
||||
var x = 1;
|
||||
x = 2;
|
8
tests/baselines/reference/newLineFlagWithLF.symbols
Normal file
8
tests/baselines/reference/newLineFlagWithLF.symbols
Normal file
|
@ -0,0 +1,8 @@
|
|||
=== tests/cases/compiler/newLineFlagWithLF.ts ===
|
||||
var x=1;
|
||||
>x : Symbol(x, Decl(newLineFlagWithLF.ts, 0, 3))
|
||||
|
||||
x=2;
|
||||
>x : Symbol(x, Decl(newLineFlagWithLF.ts, 0, 3))
|
||||
|
||||
|
11
tests/baselines/reference/newLineFlagWithLF.types
Normal file
11
tests/baselines/reference/newLineFlagWithLF.types
Normal file
|
@ -0,0 +1,11 @@
|
|||
=== tests/cases/compiler/newLineFlagWithLF.ts ===
|
||||
var x=1;
|
||||
>x : number
|
||||
>1 : number
|
||||
|
||||
x=2;
|
||||
>x=2 : number
|
||||
>x : number
|
||||
>2 : number
|
||||
|
||||
|
4
tests/cases/compiler/newLineFlagWithCR.ts
Normal file
4
tests/cases/compiler/newLineFlagWithCR.ts
Normal file
|
@ -0,0 +1,4 @@
|
|||
// @newline: CR
|
||||
var x=1;
|
||||
x=2;
|
||||
|
4
tests/cases/compiler/newLineFlagWithCRLF.ts
Normal file
4
tests/cases/compiler/newLineFlagWithCRLF.ts
Normal file
|
@ -0,0 +1,4 @@
|
|||
// @newline: CRLF
|
||||
var x=1;
|
||||
x=2;
|
||||
|
4
tests/cases/compiler/newLineFlagWithLF.ts
Normal file
4
tests/cases/compiler/newLineFlagWithLF.ts
Normal file
|
@ -0,0 +1,4 @@
|
|||
// @newline: LF
|
||||
var x=1;
|
||||
x=2;
|
||||
|
Loading…
Reference in a new issue