mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Use clean and written files to verify the tsbuild incremental compilation = clean build compilation
This commit is contained in:
@@ -82,10 +82,6 @@ namespace ts {
|
||||
incrementalHeaderChangedBuild: modifyAgainFs ? {
|
||||
modifyFs: modifyAgainFs
|
||||
} : undefined,
|
||||
outputFiles: [
|
||||
...outputFiles[project.lib],
|
||||
...outputFiles[project.app]
|
||||
],
|
||||
baselineOnly: true
|
||||
});
|
||||
}
|
||||
@@ -232,10 +228,6 @@ ${internal} export enum internalEnum { a, b, c }`);
|
||||
[Diagnostics.Building_project_0, sources[project.app][source.config]],
|
||||
]
|
||||
},
|
||||
outputFiles: [
|
||||
...libOutputFile,
|
||||
...outputFiles[project.app]
|
||||
],
|
||||
baselineOnly: true,
|
||||
verifyDiagnostics: true
|
||||
});
|
||||
|
||||
@@ -18,19 +18,6 @@ namespace ts {
|
||||
proj: "emitDeclarationOnly",
|
||||
rootNames: ["/src"],
|
||||
lastProjectOutput: `/src/lib/index.d.ts`,
|
||||
outputFiles: [
|
||||
"/src/lib/a.d.ts",
|
||||
"/src/lib/b.d.ts",
|
||||
"/src/lib/c.d.ts",
|
||||
"/src/lib/index.d.ts",
|
||||
"/src/tsconfig.tsbuildinfo",
|
||||
...(disableMap ? emptyArray : [
|
||||
"/src/lib/a.d.ts.map",
|
||||
"/src/lib/b.d.ts.map",
|
||||
"/src/lib/c.d.ts.map",
|
||||
"/src/lib/index.d.ts.map"
|
||||
])
|
||||
],
|
||||
initialBuild: {
|
||||
modifyFs: disableMap ?
|
||||
(fs => replaceText(fs, "/src/tsconfig.json", `"declarationMap": true,`, "")) :
|
||||
@@ -64,15 +51,6 @@ namespace ts {
|
||||
proj: "emitDeclarationOnly",
|
||||
rootNames: ["/src"],
|
||||
lastProjectOutput: `/src/lib/a.d.ts`,
|
||||
outputFiles: [
|
||||
"/src/lib/a.d.ts",
|
||||
"/src/lib/b.d.ts",
|
||||
"/src/lib/c.d.ts",
|
||||
"/src/tsconfig.tsbuildinfo",
|
||||
"/src/lib/a.d.ts.map",
|
||||
"/src/lib/b.d.ts.map",
|
||||
"/src/lib/c.d.ts.map",
|
||||
],
|
||||
initialBuild: {
|
||||
modifyFs: fs => {
|
||||
fs.rimrafSync("/src/src/index.ts");
|
||||
|
||||
@@ -267,7 +267,7 @@ interface Symbol {
|
||||
if (baselineSourceMap) generateSourceMapBaselineFiles(fs, mapDefinedIterator(writtenFiles.keys(), f => f.endsWith(".map") ? f : undefined));
|
||||
generateBuildInfoSectionBaselineFiles(fs, expectedBuildInfoFilesForSectionBaselines || emptyArray);
|
||||
fs.makeReadonly();
|
||||
return { fs, actualReadFileMap, host, builder };
|
||||
return { fs, actualReadFileMap, host, builder, writtenFiles };
|
||||
}
|
||||
|
||||
function generateBaseline(fs: vfs.FileSystem, proj: string, scenario: string, subScenario: string, baseFs: vfs.FileSystem) {
|
||||
@@ -314,7 +314,6 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
|
||||
expectedBuildInfoFilesForSectionBaselines?: ReadonlyArray<BuildInfoSectionBaselineFiles>;
|
||||
lastProjectOutput: string;
|
||||
initialBuild: BuildState;
|
||||
outputFiles?: ReadonlyArray<string>;
|
||||
incrementalDtsChangedBuild?: BuildState;
|
||||
incrementalDtsUnchangedBuild?: BuildState;
|
||||
incrementalHeaderChangedBuild?: BuildState;
|
||||
@@ -324,7 +323,7 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
|
||||
}
|
||||
|
||||
export function verifyTsbuildOutput({
|
||||
scenario, projFs, time, tick, proj, rootNames, outputFiles, baselineOnly, verifyDiagnostics,
|
||||
scenario, projFs, time, tick, proj, rootNames, baselineOnly, verifyDiagnostics,
|
||||
baselineSourceMap, expectedBuildInfoFilesForSectionBaselines, lastProjectOutput,
|
||||
initialBuild, incrementalDtsChangedBuild, incrementalDtsUnchangedBuild, incrementalHeaderChangedBuild
|
||||
}: VerifyTsBuildInput) {
|
||||
@@ -417,22 +416,19 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
|
||||
});
|
||||
}
|
||||
it(`Verify emit output file text is same when built clean`, () => {
|
||||
const expectedOutputFiles = Debug.assertDefined(outputFiles);
|
||||
const { fs } = build({
|
||||
const { fs, writtenFiles } = build({
|
||||
fs: newFs.shadow(),
|
||||
tick,
|
||||
rootNames,
|
||||
modifyFs: fs => {
|
||||
// Delete output files
|
||||
for (const outputFile of expectedOutputFiles) {
|
||||
if (fs.existsSync(outputFile)) {
|
||||
fs.rimrafSync(outputFile);
|
||||
}
|
||||
}
|
||||
const host = new fakes.SolutionBuilderHost(fs);
|
||||
const builder = createSolutionBuilder(host, rootNames, { clean: true });
|
||||
builder.clean();
|
||||
},
|
||||
});
|
||||
|
||||
for (const outputFile of expectedOutputFiles) {
|
||||
for (const outputFile of arrayFrom(writtenFiles.keys())) {
|
||||
const expectedText = fs.existsSync(outputFile) ? fs.readFileSync(outputFile, "utf8") : undefined;
|
||||
const actualText = newFs.existsSync(outputFile) ? newFs.readFileSync(outputFile, "utf8") : undefined;
|
||||
assert.equal(actualText, expectedText, `File: ${outputFile}`);
|
||||
|
||||
@@ -17,13 +17,6 @@ namespace ts {
|
||||
proj: "inferredTypeFromTransitiveModule",
|
||||
rootNames: ["/src"],
|
||||
lastProjectOutput: `/src/obj/index.js`,
|
||||
outputFiles: [
|
||||
"/src/obj/bar.js", "/src/obj/bar.d.ts",
|
||||
"/src/obj/bundling.js", "/src/obj/bundling.d.ts",
|
||||
"/src/obj/lazyIndex.js", "/src/obj/lazyIndex.d.ts",
|
||||
"/src/obj/index.js", "/src/obj/index.d.ts",
|
||||
"/src/obj/tsconfig.tsbuildinfo"
|
||||
],
|
||||
initialBuild: {
|
||||
modifyFs: noop,
|
||||
expectedDiagnostics: [
|
||||
|
||||
@@ -17,11 +17,6 @@ namespace ts {
|
||||
proj: "lateBoundSymbol",
|
||||
rootNames: ["/src/tsconfig.json"],
|
||||
lastProjectOutput: "/src/src/main.js",
|
||||
outputFiles: [
|
||||
"/src/src/hkt.js",
|
||||
"/src/src/main.js",
|
||||
"/src/tsconfig.tsbuildinfo",
|
||||
],
|
||||
initialBuild: {
|
||||
modifyFs: noop,
|
||||
expectedDiagnostics: [
|
||||
|
||||
@@ -303,7 +303,6 @@ namespace ts {
|
||||
expectedDiagnostics: dtsUnchanged && dtsUnchanged.expectedDiagnostics,
|
||||
expectedReadFiles: dtsUnchanged && dtsUnchanged.expectedReadFiles
|
||||
} : undefined,
|
||||
outputFiles: expectedOutputFiles,
|
||||
baselineOnly
|
||||
});
|
||||
}
|
||||
|
||||
@@ -693,22 +693,6 @@ class someClass { }`),
|
||||
],
|
||||
)
|
||||
},
|
||||
outputFiles: [
|
||||
"/src/core/anotherModule.js",
|
||||
"/src/core/anotherModule.d.ts",
|
||||
"/src/core/anotherModule.d.ts.map",
|
||||
"/src/core/index.js",
|
||||
"/src/core/index.d.ts",
|
||||
"/src/core/index.d.ts.map",
|
||||
"/src/core/tsconfig.tsbuildinfo",
|
||||
"/src/logic/index.js",
|
||||
"/src/logic/index.js.map",
|
||||
"/src/logic/index.d.ts",
|
||||
"/src/logic/tsconfig.tsbuildinfo",
|
||||
"/src/tests/index.js",
|
||||
"/src/tests/index.d.ts",
|
||||
"/src/tests/tsconfig.tsbuildinfo",
|
||||
]
|
||||
});
|
||||
|
||||
verifyTsbuildOutput({
|
||||
@@ -757,22 +741,6 @@ class someClass { }`),
|
||||
]
|
||||
)
|
||||
},
|
||||
outputFiles: [
|
||||
"/src/core/anotherModule.js",
|
||||
"/src/core/anotherModule.d.ts",
|
||||
"/src/core/anotherModule.d.ts.map",
|
||||
"/src/core/index.js",
|
||||
"/src/core/index.d.ts",
|
||||
"/src/core/index.d.ts.map",
|
||||
"/src/core/tsconfig.tsbuildinfo",
|
||||
"/src/logic/index.js",
|
||||
"/src/logic/index.js.map",
|
||||
"/src/logic/decls/index.d.ts",
|
||||
"/src/logic/tsconfig.tsbuildinfo",
|
||||
"/src/tests/index.js",
|
||||
"/src/tests/index.d.ts",
|
||||
"/src/tests/tsconfig.tsbuildinfo",
|
||||
],
|
||||
});
|
||||
|
||||
verifyTsbuildOutput({
|
||||
@@ -814,22 +782,6 @@ class someClass { }`),
|
||||
]
|
||||
)
|
||||
},
|
||||
outputFiles: [
|
||||
"/src/core/anotherModule.js",
|
||||
"/src/core/anotherModule.d.ts",
|
||||
"/src/core/anotherModule.d.ts.map",
|
||||
"/src/core/index.js",
|
||||
"/src/core/index.d.ts",
|
||||
"/src/core/index.d.ts.map",
|
||||
"/src/core/tsconfig.tsbuildinfo",
|
||||
"/src/logic/index.js",
|
||||
"/src/logic/index.js.map",
|
||||
"/src/logic/index.d.ts",
|
||||
"/src/logic/ownFile.tsbuildinfo",
|
||||
"/src/tests/index.js",
|
||||
"/src/tests/index.d.ts",
|
||||
"/src/tests/tsconfig.tsbuildinfo",
|
||||
]
|
||||
});
|
||||
|
||||
verifyTsbuildOutput({
|
||||
@@ -861,13 +813,6 @@ class someClass { }`),
|
||||
[Diagnostics.Building_project_0, "/src/core/tsconfig.json"]
|
||||
]
|
||||
},
|
||||
outputFiles: [
|
||||
"/src/core/anotherModule.js",
|
||||
"/src/core/anotherModule.d.ts",
|
||||
"/src/core/index.js",
|
||||
"/src/core/index.d.ts",
|
||||
"/src/core/tsconfig.tsbuildinfo",
|
||||
],
|
||||
baselineOnly: true,
|
||||
verifyDiagnostics: true
|
||||
});
|
||||
@@ -910,13 +855,6 @@ class someClass { }`),
|
||||
[Diagnostics.Building_project_0, "/src/core/tsconfig.json"]
|
||||
]
|
||||
},
|
||||
outputFiles: [
|
||||
"/src/core/anotherModule.js",
|
||||
"/src/core/anotherModule.d.ts",
|
||||
"/src/core/index.js",
|
||||
"/src/core/index.d.ts",
|
||||
"/src/core/tsconfig.tsbuildinfo",
|
||||
],
|
||||
baselineOnly: true,
|
||||
verifyDiagnostics: true
|
||||
});
|
||||
@@ -950,11 +888,6 @@ class someClass { }`),
|
||||
[Diagnostics.Building_project_0, "/src/core/tsconfig.json"]
|
||||
]
|
||||
},
|
||||
outputFiles: [
|
||||
"/src/core/anotherModule.js",
|
||||
"/src/core/index.js",
|
||||
"/src/core/tsconfig.tsbuildinfo",
|
||||
],
|
||||
baselineOnly: true,
|
||||
verifyDiagnostics: true
|
||||
});
|
||||
@@ -1002,7 +935,6 @@ class someClass { }`),
|
||||
[Diagnostics.Building_project_0, "/src/tests/tsconfig.json"]
|
||||
]
|
||||
},
|
||||
outputFiles: [],
|
||||
baselineOnly: true,
|
||||
verifyDiagnostics: true
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user