@@ -148,10 +148,9 @@ namespace ts {
148148 expectedMapFileNames : ReadonlyArray < string > ;
149149 expectedBuildInfoFilesForSectionBaselines ?: ReadonlyArray < BuildInfoSectionBaselineFiles > ;
150150 modifyFs : ( fs : vfs . FileSystem ) => void ;
151- withoutBuildInfo : boolean ;
152151 }
153152
154- function build ( { fs, tick, rootNames, expectedMapFileNames, expectedBuildInfoFilesForSectionBaselines, modifyFs, withoutBuildInfo } : BuildInput ) {
153+ function build ( { fs, tick, rootNames, expectedMapFileNames, expectedBuildInfoFilesForSectionBaselines, modifyFs } : BuildInput ) {
155154 const actualReadFileMap = createMap < number > ( ) ;
156155 modifyFs ( fs ) ;
157156 tick ( ) ;
@@ -165,29 +164,19 @@ namespace ts {
165164 if ( path . startsWith ( "/src/" ) ) {
166165 actualReadFileMap . set ( path , ( actualReadFileMap . get ( path ) || 0 ) + 1 ) ;
167166 }
168- if ( withoutBuildInfo && isBuildInfoFile ( path ) ) {
169- return undefined ;
170- }
171167 return originalReadFile . call ( host , path ) ;
172168 } ;
173- if ( withoutBuildInfo ) {
174- const originalWriteFile = host . writeFile ;
175- host . writeFile = ( fileName , content , writeByteOrder ) => {
176- return ! isBuildInfoFile ( fileName ) &&
177- originalWriteFile . call ( host , fileName , content , writeByteOrder ) ;
178- } ;
179- }
180169 builder . buildAllProjects ( ) ;
181170 generateSourceMapBaselineFiles ( fs , expectedMapFileNames ) ;
182171 generateBuildInfoSectionBaselineFiles ( fs , expectedBuildInfoFilesForSectionBaselines || emptyArray ) ;
183172 fs . makeReadonly ( ) ;
184173 return { fs, actualReadFileMap, host, builder } ;
185174 }
186175
187- function generateBaseline ( fs : vfs . FileSystem , proj : string , scenario : string , subScenario : string , withoutBuildInfo : boolean , baseFs : vfs . FileSystem ) {
176+ function generateBaseline ( fs : vfs . FileSystem , proj : string , scenario : string , subScenario : string , baseFs : vfs . FileSystem ) {
188177 const patch = fs . diff ( baseFs ) ;
189178 // tslint:disable-next-line:no-null-keyword
190- Harness . Baseline . runBaseline ( `tsbuild/${ proj } /${ subScenario . split ( " " ) . join ( "-" ) } /${ withoutBuildInfo ? "no-" : "" } buildInfo/ ${ scenario . split ( " " ) . join ( "-" ) } .js` , patch ? vfs . formatPatch ( patch ) : null ) ;
179+ Harness . Baseline . runBaseline ( `tsbuild/${ proj } /${ subScenario . split ( " " ) . join ( "-" ) } /${ scenario . split ( " " ) . join ( "-" ) } .js` , patch ? vfs . formatPatch ( patch ) : null ) ;
191180 }
192181
193182 function verifyReadFileCalls ( actualReadFileMap : Map < number > , expectedReadFiles : ReadonlyMap < number > ) {
@@ -209,31 +198,39 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
209198 return map ;
210199 }
211200
212- export interface ExpectedBuildOutputPerState {
201+ export interface ExpectedBuildOutput {
213202 expectedDiagnostics ?: ReadonlyArray < fakes . ExpectedDiagnostic > ;
214203 expectedReadFiles ?: ReadonlyMap < number > ;
215204 }
216205
217- export interface ExpectedBuildOutputDifferingWithBuildInfo extends ExpectedBuildOutputPerState {
206+ export interface BuildState extends ExpectedBuildOutput {
218207 modifyFs : ( fs : vfs . FileSystem ) => void ;
219- // Common ones
220- expectedDiagnostics ?: ReadonlyArray < fakes . ExpectedDiagnostic > ;
221- expectedReadFiles ?: ReadonlyMap < number > ;
222- // Differing
223- withBuildInfo ?: ExpectedBuildOutputPerState ;
224- withoutBuildInfo ?: ExpectedBuildOutputPerState ;
225208 }
226209
227- interface VerifyTsBuildInputWorker extends VerifyTsBuildInput {
228- withoutBuildInfo : boolean ;
210+ export interface VerifyTsBuildInput {
211+ scenario : string ;
212+ projFs : ( ) => vfs . FileSystem ;
213+ time : ( ) => number ;
214+ tick : ( ) => void ;
215+ proj : string ;
216+ rootNames : ReadonlyArray < string > ;
217+ expectedMapFileNames : ReadonlyArray < string > ;
218+ expectedBuildInfoFilesForSectionBaselines ?: ReadonlyArray < BuildInfoSectionBaselineFiles > ;
219+ lastProjectOutputJs : string ;
220+ initialBuild : BuildState ;
221+ outputFiles ?: ReadonlyArray < string > ;
222+ incrementalDtsChangedBuild ?: BuildState ;
223+ incrementalDtsUnchangedBuild ?: BuildState ;
224+ incrementalHeaderChangedBuild ?: BuildState ;
225+ baselineOnly ?: true ;
229226 }
230227
231- function verifyTsbuildOutputWorker ( {
228+ export function verifyTsbuildOutput ( {
232229 scenario, projFs, time, tick, proj, rootNames, outputFiles, baselineOnly,
233- expectedMapFileNames, expectedBuildInfoFilesForSectionBaselines, withoutBuildInfo , lastProjectOutputJs,
230+ expectedMapFileNames, expectedBuildInfoFilesForSectionBaselines, lastProjectOutputJs,
234231 initialBuild, incrementalDtsChangedBuild, incrementalDtsUnchangedBuild, incrementalHeaderChangedBuild
235- } : VerifyTsBuildInputWorker ) {
236- describe ( `tsc --b ${ proj } :: ${ scenario } ${ withoutBuildInfo ? " without build info" : "" } ` , ( ) => {
232+ } : VerifyTsBuildInput ) {
233+ describe ( `tsc --b ${ proj } :: ${ scenario } ` , ( ) => {
237234 let fs : vfs . FileSystem ;
238235 let actualReadFileMap : Map < number > ;
239236 let firstBuildTime : number ;
@@ -246,7 +243,6 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
246243 expectedMapFileNames,
247244 expectedBuildInfoFilesForSectionBaselines,
248245 modifyFs : initialBuild . modifyFs ,
249- withoutBuildInfo
250246 } ) ;
251247 ( { fs, actualReadFileMap, host } = result ) ;
252248 firstBuildTime = time ( ) ;
@@ -259,24 +255,19 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
259255 describe ( "initialBuild" , ( ) => {
260256 if ( ! baselineOnly ) {
261257 it ( `verify diagnostics` , ( ) => {
262- host . assertDiagnosticMessages ( ...( getValue ( initialBuild , withoutBuildInfo , " expectedDiagnostics" ) || emptyArray ) ) ;
258+ host . assertDiagnosticMessages ( ...( initialBuild . expectedDiagnostics || emptyArray ) ) ;
263259 } ) ;
264260 }
265261 it ( `Generates files matching the baseline` , ( ) => {
266- generateBaseline ( fs , proj , scenario , "initial Build" , withoutBuildInfo , projFs ( ) ) ;
262+ generateBaseline ( fs , proj , scenario , "initial Build" , projFs ( ) ) ;
267263 } ) ;
268- const expectedReadFiles = getValue ( initialBuild , withoutBuildInfo , "expectedReadFiles" ) ;
269- if ( ! baselineOnly && expectedReadFiles ) {
264+ if ( ! baselineOnly ) {
270265 it ( "verify readFile calls" , ( ) => {
271- verifyReadFileCalls ( actualReadFileMap , expectedReadFiles ) ;
266+ verifyReadFileCalls ( actualReadFileMap , Debug . assertDefined ( initialBuild . expectedReadFiles ) ) ;
272267 } ) ;
273268 }
274269 } ) ;
275270
276- function getValue < T extends keyof ExpectedBuildOutputPerState > ( value : ExpectedBuildOutputDifferingWithBuildInfo , withoutBuildInfo : boolean , key : T ) : ExpectedBuildOutputPerState [ T ] {
277- return ( withoutBuildInfo ? value . withoutBuildInfo && value . withoutBuildInfo [ key ] : value . withBuildInfo && value . withBuildInfo [ key ] ) || value [ key ] ;
278- }
279-
280271 function incrementalBuild ( subScenario : string , incrementalModifyFs : ( fs : vfs . FileSystem ) => void , incrementalExpectedDiagnostics : ReadonlyArray < fakes . ExpectedDiagnostic > | undefined , incrementalExpectedReadFiles : ReadonlyMap < number > | undefined ) {
281272 describe ( subScenario , ( ) => {
282273 let newFs : vfs . FileSystem ;
@@ -294,7 +285,6 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
294285 expectedMapFileNames,
295286 expectedBuildInfoFilesForSectionBaselines,
296287 modifyFs : incrementalModifyFs ,
297- withoutBuildInfo
298288 } ) ) ;
299289 assert . equal ( newFs . statSync ( lastProjectOutputJs ) . mtimeMs , time ( ) , "Second build timestamp is correct" ) ;
300290 } ) ;
@@ -309,11 +299,11 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
309299 } ) ;
310300 }
311301 it ( `Generates files matching the baseline` , ( ) => {
312- generateBaseline ( newFs , proj , scenario , subScenario , withoutBuildInfo , fs ) ;
302+ generateBaseline ( newFs , proj , scenario , subScenario , fs ) ;
313303 } ) ;
314- if ( ! baselineOnly && incrementalExpectedReadFiles ) {
304+ if ( ! baselineOnly ) {
315305 it ( "verify readFile calls" , ( ) => {
316- verifyReadFileCalls ( actualReadFileMap , incrementalExpectedReadFiles ) ;
306+ verifyReadFileCalls ( actualReadFileMap , Debug . assertDefined ( incrementalExpectedReadFiles ) ) ;
317307 } ) ;
318308 }
319309 it ( `Verify emit output file text is same when built clean` , ( ) => {
@@ -331,7 +321,6 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
331321 }
332322 }
333323 } ,
334- withoutBuildInfo
335324 } ) ;
336325
337326 for ( const outputFile of expectedOutputFiles ) {
@@ -346,52 +335,28 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
346335 incrementalBuild (
347336 "incremental declaration changes" ,
348337 incrementalDtsChangedBuild . modifyFs ,
349- getValue ( incrementalDtsChangedBuild , withoutBuildInfo , " expectedDiagnostics" ) ,
350- getValue ( incrementalDtsChangedBuild , withoutBuildInfo , " expectedReadFiles" ) ,
338+ incrementalDtsChangedBuild . expectedDiagnostics ,
339+ incrementalDtsChangedBuild . expectedReadFiles ,
351340 ) ;
352341 }
353342
354343 if ( incrementalDtsUnchangedBuild ) {
355344 incrementalBuild (
356345 "incremental declaration doesnt change" ,
357346 incrementalDtsUnchangedBuild . modifyFs ,
358- getValue ( incrementalDtsUnchangedBuild , withoutBuildInfo , " expectedDiagnostics" ) ,
359- getValue ( incrementalDtsUnchangedBuild , withoutBuildInfo , " expectedReadFiles" )
347+ incrementalDtsUnchangedBuild . expectedDiagnostics ,
348+ incrementalDtsUnchangedBuild . expectedReadFiles
360349 ) ;
361350 }
362351
363352 if ( incrementalHeaderChangedBuild ) {
364353 incrementalBuild (
365354 "incremental headers change without dts changes" ,
366355 incrementalHeaderChangedBuild . modifyFs ,
367- getValue ( incrementalHeaderChangedBuild , withoutBuildInfo , " expectedDiagnostics" ) ,
368- getValue ( incrementalHeaderChangedBuild , withoutBuildInfo , " expectedReadFiles" )
356+ incrementalHeaderChangedBuild . expectedDiagnostics ,
357+ incrementalHeaderChangedBuild . expectedReadFiles
369358 ) ;
370359 }
371360 } ) ;
372361 }
373-
374- export interface VerifyTsBuildInput {
375- scenario : string ;
376- projFs : ( ) => vfs . FileSystem ;
377- time : ( ) => number ;
378- tick : ( ) => void ;
379- proj : string ;
380- rootNames : ReadonlyArray < string > ;
381- expectedMapFileNames : ReadonlyArray < string > ;
382- expectedBuildInfoFilesForSectionBaselines ?: ReadonlyArray < BuildInfoSectionBaselineFiles > ;
383- lastProjectOutputJs : string ;
384- initialBuild : ExpectedBuildOutputDifferingWithBuildInfo ;
385- outputFiles ?: ReadonlyArray < string > ;
386- ignoreWithoutBuildInfo ?: boolean ;
387- incrementalDtsChangedBuild ?: ExpectedBuildOutputDifferingWithBuildInfo ;
388- incrementalDtsUnchangedBuild ?: ExpectedBuildOutputDifferingWithBuildInfo ;
389- incrementalHeaderChangedBuild ?: ExpectedBuildOutputDifferingWithBuildInfo ;
390- baselineOnly ?: true ;
391- }
392-
393- export function verifyTsbuildOutput ( input : VerifyTsBuildInput ) {
394- verifyTsbuildOutputWorker ( { ...input , withoutBuildInfo : false } ) ;
395- if ( ! input . ignoreWithoutBuildInfo ) verifyTsbuildOutputWorker ( { ...input , withoutBuildInfo : true } ) ;
396- }
397362}
0 commit comments