@@ -450,29 +450,34 @@ const comparisonItems = {
450
450
} ;
451
451
const plainModes = [ 'Date' , 'DateTime' , 'MonthDay' , 'Time' , 'YearMonth' ] ;
452
452
453
- const mode = 'Instant' ;
454
-
455
- for ( let count = 0 ; count < 1000 ; count ++ ) {
456
- let generatedData , fuzzed ;
457
- do {
458
- generatedData = { } ;
459
- fuzzed = goals [ mode ] . generate ( generatedData ) ;
460
- } while ( plainModes . includes ( mode ) && / [ 0 - 9 ] [ z Z ] / . test ( fuzzed ) ) ;
461
- try {
462
- const parsed = ES [ `ParseTemporal${ mode } String` ] ( fuzzed ) ;
463
- for ( let prop of comparisonItems [ mode ] ) {
464
- let expected = generatedData [ prop ] ;
465
- if ( prop !== 'ianaName' && prop !== 'offset' && prop !== 'calendar' ) expected = expected || 0 ;
466
- assert . equal ( parsed [ prop ] , expected ) ;
467
- }
468
- console . log ( `${ fuzzed } => ok` ) ;
469
- } catch ( e ) {
470
- if ( e instanceof assert . AssertionError ) {
471
- console . log ( `${ fuzzed } => parsed wrong: expected` , e . expected , 'actual' , e . actual ) ;
472
- console . log ( 'generated data:' , generatedData ) ;
473
- } else {
474
- console . log ( `${ fuzzed } failed!` , e ) ;
453
+ function fuzzMode ( mode ) {
454
+ console . log ( '// starting to fuzz ' + mode ) ;
455
+ for ( let count = 0 ; count < 1000 ; count ++ ) {
456
+ let generatedData , fuzzed ;
457
+ do {
458
+ generatedData = { } ;
459
+ fuzzed = goals [ mode ] . generate ( generatedData ) ;
460
+ } while ( plainModes . includes ( mode ) && / [ 0 - 9 ] [ z Z ] / . test ( fuzzed ) ) ;
461
+ try {
462
+ const parsed = ES [ `ParseTemporal${ mode } String` ] ( fuzzed ) ;
463
+ for ( let prop of comparisonItems [ mode ] ) {
464
+ let expected = generatedData [ prop ] ;
465
+ if ( prop !== 'ianaName' && prop !== 'offset' && prop !== 'calendar' ) expected = expected || 0 ;
466
+ assert . equal ( parsed [ prop ] , expected ) ;
467
+ }
468
+ console . log ( `${ fuzzed } => ok` ) ;
469
+ } catch ( e ) {
470
+ if ( e instanceof assert . AssertionError ) {
471
+ console . log ( `${ fuzzed } => parsed wrong: expected` , e . expected , 'actual' , e . actual ) ;
472
+ console . log ( 'generated data:' , generatedData ) ;
473
+ } else {
474
+ console . log ( `${ fuzzed } failed!` , e ) ;
475
+ }
476
+ return 0 ;
475
477
}
476
- break ;
477
478
}
479
+ console . log ( '// done fuzzing ' + mode ) ;
480
+ return 1 ;
478
481
}
482
+
483
+ Object . keys ( goals ) . every ( fuzzMode ) ;
0 commit comments