Use clean and written files to verify the tsbuild incremental compilation = clean build compilation

This commit is contained in:
Sheetal Nandi
2019-09-09 14:09:54 -07:00
parent 566d32b2e8
commit 1f149ccfd7
7 changed files with 7 additions and 122 deletions
@@ -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");
+7 -11
View File
@@ -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
});