@@ -164,8 +164,10 @@ interface Symbol {
164
164
}
165
165
}
166
166
167
- function generateSourceMapBaselineFiles ( fs : vfs . FileSystem , mapFileNames : ReadonlyArray < string > ) {
168
- for ( const mapFile of mapFileNames ) {
167
+ function generateSourceMapBaselineFiles ( fs : vfs . FileSystem , mapFileNames : Iterator < string > ) {
168
+ while ( true ) {
169
+ const { value : mapFile , done } = mapFileNames . next ( ) ;
170
+ if ( done ) break ;
169
171
if ( ! fs . existsSync ( mapFile ) ) continue ;
170
172
const text = Harness . SourceMapRecorder . getSourceMapRecordWithVFS ( fs , mapFile ) ;
171
173
fs . writeFileSync ( `${ mapFile } .baseline.txt` , text ) ;
@@ -233,17 +235,24 @@ interface Symbol {
233
235
fs : vfs . FileSystem ;
234
236
tick : ( ) => void ;
235
237
rootNames : ReadonlyArray < string > ;
236
- expectedMapFileNames ?: ReadonlyArray < string > ;
238
+ baselineSourceMap ?: true ;
237
239
expectedBuildInfoFilesForSectionBaselines ?: ReadonlyArray < BuildInfoSectionBaselineFiles > ;
238
240
modifyFs : ( fs : vfs . FileSystem ) => void ;
239
241
}
240
242
241
- function build ( { fs, tick, rootNames, expectedMapFileNames , expectedBuildInfoFilesForSectionBaselines, modifyFs } : BuildInput ) {
243
+ function build ( { fs, tick, rootNames, baselineSourceMap , expectedBuildInfoFilesForSectionBaselines, modifyFs } : BuildInput ) {
242
244
const actualReadFileMap = createMap < number > ( ) ;
243
245
modifyFs ( fs ) ;
244
246
tick ( ) ;
245
247
246
248
const host = new fakes . SolutionBuilderHost ( fs ) ;
249
+ const writtenFiles = createMap < true > ( ) ;
250
+ const originalWriteFile = host . writeFile ;
251
+ host . writeFile = ( fileName , content , writeByteOrderMark ) => {
252
+ assert . isFalse ( writtenFiles . has ( fileName ) ) ;
253
+ writtenFiles . set ( fileName , true ) ;
254
+ return originalWriteFile . call ( host , fileName , content , writeByteOrderMark ) ;
255
+ } ;
247
256
const builder = createSolutionBuilder ( host , rootNames , { dry : false , force : false , verbose : true } ) ;
248
257
host . clearDiagnostics ( ) ;
249
258
const originalReadFile = host . readFile ;
@@ -255,7 +264,7 @@ interface Symbol {
255
264
return originalReadFile . call ( host , path ) ;
256
265
} ;
257
266
builder . build ( ) ;
258
- if ( expectedMapFileNames ) generateSourceMapBaselineFiles ( fs , expectedMapFileNames ) ;
267
+ if ( baselineSourceMap ) generateSourceMapBaselineFiles ( fs , mapDefinedIterator ( writtenFiles . keys ( ) , f => f . endsWith ( ".map" ) ? f : undefined ) ) ;
259
268
generateBuildInfoSectionBaselineFiles ( fs , expectedBuildInfoFilesForSectionBaselines || emptyArray ) ;
260
269
fs . makeReadonly ( ) ;
261
270
return { fs, actualReadFileMap, host, builder } ;
@@ -302,8 +311,6 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
302
311
tick : ( ) => void ;
303
312
proj : string ;
304
313
rootNames : ReadonlyArray < string > ;
305
- /** map file names to generate baseline of */
306
- expectedMapFileNames ?: ReadonlyArray < string > ;
307
314
expectedBuildInfoFilesForSectionBaselines ?: ReadonlyArray < BuildInfoSectionBaselineFiles > ;
308
315
lastProjectOutput : string ;
309
316
initialBuild : BuildState ;
@@ -313,11 +320,12 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
313
320
incrementalHeaderChangedBuild ?: BuildState ;
314
321
baselineOnly ?: true ;
315
322
verifyDiagnostics ?: true ;
323
+ baselineSourceMap ?: true ;
316
324
}
317
325
318
326
export function verifyTsbuildOutput ( {
319
327
scenario, projFs, time, tick, proj, rootNames, outputFiles, baselineOnly, verifyDiagnostics,
320
- expectedMapFileNames , expectedBuildInfoFilesForSectionBaselines, lastProjectOutput,
328
+ baselineSourceMap , expectedBuildInfoFilesForSectionBaselines, lastProjectOutput,
321
329
initialBuild, incrementalDtsChangedBuild, incrementalDtsUnchangedBuild, incrementalHeaderChangedBuild
322
330
} : VerifyTsBuildInput ) {
323
331
describe ( `tsc --b ${ proj } :: ${ scenario } ` , ( ) => {
@@ -330,7 +338,7 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
330
338
fs : projFs ( ) . shadow ( ) ,
331
339
tick,
332
340
rootNames,
333
- expectedMapFileNames ,
341
+ baselineSourceMap ,
334
342
expectedBuildInfoFilesForSectionBaselines,
335
343
modifyFs : initialBuild . modifyFs ,
336
344
} ) ;
@@ -374,7 +382,7 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
374
382
fs : newFs ,
375
383
tick,
376
384
rootNames,
377
- expectedMapFileNames ,
385
+ baselineSourceMap ,
378
386
expectedBuildInfoFilesForSectionBaselines,
379
387
modifyFs : incrementalModifyFs ,
380
388
} ) ) ;
0 commit comments