@@ -307,9 +307,9 @@ public void SuccessfulBuildMany_DTB ([Values] AndroidRuntime runtime)
307307 RunTest ( TestName , many : true , dtb : true , runner : SuccessfulBuild_RunTest , runtime : runtime ) ;
308308 }
309309
310- void SuccessfulBuild_RunTest ( TestProjectInfo testInfo , bool many , bool dtb , LocalBuilder builder )
310+ void SuccessfulBuild_RunTest ( TestProjectInfo testInfo , bool many , bool dtb , LocalBuilder builder , AndroidRuntime runtime )
311311 {
312- string [ ] parameters = GetBuildProperties ( builder , many , dtb , referenceAndroidX : false ) ;
312+ string [ ] parameters = GetBuildProperties ( builder , runtime , many , dtb , referenceAndroidX : false ) ;
313313 bool success = builder . Build ( testInfo . ProjectPath , GetBuildTarget ( dtb ) , parameters ) ;
314314
315315 CopyLogs ( testInfo , true ) ;
@@ -340,9 +340,9 @@ public void SuccessfulAndroidXApp ([Values] AndroidRuntime runtime)
340340 RunTest ( TestName , many : true , dtb : false , runner : SuccessfulBuild_AndroidX , runtime : runtime ) ;
341341 }
342342
343- void SuccessfulBuild_AndroidX ( TestProjectInfo testInfo , bool many , bool dtb , LocalBuilder builder )
343+ void SuccessfulBuild_AndroidX ( TestProjectInfo testInfo , bool many , bool dtb , LocalBuilder builder , AndroidRuntime runtime )
344344 {
345- string [ ] parameters = GetBuildProperties ( builder , many , dtb , referenceAndroidX : true , "__HAVE_ANDROIDX__" ) ;
345+ string [ ] parameters = GetBuildProperties ( builder , runtime , many , dtb , referenceAndroidX : true , "__HAVE_ANDROIDX__" ) ;
346346 bool success = builder . Build ( testInfo . ProjectPath , GetBuildTarget ( dtb ) , parameters ) ;
347347
348348 CopyLogs ( testInfo , true ) ;
@@ -383,9 +383,9 @@ public void FailedBuildMany_ConflictingFragment ([Values] AndroidRuntime runtime
383383 RunTest ( TestName , many : true , dtb : false , runner : FailedBuild_ConflictingFragment_RunTest , runtime : runtime ) ;
384384 }
385385
386- void FailedBuild_ConflictingFragment_RunTest ( TestProjectInfo testInfo , bool many , bool dtb , LocalBuilder builder )
386+ void FailedBuild_ConflictingFragment_RunTest ( TestProjectInfo testInfo , bool many , bool dtb , LocalBuilder builder , AndroidRuntime runtime )
387387 {
388- string [ ] parameters = GetBuildProperties ( builder , many , dtb , referenceAndroidX : false , "NOT_CONFLICTING_FRAGMENT" ) ;
388+ string [ ] parameters = GetBuildProperties ( builder , runtime , many , dtb , referenceAndroidX : false , "NOT_CONFLICTING_FRAGMENT" ) ;
389389 bool success = builder . Build ( testInfo . ProjectPath , GetBuildTarget ( dtb ) , parameters ) ;
390390
391391 CopyLogs ( testInfo , true ) ;
@@ -411,9 +411,9 @@ public void FailedBuildMany_ConflictingTextView ([Values] AndroidRuntime runtime
411411 RunTest ( TestName , many : true , dtb : false , runner : FailedBuild_ConflictingTextView_RunTest , runtime : runtime ) ;
412412 }
413413
414- void FailedBuild_ConflictingTextView_RunTest ( TestProjectInfo testInfo , bool many , bool dtb , LocalBuilder builder )
414+ void FailedBuild_ConflictingTextView_RunTest ( TestProjectInfo testInfo , bool many , bool dtb , LocalBuilder builder , AndroidRuntime runtime )
415415 {
416- string [ ] parameters = GetBuildProperties ( builder , many , dtb , referenceAndroidX : false , "NOT_CONFLICTING_TEXTVIEW" ) ;
416+ string [ ] parameters = GetBuildProperties ( builder , runtime , many , dtb , referenceAndroidX : false , "NOT_CONFLICTING_TEXTVIEW" ) ;
417417 bool success = builder . Build ( testInfo . ProjectPath , GetBuildTarget ( dtb ) , parameters ) ;
418418
419419 CopyLogs ( testInfo , true ) ;
@@ -439,9 +439,9 @@ public void FailedBuildMany_ConflictingButton ([Values] AndroidRuntime runtime)
439439 RunTest ( TestName , many : true , dtb : false , runner : FailedBuild_ConflictingButton_RunTest , runtime : runtime ) ;
440440 }
441441
442- void FailedBuild_ConflictingButton_RunTest ( TestProjectInfo testInfo , bool many , bool dtb , LocalBuilder builder )
442+ void FailedBuild_ConflictingButton_RunTest ( TestProjectInfo testInfo , bool many , bool dtb , LocalBuilder builder , AndroidRuntime runtime )
443443 {
444- string [ ] parameters = GetBuildProperties ( builder , many , dtb , referenceAndroidX : false , "NOT_CONFLICTING_BUTTON" ) ;
444+ string [ ] parameters = GetBuildProperties ( builder , runtime , many , dtb , referenceAndroidX : false , "NOT_CONFLICTING_BUTTON" ) ;
445445 bool success = builder . Build ( testInfo . ProjectPath , GetBuildTarget ( dtb ) , parameters ) ;
446446
447447 CopyLogs ( testInfo , true ) ;
@@ -467,9 +467,9 @@ public void FailedBuildMany_ConflictingLinearLayout ([Values] AndroidRuntime run
467467 RunTest ( TestName , many : true , dtb : false , runner : FailedBuild_ConflictingLinearLayout_RunTest , runtime : runtime ) ;
468468 }
469469
470- void FailedBuild_ConflictingLinearLayout_RunTest ( TestProjectInfo testInfo , bool many , bool dtb , LocalBuilder builder )
470+ void FailedBuild_ConflictingLinearLayout_RunTest ( TestProjectInfo testInfo , bool many , bool dtb , LocalBuilder builder , AndroidRuntime runtime )
471471 {
472- string [ ] parameters = GetBuildProperties ( builder , many , dtb , referenceAndroidX : false , "NOT_CONFLICTING_LINEARLAYOUT" ) ;
472+ string [ ] parameters = GetBuildProperties ( builder , runtime , many , dtb , referenceAndroidX : false , "NOT_CONFLICTING_LINEARLAYOUT" ) ;
473473 bool success = builder . Build ( testInfo . ProjectPath , GetBuildTarget ( dtb ) , parameters ) ;
474474
475475 CopyLogs ( testInfo , true ) ;
@@ -495,9 +495,9 @@ public void FailedBuildMany_ConflictingRelativeLayout ([Values] AndroidRuntime r
495495 RunTest ( TestName , many : true , dtb : false , runner : FailedBuild_ConflictingRelativeLayout_RunTest , runtime : runtime ) ;
496496 }
497497
498- void FailedBuild_ConflictingRelativeLayout_RunTest ( TestProjectInfo testInfo , bool many , bool dtb , LocalBuilder builder )
498+ void FailedBuild_ConflictingRelativeLayout_RunTest ( TestProjectInfo testInfo , bool many , bool dtb , LocalBuilder builder , AndroidRuntime runtime )
499499 {
500- string [ ] parameters = GetBuildProperties ( builder , many , dtb , referenceAndroidX : false , "NOT_CONFLICTING_RELATIVELAYOUT" ) ;
500+ string [ ] parameters = GetBuildProperties ( builder , runtime , many , dtb , referenceAndroidX : false , "NOT_CONFLICTING_RELATIVELAYOUT" ) ;
501501 bool success = builder . Build ( testInfo . ProjectPath , GetBuildTarget ( dtb ) , parameters ) ;
502502
503503 CopyLogs ( testInfo , true ) ;
@@ -516,11 +516,30 @@ string GetBuildTarget (bool isDTB)
516516 return isDTB ? "Compile" : "SignAndroidPackage" ;
517517 }
518518
519- string [ ] GetBuildProperties ( LocalBuilder builder , bool manyBuild , bool dtbBuild , bool referenceAndroidX , params string [ ] extraConstants )
519+ string [ ] GetBuildProperties ( LocalBuilder builder , AndroidRuntime runtime , bool manyBuild , bool dtbBuild , bool referenceAndroidX , params string [ ] extraConstants )
520520 {
521+ var noWarn = new List < string > {
522+ "CA1416" ,
523+ "CS0414" ,
524+ "CS1591" ,
525+ "XA1005" ,
526+ "XA4225" ,
527+ } ;
528+
529+ if ( runtime == AndroidRuntime . NativeAOT ) {
530+ // We disable these only on CI, since they would cause the tests to fail there.
531+ string ? runningOnCI = Environment . GetEnvironmentVariable ( "RunningOnCI" ) ;
532+ if ( runningOnCI == "true" ) {
533+ Console . WriteLine ( "CodeBehindTests: using NativeAOT and running on CI, disabling warnings." ) ;
534+ noWarn . Add ( "IL2091" ) ;
535+ noWarn . Add ( "IL3053" ) ;
536+ noWarn . Add ( "XA1040" ) ;
537+ }
538+ }
539+
521540 var ret = new List < string > {
522541 "AndroidGenerateLayoutBindings=true" ,
523- "\" NoWarn=CS0414;CA1416;CS1591;XA1005;XA4225 \" "
542+ $ "\" NoWarn={ String . Join ( ';' , noWarn ) } \" "
524543 } ;
525544 if ( manyBuild )
526545 ret . Add ( "ForceParallelBuild=true" ) ;
@@ -586,7 +605,7 @@ void AssertHaveCompilerError (bool haveError, string fileName, int line)
586605 /// <param name="many">Generate code in parallel if <c>true</c>, serially otherwise</param>
587606 /// <param name="dtb">Test design-time build if <c>true</c>, regular build otherwise</param>
588607 /// <param name="runner">Action consituting the main body of the test. Passed parameters are described above in the remarks section.</param>
589- void RunTest ( string testName , bool many , bool dtb , Action < TestProjectInfo , bool , bool , LocalBuilder > runner , AndroidRuntime runtime )
608+ void RunTest ( string testName , bool many , bool dtb , Action < TestProjectInfo , bool , bool , LocalBuilder , AndroidRuntime > runner , AndroidRuntime runtime )
590609 {
591610 bool isRelease = runtime == AndroidRuntime . NativeAOT ;
592611 if ( IgnoreUnsupportedConfiguration ( runtime , release : isRelease ) ) {
@@ -599,7 +618,7 @@ void RunTest (string testName, bool many, bool dtb, Action<TestProjectInfo, bool
599618 var testInfo = new TestProjectInfo ( ProjectName , testName , temporaryProjectDir , TestOutputDir , runtime ) ;
600619
601620 try {
602- runner ( testInfo , many , dtb , builder ) ;
621+ runner ( testInfo , many , dtb , builder , runtime ) ;
603622
604623 if ( many ) {
605624 Assert . That ( WasParsedInParallel ( testInfo ) , Is . True , "Should have been parsed in parallel" ) ;
0 commit comments