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 */
|
/** The version of the TypeScript compiler release */
|
||||||
export const version = "1.5.0";
|
export const version = "1.5.0";
|
||||||
|
|
||||||
|
const NEWLINE_CRLF = "\r\n";
|
||||||
|
const NEWLINE_LF = "\n";
|
||||||
|
|
||||||
export function findConfigFile(searchPath: string): string {
|
export function findConfigFile(searchPath: string): string {
|
||||||
var fileName = "tsconfig.json";
|
var fileName = "tsconfig.json";
|
||||||
|
@ -91,9 +94,9 @@ module ts {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let newLine =
|
let newLine =
|
||||||
options.newLine === NewLineKind.CarriageReturnLineFeed ? "\r\n" :
|
options.newLine === NewLineKind.CarriageReturnLineFeed ? NEWLINE_CRLF :
|
||||||
options.newLine === NewLineKind.LineFeed ? "\n" :
|
options.newLine === NewLineKind.LineFeed ? NEWLINE_LF :
|
||||||
sys.newLine;
|
sys.newLine;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -805,6 +805,9 @@ module Harness {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const NEWLINE_CRLF = "\r\n";
|
||||||
|
const NEWLINE_LF = "\n";
|
||||||
|
|
||||||
export var defaultLibFileName = 'lib.d.ts';
|
export var defaultLibFileName = 'lib.d.ts';
|
||||||
export var defaultLibSourceFile = createSourceFileAndAssertInvariants(defaultLibFileName, IO.readFile(libFolder + 'lib.core.d.ts'), /*languageVersion*/ ts.ScriptTarget.Latest);
|
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);
|
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,
|
scriptTarget: ts.ScriptTarget,
|
||||||
useCaseSensitiveFileNames: boolean,
|
useCaseSensitiveFileNames: boolean,
|
||||||
// the currentDirectory is needed for rwcRunner to passed in specified current directory to compiler host
|
// 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
|
// Local get canonical file name function, that depends on passed in parameter for useCaseSensitiveFileNames
|
||||||
function getCanonicalFileName(fileName: string): string {
|
function getCanonicalFileName(fileName: string): string {
|
||||||
|
@ -841,6 +845,11 @@ module Harness {
|
||||||
};
|
};
|
||||||
inputFiles.forEach(register);
|
inputFiles.forEach(register);
|
||||||
|
|
||||||
|
let newLine =
|
||||||
|
newLineKind === ts.NewLineKind.CarriageReturnLineFeed ? NEWLINE_CRLF :
|
||||||
|
newLineKind === ts.NewLineKind.LineFeed ? NEWLINE_LF :
|
||||||
|
ts.sys.newLine;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
getCurrentDirectory,
|
getCurrentDirectory,
|
||||||
getSourceFile: (fn, languageVersion) => {
|
getSourceFile: (fn, languageVersion) => {
|
||||||
|
@ -869,7 +878,7 @@ module Harness {
|
||||||
writeFile,
|
writeFile,
|
||||||
getCanonicalFileName,
|
getCanonicalFileName,
|
||||||
useCaseSensitiveFileNames: () => useCaseSensitiveFileNames,
|
useCaseSensitiveFileNames: () => useCaseSensitiveFileNames,
|
||||||
getNewLine: () => ts.sys.newLine
|
getNewLine: () => newLine
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1042,7 +1051,16 @@ module Harness {
|
||||||
|
|
||||||
case 'newline':
|
case 'newline':
|
||||||
case 'newlines':
|
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;
|
break;
|
||||||
|
|
||||||
case 'comments':
|
case 'comments':
|
||||||
|
@ -1103,7 +1121,7 @@ module Harness {
|
||||||
var programFiles = inputFiles.concat(includeBuiltFiles).map(file => file.unitName);
|
var programFiles = inputFiles.concat(includeBuiltFiles).map(file => file.unitName);
|
||||||
var program = ts.createProgram(programFiles, options, createCompilerHost(inputFiles.concat(includeBuiltFiles).concat(otherFiles),
|
var program = ts.createProgram(programFiles, options, createCompilerHost(inputFiles.concat(includeBuiltFiles).concat(otherFiles),
|
||||||
(fn, contents, writeByteOrderMark) => fileOutputs.push({ fileName: fn, code: contents, writeByteOrderMark: writeByteOrderMark }),
|
(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();
|
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