@@ -164,8 +164,10 @@ interface Symbol {
164164 }
165165 }
166166
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 ;
169171 if ( ! fs . existsSync ( mapFile ) ) continue ;
170172 const text = Harness . SourceMapRecorder . getSourceMapRecordWithVFS ( fs , mapFile ) ;
171173 fs . writeFileSync ( `${ mapFile } .baseline.txt` , text ) ;
@@ -233,17 +235,24 @@ interface Symbol {
233235 fs : vfs . FileSystem ;
234236 tick : ( ) => void ;
235237 rootNames : ReadonlyArray < string > ;
236- expectedMapFileNames ?: ReadonlyArray < string > ;
238+ baselineSourceMap ?: true ;
237239 expectedBuildInfoFilesForSectionBaselines ?: ReadonlyArray < BuildInfoSectionBaselineFiles > ;
238240 modifyFs : ( fs : vfs . FileSystem ) => void ;
239241 }
240242
241- function build ( { fs, tick, rootNames, expectedMapFileNames , expectedBuildInfoFilesForSectionBaselines, modifyFs } : BuildInput ) {
243+ function build ( { fs, tick, rootNames, baselineSourceMap , expectedBuildInfoFilesForSectionBaselines, modifyFs } : BuildInput ) {
242244 const actualReadFileMap = createMap < number > ( ) ;
243245 modifyFs ( fs ) ;
244246 tick ( ) ;
245247
246248 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+ } ;
247256 const builder = createSolutionBuilder ( host , rootNames , { dry : false , force : false , verbose : true } ) ;
248257 host . clearDiagnostics ( ) ;
249258 const originalReadFile = host . readFile ;
@@ -255,7 +264,7 @@ interface Symbol {
255264 return originalReadFile . call ( host , path ) ;
256265 } ;
257266 builder . build ( ) ;
258- if ( expectedMapFileNames ) generateSourceMapBaselineFiles ( fs , expectedMapFileNames ) ;
267+ if ( baselineSourceMap ) generateSourceMapBaselineFiles ( fs , mapDefinedIterator ( writtenFiles . keys ( ) , f => f . endsWith ( ".map" ) ? f : undefined ) ) ;
259268 generateBuildInfoSectionBaselineFiles ( fs , expectedBuildInfoFilesForSectionBaselines || emptyArray ) ;
260269 fs . makeReadonly ( ) ;
261270 return { fs, actualReadFileMap, host, builder } ;
@@ -302,8 +311,6 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
302311 tick : ( ) => void ;
303312 proj : string ;
304313 rootNames : ReadonlyArray < string > ;
305- /** map file names to generate baseline of */
306- expectedMapFileNames ?: ReadonlyArray < string > ;
307314 expectedBuildInfoFilesForSectionBaselines ?: ReadonlyArray < BuildInfoSectionBaselineFiles > ;
308315 lastProjectOutput : string ;
309316 initialBuild : BuildState ;
@@ -313,11 +320,12 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
313320 incrementalHeaderChangedBuild ?: BuildState ;
314321 baselineOnly ?: true ;
315322 verifyDiagnostics ?: true ;
323+ baselineSourceMap ?: true ;
316324 }
317325
318326 export function verifyTsbuildOutput ( {
319327 scenario, projFs, time, tick, proj, rootNames, outputFiles, baselineOnly, verifyDiagnostics,
320- expectedMapFileNames , expectedBuildInfoFilesForSectionBaselines, lastProjectOutput,
328+ baselineSourceMap , expectedBuildInfoFilesForSectionBaselines, lastProjectOutput,
321329 initialBuild, incrementalDtsChangedBuild, incrementalDtsUnchangedBuild, incrementalHeaderChangedBuild
322330 } : VerifyTsBuildInput ) {
323331 describe ( `tsc --b ${ proj } :: ${ scenario } ` , ( ) => {
@@ -330,7 +338,7 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
330338 fs : projFs ( ) . shadow ( ) ,
331339 tick,
332340 rootNames,
333- expectedMapFileNames ,
341+ baselineSourceMap ,
334342 expectedBuildInfoFilesForSectionBaselines,
335343 modifyFs : initialBuild . modifyFs ,
336344 } ) ;
@@ -374,7 +382,7 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
374382 fs : newFs ,
375383 tick,
376384 rootNames,
377- expectedMapFileNames ,
385+ baselineSourceMap ,
378386 expectedBuildInfoFilesForSectionBaselines,
379387 modifyFs : incrementalModifyFs ,
380388 } ) ) ;
0 commit comments