Skip to content

Commit ea2331b

Browse files
authored
Merge pull request microsoft#31005 from Microsoft/tsbuildTestPerf
Improve tsbuild tests perf by not including all built libFiles but dummy lib File
2 parents 058cb91 + 83941c4 commit ea2331b

File tree

20 files changed

+68
-534
lines changed

20 files changed

+68
-534
lines changed

src/harness/fakes.ts

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -397,19 +397,6 @@ namespace fakes {
397397
const value = super.readFile(path);
398398
if (!value || !ts.isBuildInfoFile(path)) return value;
399399
const buildInfo = ts.getBuildInfo(value);
400-
if (buildInfo.program) {
401-
// Fix lib signatures
402-
for (const path of ts.getOwnKeys(buildInfo.program.fileInfos)) {
403-
if (ts.startsWith(path, "/lib/")) {
404-
const currentValue = buildInfo.program.fileInfos[path];
405-
ts.Debug.assert(currentValue.signature === path);
406-
ts.Debug.assert(currentValue.signature === currentValue.version);
407-
const text = super.readFile(path)!;
408-
const signature = ts.generateDjb2Hash(text);
409-
buildInfo.program.fileInfos[path] = { version: signature, signature };
410-
}
411-
}
412-
}
413400
ts.Debug.assert(buildInfo.version === version);
414401
buildInfo.version = ts.version;
415402
return ts.getBuildInfoText(buildInfo);
@@ -419,15 +406,6 @@ namespace fakes {
419406
if (!ts.isBuildInfoFile(fileName)) return super.writeFile(fileName, content, writeByteOrderMark);
420407
const buildInfo = ts.getBuildInfo(content);
421408
if (buildInfo.program) {
422-
// Fix lib signatures
423-
for (const path of ts.getOwnKeys(buildInfo.program.fileInfos)) {
424-
if (ts.startsWith(path, "/lib/")) {
425-
const currentValue = buildInfo.program.fileInfos[path];
426-
ts.Debug.assert(currentValue.signature === currentValue.version);
427-
buildInfo.program.fileInfos[path] = { version: path, signature: path };
428-
}
429-
}
430-
431409
// reference Map
432410
if (buildInfo.program.referencedMap) {
433411
const referencedMap: ts.MapLike<string[]> = {};

src/testRunner/unittests/tsbuild/helpers.ts

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,31 +62,26 @@ namespace ts {
6262
}
6363
}
6464

65+
const libContent = `${TestFSWithWatch.libFile.content}
66+
interface ReadonlyArray<T> {}
67+
declare const console: { log(msg: any): void; };`;
68+
6569
export function loadProjectFromDisk(root: string, time?: vfs.FileSystemOptions["time"]): vfs.FileSystem {
6670
const resolver = vfs.createResolver(Harness.IO);
6771
const fs = new vfs.FileSystem(/*ignoreCase*/ true, {
6872
files: {
69-
["/lib"]: new vfs.Mount(vpath.resolve(Harness.IO.getWorkspaceRoot(), "built/local"), resolver),
7073
["/src"]: new vfs.Mount(vpath.resolve(Harness.IO.getWorkspaceRoot(), root), resolver)
7174
},
7275
cwd: "/",
7376
meta: { defaultLibLocation: "/lib" },
7477
time
7578
});
79+
fs.mkdirSync("/lib");
80+
fs.writeFileSync("/lib/lib.d.ts", libContent);
7681
fs.makeReadonly();
7782
return fs;
7883
}
7984

80-
export function getLibs() {
81-
return [
82-
"/lib/lib.d.ts",
83-
"/lib/lib.es5.d.ts",
84-
"/lib/lib.dom.d.ts",
85-
"/lib/lib.webworker.importscripts.d.ts",
86-
"/lib/lib.scripthost.d.ts"
87-
];
88-
}
89-
9085
function generateSourceMapBaselineFiles(fs: vfs.FileSystem, mapFileNames: ReadonlyArray<string>) {
9186
for (const mapFile of mapFileNames) {
9287
if (!fs.existsSync(mapFile)) continue;

src/testRunner/unittests/tsbuild/sample.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -399,14 +399,14 @@ export class cNew {}`);
399399
const builder = createSolutionBuilder(host, ["/src/tests"], { listFiles: true });
400400
builder.buildAllProjects();
401401
assert.deepEqual(host.traces, [
402-
...getLibs(),
402+
"/lib/lib.d.ts",
403403
"/src/core/anotherModule.ts",
404404
"/src/core/index.ts",
405405
"/src/core/some_decl.d.ts",
406-
...getLibs(),
406+
"/lib/lib.d.ts",
407407
...getCoreOutputs(),
408408
"/src/logic/index.ts",
409-
...getLibs(),
409+
"/lib/lib.d.ts",
410410
...getCoreOutputs(),
411411
"/src/logic/index.d.ts",
412412
"/src/tests/index.ts"

src/testRunner/unittests/tsbuild/transitiveReferences.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ namespace ts {
77
"/src/c.js"
88
];
99
const expectedFileTraces = [
10-
...getLibs(),
10+
"/lib/lib.d.ts",
1111
"/src/a.ts",
12-
...getLibs(),
12+
"/lib/lib.d.ts",
1313
"/src/a.d.ts",
1414
"/src/b.ts",
15-
...getLibs(),
15+
"/lib/lib.d.ts",
1616
"/src/a.d.ts",
1717
"/src/b.d.ts",
1818
"/src/refs/a.d.ts",
@@ -63,9 +63,9 @@ export const b = new A();`);
6363
// Error in b build only a
6464
const allExpectedOutputs = ["/src/a.js", "/src/a.d.ts"];
6565
const expectedFileTraces = [
66-
...getLibs(),
66+
"/lib/lib.d.ts",
6767
"/src/a.ts",
68-
...getLibs(),
68+
"/lib/lib.d.ts",
6969
"/src/b.ts"
7070
];
7171
verifyBuild(fs => modifyFsBTsToNonRelativeImport(fs, "node"),

tests/baselines/reference/tsbuild/lateBoundSymbol/incremental-declaration-doesnt-change/interface-is-merged-and-contains-late-bound-member.js

Lines changed: 8 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -21,49 +21,13 @@ type A = HKT<number>[typeof sym];
2121
{
2222
"program": {
2323
"fileInfos": {
24-
"/lib/lib.es5.d.ts": {
25-
"version": "/lib/lib.es5.d.ts",
26-
"signature": "/lib/lib.es5.d.ts"
24+
"/lib/lib.d.ts": {
25+
"version": "-15964756381",
26+
"signature": "-15964756381"
2727
},
28-
"/lib/lib.es2015.d.ts": {
29-
"version": "/lib/lib.es2015.d.ts",
30-
"signature": "/lib/lib.es2015.d.ts"
31-
},
32-
"/lib/lib.es2015.core.d.ts": {
33-
"version": "/lib/lib.es2015.core.d.ts",
34-
"signature": "/lib/lib.es2015.core.d.ts"
35-
},
36-
"/lib/lib.es2015.collection.d.ts": {
37-
"version": "/lib/lib.es2015.collection.d.ts",
38-
"signature": "/lib/lib.es2015.collection.d.ts"
39-
},
40-
"/lib/lib.es2015.generator.d.ts": {
41-
"version": "/lib/lib.es2015.generator.d.ts",
42-
"signature": "/lib/lib.es2015.generator.d.ts"
43-
},
44-
"/lib/lib.es2015.iterable.d.ts": {
45-
"version": "/lib/lib.es2015.iterable.d.ts",
46-
"signature": "/lib/lib.es2015.iterable.d.ts"
47-
},
48-
"/lib/lib.es2015.promise.d.ts": {
49-
"version": "/lib/lib.es2015.promise.d.ts",
50-
"signature": "/lib/lib.es2015.promise.d.ts"
51-
},
52-
"/lib/lib.es2015.proxy.d.ts": {
53-
"version": "/lib/lib.es2015.proxy.d.ts",
54-
"signature": "/lib/lib.es2015.proxy.d.ts"
55-
},
56-
"/lib/lib.es2015.reflect.d.ts": {
57-
"version": "/lib/lib.es2015.reflect.d.ts",
58-
"signature": "/lib/lib.es2015.reflect.d.ts"
59-
},
60-
"/lib/lib.es2015.symbol.d.ts": {
61-
"version": "/lib/lib.es2015.symbol.d.ts",
62-
"signature": "/lib/lib.es2015.symbol.d.ts"
63-
},
64-
"/lib/lib.es2015.symbol.wellknown.d.ts": {
65-
"version": "/lib/lib.es2015.symbol.wellknown.d.ts",
66-
"signature": "/lib/lib.es2015.symbol.wellknown.d.ts"
28+
"/src/src/globals.d.ts": {
29+
"version": "-1994196675",
30+
"signature": "-1994196675"
6731
},
6832
"/src/src/hkt.ts": {
6933
"version": "675797797",
@@ -76,9 +40,6 @@ type A = HKT<number>[typeof sym];
7640
},
7741
"options": {
7842
"rootDir": "/src/src",
79-
"lib": [
80-
"lib.es2015.d.ts"
81-
],
8243
"incremental": true,
8344
"configFilePath": "/src/tsconfig.json"
8445
},
@@ -93,17 +54,8 @@ type A = HKT<number>[typeof sym];
9354
]
9455
},
9556
"semanticDiagnosticsPerFile": [
96-
"/lib/lib.es2015.collection.d.ts",
97-
"/lib/lib.es2015.core.d.ts",
98-
"/lib/lib.es2015.d.ts",
99-
"/lib/lib.es2015.generator.d.ts",
100-
"/lib/lib.es2015.iterable.d.ts",
101-
"/lib/lib.es2015.promise.d.ts",
102-
"/lib/lib.es2015.proxy.d.ts",
103-
"/lib/lib.es2015.reflect.d.ts",
104-
"/lib/lib.es2015.symbol.d.ts",
105-
"/lib/lib.es2015.symbol.wellknown.d.ts",
106-
"/lib/lib.es5.d.ts",
57+
"/lib/lib.d.ts",
58+
"/src/src/globals.d.ts",
10759
"/src/src/hkt.ts",
10860
"/src/src/main.ts"
10961
]

tests/baselines/reference/tsbuild/lateBoundSymbol/initial-Build/interface-is-merged-and-contains-late-bound-member.js

Lines changed: 8 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -14,49 +14,13 @@ var x = 10;
1414
{
1515
"program": {
1616
"fileInfos": {
17-
"/lib/lib.es5.d.ts": {
18-
"version": "/lib/lib.es5.d.ts",
19-
"signature": "/lib/lib.es5.d.ts"
17+
"/lib/lib.d.ts": {
18+
"version": "-15964756381",
19+
"signature": "-15964756381"
2020
},
21-
"/lib/lib.es2015.d.ts": {
22-
"version": "/lib/lib.es2015.d.ts",
23-
"signature": "/lib/lib.es2015.d.ts"
24-
},
25-
"/lib/lib.es2015.core.d.ts": {
26-
"version": "/lib/lib.es2015.core.d.ts",
27-
"signature": "/lib/lib.es2015.core.d.ts"
28-
},
29-
"/lib/lib.es2015.collection.d.ts": {
30-
"version": "/lib/lib.es2015.collection.d.ts",
31-
"signature": "/lib/lib.es2015.collection.d.ts"
32-
},
33-
"/lib/lib.es2015.generator.d.ts": {
34-
"version": "/lib/lib.es2015.generator.d.ts",
35-
"signature": "/lib/lib.es2015.generator.d.ts"
36-
},
37-
"/lib/lib.es2015.iterable.d.ts": {
38-
"version": "/lib/lib.es2015.iterable.d.ts",
39-
"signature": "/lib/lib.es2015.iterable.d.ts"
40-
},
41-
"/lib/lib.es2015.promise.d.ts": {
42-
"version": "/lib/lib.es2015.promise.d.ts",
43-
"signature": "/lib/lib.es2015.promise.d.ts"
44-
},
45-
"/lib/lib.es2015.proxy.d.ts": {
46-
"version": "/lib/lib.es2015.proxy.d.ts",
47-
"signature": "/lib/lib.es2015.proxy.d.ts"
48-
},
49-
"/lib/lib.es2015.reflect.d.ts": {
50-
"version": "/lib/lib.es2015.reflect.d.ts",
51-
"signature": "/lib/lib.es2015.reflect.d.ts"
52-
},
53-
"/lib/lib.es2015.symbol.d.ts": {
54-
"version": "/lib/lib.es2015.symbol.d.ts",
55-
"signature": "/lib/lib.es2015.symbol.d.ts"
56-
},
57-
"/lib/lib.es2015.symbol.wellknown.d.ts": {
58-
"version": "/lib/lib.es2015.symbol.wellknown.d.ts",
59-
"signature": "/lib/lib.es2015.symbol.wellknown.d.ts"
21+
"/src/src/globals.d.ts": {
22+
"version": "-1994196675",
23+
"signature": "-1994196675"
6024
},
6125
"/src/src/hkt.ts": {
6226
"version": "675797797",
@@ -69,9 +33,6 @@ var x = 10;
6933
},
7034
"options": {
7135
"rootDir": "/src/src",
72-
"lib": [
73-
"lib.es2015.d.ts"
74-
],
7536
"incremental": true,
7637
"configFilePath": "/src/tsconfig.json"
7738
},
@@ -86,17 +47,8 @@ var x = 10;
8647
]
8748
},
8849
"semanticDiagnosticsPerFile": [
89-
"/lib/lib.es2015.collection.d.ts",
90-
"/lib/lib.es2015.core.d.ts",
91-
"/lib/lib.es2015.d.ts",
92-
"/lib/lib.es2015.generator.d.ts",
93-
"/lib/lib.es2015.iterable.d.ts",
94-
"/lib/lib.es2015.promise.d.ts",
95-
"/lib/lib.es2015.proxy.d.ts",
96-
"/lib/lib.es2015.reflect.d.ts",
97-
"/lib/lib.es2015.symbol.d.ts",
98-
"/lib/lib.es2015.symbol.wellknown.d.ts",
99-
"/lib/lib.es5.d.ts",
50+
"/lib/lib.d.ts",
51+
"/src/src/globals.d.ts",
10052
"/src/src/hkt.ts",
10153
"/src/src/main.ts"
10254
]

0 commit comments

Comments
 (0)