Skip to content

Commit 0f1fb8a

Browse files
committed
Let's try this
1 parent 8199c8e commit 0f1fb8a

File tree

1 file changed

+37
-18
lines changed

1 file changed

+37
-18
lines changed

src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/CodeBehindTests.cs

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)