Skip to content

Commit b28befd

Browse files
committed
Handel additional properties
1 parent b2ac33d commit b28befd

1 file changed

Lines changed: 20 additions & 7 deletions

File tree

src/harness/harness.ts

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -910,7 +910,12 @@ module Harness {
910910
};
911911
}
912912

913-
export function setCompilerOptionForSetting(setting: Harness.TestCaseParser.CompilerSetting, options: ts.CompilerOptions): void {
913+
interface HarnesOptions {
914+
useCaseSensitiveFileNames?: boolean;
915+
includeBuiltFileNames?: string[];
916+
}
917+
918+
export function setCompilerOptionForSetting(setting: Harness.TestCaseParser.CompilerSetting, options: ts.CompilerOptions & HarnesOptions): void {
914919
switch (setting.flag.toLowerCase()) {
915920
case "module":
916921
if (typeof setting.value === "string") {
@@ -1028,7 +1033,7 @@ module Harness {
10281033
options.stripInternal = setting.value === "true";
10291034

10301035
case "usecasesensitivefilenames":
1031-
useCaseSensitiveFileNames = setting.value === "true";
1036+
options.useCaseSensitiveFileNames = setting.value === "true";
10321037
break;
10331038

10341039
case "filename":
@@ -1056,8 +1061,10 @@ module Harness {
10561061
break;
10571062

10581063
case "includebuiltfile":
1059-
let builtFileName = libFolder + setting.value;
1060-
includeBuiltFiles.push({ unitName: builtFileName, content: normalizeLineEndings(IO.readFile(builtFileName), newLine) });
1064+
if (!options.includeBuiltFileNames) {
1065+
options.includeBuiltFileNames = [];
1066+
}
1067+
options.includeBuiltFileNames.push(setting.value);
10611068
break;
10621069

10631070
case "inlinesourcemap":
@@ -1136,7 +1143,7 @@ module Harness {
11361143
otherFiles: { unitName: string; content: string }[],
11371144
onComplete: (result: CompilerResult, program: ts.Program) => void,
11381145
settingsCallback?: (settings: ts.CompilerOptions) => void,
1139-
options?: ts.CompilerOptions,
1146+
options?: ts.CompilerOptions & HarnesOptions,
11401147
// Current directory is needed for rwcRunner to be able to use currentDirectory defined in json file
11411148
currentDirectory?: string) {
11421149

@@ -1153,12 +1160,18 @@ module Harness {
11531160
let newLine = "\r\n";
11541161
options.skipDefaultLibCheck = true;
11551162

1163+
// Parse settings
1164+
this.settings.forEach(setting => setCompilerOptionForSetting(setting, options));
1165+
11561166
// Files from built\local that are requested by test "@includeBuiltFiles" to be in the context.
11571167
// Treat them as library files, so include them in build, but not in baselines.
11581168
let includeBuiltFiles: { unitName: string; content: string }[] = [];
1169+
ts.forEach(options.includeBuiltFileNames, fileName => {
1170+
let builtFileName = libFolder + fileName;
1171+
includeBuiltFiles.push({ unitName: builtFileName, content: normalizeLineEndings(IO.readFile(builtFileName), newLine) });
1172+
});
11591173

1160-
let useCaseSensitiveFileNames = ts.sys.useCaseSensitiveFileNames;
1161-
this.settings.forEach(setting => setCompilerOptionForSetting(setting, options));
1174+
let useCaseSensitiveFileNames = options.useCaseSensitiveFileNames !== undefined ? options.useCaseSensitiveFileNames : ts.sys.useCaseSensitiveFileNames;
11621175

11631176
let fileOutputs: GeneratedFile[] = [];
11641177

0 commit comments

Comments
 (0)