@@ -23,6 +23,10 @@ void main() {
23
23
const String soundNullSafetyMessage = 'Info: Compiling with sound null safety' ;
24
24
const String unsoundNullSafetyMessage =
25
25
'Info: Compiling without sound null safety' ;
26
+ const String unsoundNullSafetyError =
27
+ 'Error: the flag --no-sound-null-safety is not supported in Dart 3.' ;
28
+ const String unsoundNullSafetyWarning =
29
+ 'Warning: the flag --no-sound-null-safety is deprecated and pending removal.' ;
26
30
27
31
void defineCompileTests () {
28
32
final isRunningOnIA32 = Platform .version.contains ('ia32' );
@@ -538,11 +542,10 @@ void main() {}
538
542
],
539
543
);
540
544
541
- expect (result.stdout, contains (unsoundNullSafetyMessage ));
545
+ expect (result.stdout, contains (unsoundNullSafetyError ));
542
546
expect (result.stderr, isEmpty);
543
- expect (result.exitCode, 0 );
544
- expect (File (outFile).existsSync (), true ,
545
- reason: 'File not found: $outFile ' );
547
+ expect (result.exitCode, 64 );
548
+ expect (File (outFile).existsSync (), false , reason: 'File found: $outFile ' );
546
549
}, skip: isRunningOnIA32);
547
550
548
551
test ('Compile and run exe with --sound-null-safety' , () async {
@@ -579,40 +582,6 @@ void main() {}
579
582
expect (result.stdout, contains ('sound' ));
580
583
}, skip: isRunningOnIA32);
581
584
582
- test ('Compile and run exe with --no-sound-null-safety' , () async {
583
- final p = project (mainSrc: '''void main() {
584
- print((<int?>[] is List<int>) ? 'unsound' : 'oh no');
585
- }''' );
586
- final inFile = path.canonicalize (path.join (p.dirPath, p.relativeFilePath));
587
- final outFile = path.canonicalize (path.join (p.dirPath, 'myexe' ));
588
-
589
- var result = await p.run (
590
- [
591
- 'compile' ,
592
- 'exe' ,
593
- '--no-sound-null-safety' ,
594
- '-o' ,
595
- outFile,
596
- inFile,
597
- ],
598
- );
599
-
600
- expect (result.stdout, contains (unsoundNullSafetyMessage));
601
- expect (result.stderr, isEmpty);
602
- expect (result.exitCode, 0 );
603
- expect (File (outFile).existsSync (), true ,
604
- reason: 'File not found: $outFile ' );
605
-
606
- result = Process .runSync (
607
- outFile,
608
- [],
609
- );
610
-
611
- expect (result.stdout, contains ('unsound' ));
612
- expect (result.stderr, isEmpty);
613
- expect (result.exitCode, 0 );
614
- }, skip: isRunningOnIA32);
615
-
616
585
test ('Compile exe without info' , () async {
617
586
final p = project (mainSrc: '''void main() {}''' );
618
587
final inFile = path.canonicalize (path.join (p.dirPath, p.relativeFilePath));
@@ -804,6 +773,7 @@ void main() {}
804
773
);
805
774
806
775
expect (result.stdout, contains (unsoundNullSafetyMessage));
776
+ expect (result.stdout, contains (unsoundNullSafetyWarning));
807
777
expect (result.stderr, isEmpty);
808
778
expect (result.exitCode, 0 );
809
779
expect (File (outFile).existsSync (), true ,
@@ -958,6 +928,7 @@ void main() {}
958
928
);
959
929
960
930
expect (result.stderr, contains (unsoundNullSafetyMessage));
931
+ expect (result.stdout, contains (unsoundNullSafetyWarning));
961
932
expect (result.exitCode, 0 );
962
933
expect (File (outFile).existsSync (), true ,
963
934
reason: 'File not found: $outFile ' );
@@ -1006,6 +977,7 @@ void main() {}
1006
977
);
1007
978
1008
979
expect (result.stderr, isNot (contains (soundNullSafetyMessage)));
980
+ expect (result.stdout, contains (unsoundNullSafetyWarning));
1009
981
expect (result.exitCode, 0 );
1010
982
expect (File (outFile).existsSync (), true ,
1011
983
reason: 'File not found: $outFile ' );
@@ -1126,10 +1098,9 @@ void main() {}
1126
1098
],
1127
1099
);
1128
1100
1129
- expect (result.stderr, contains (unsoundNullSafetyMessage));
1130
- expect (result.exitCode, 0 );
1131
- expect (File (outFile).existsSync (), true ,
1132
- reason: 'File not found: $outFile ' );
1101
+ expect (result.stdout, contains (unsoundNullSafetyError));
1102
+ expect (result.exitCode, 64 );
1103
+ expect (File (outFile).existsSync (), false , reason: 'File found: $outFile ' );
1133
1104
});
1134
1105
1135
1106
test ('Compile JIT snapshot with --sound-null-safety' , () async {
@@ -1175,9 +1146,9 @@ void main() {}
1175
1146
);
1176
1147
1177
1148
expect (result.stderr, isNot (contains (soundNullSafetyMessage)));
1178
- expect (result.exitCode, 0 );
1179
- expect (File (outFile). existsSync (), true ,
1180
- reason: 'File not found: $outFile ' );
1149
+ expect (result.stdout, contains (unsoundNullSafetyError) );
1150
+ expect (result.exitCode, 64 );
1151
+ expect ( File (outFile). existsSync (), false , reason: 'File found: $outFile ' );
1181
1152
});
1182
1153
1183
1154
test ('Compile JIT snapshot with training args' , () async {
0 commit comments