diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidGradleProjectTests.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidGradleProjectTests.cs index a1d13e8d1a0..16f83aefd75 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidGradleProjectTests.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidGradleProjectTests.cs @@ -214,6 +214,7 @@ public void BuildIncremental ([Values] AndroidRuntime runtime) if (IgnoreUnsupportedConfiguration (runtime, release: isRelease)) { return; } + AssertCommercialBuild (); // Incremental build assertions require Fast Deployment var gradleProject = AndroidGradleProject.CreateDefault (GradleTestProjectDir); var gradleModule = gradleProject.Modules.First (); diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs index f04aabcb3dd..fa01fb3d335 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs @@ -277,6 +277,7 @@ public void RepetiviteBuildUpdateSingleResource ([Values] AndroidRuntime runtime if (IgnoreUnsupportedConfiguration (runtime, release: isRelease)) { return; } + AssertCommercialBuild (); // Incremental build assertions require Fast Deployment var proj = new XamarinAndroidApplicationProject { IsRelease = isRelease, @@ -543,7 +544,9 @@ protected override void OnClick() Assert.IsFalse (StringAssertEx.ContainsText (b.LastBuildOutput, "AndroidResgen: Warning while updating Resource XML"), "Warning while processing resources should not have been raised."); Assert.IsTrue (b.Build (proj, doNotCleanupOnUpdate: true), "Build should have succeeded."); - Assert.IsTrue (b.Output.IsTargetSkipped ("_GenerateJavaStubs"), "Target _GenerateJavaStubs should have been skipped"); + if (TestEnvironment.CommercialBuildAvailable) { + Assert.IsTrue (b.Output.IsTargetSkipped ("_GenerateJavaStubs"), "Target _GenerateJavaStubs should have been skipped"); + } lib.Touch ("CustomTextView.cs"); @@ -1084,10 +1087,14 @@ public string GetFoo () { appBuilder.Output.AssertTargetIsNotSkipped ("_UpdateAndroidResgen"); foo.Timestamp = DateTimeOffset.UtcNow; Assert.IsTrue (libBuilder.Build (libProj, doNotCleanupOnUpdate: true, saveProject: false), "Library project should have built"); - libBuilder.Output.AssertTargetIsSkipped (target); + if (TestEnvironment.CommercialBuildAvailable) { + libBuilder.Output.AssertTargetIsSkipped (target); + } appBuilder.BuildLogFile = "build1.log"; Assert.IsTrue (appBuilder.Build (appProj, doNotCleanupOnUpdate: true, saveProject: false), "Application Build should have succeeded."); - appBuilder.Output.AssertTargetIsSkipped ("_UpdateAndroidResgen"); + if (TestEnvironment.CommercialBuildAvailable) { + appBuilder.Output.AssertTargetIsSkipped ("_UpdateAndroidResgen"); + } // Check Contents of the file in the apk are correct. string apk = Path.Combine (Root, appBuilder.ProjectDirectory, appProj.OutputPath, appProj.PackageName + "-Signed.apk"); byte[] rawContentBuildOne = ZipHelper.ReadFileFromZip (apk, @@ -1169,12 +1176,16 @@ public void BuildAppWithManagedResourceParser ([Values] AndroidRuntime runtime) appBuilder.BuildLogFile = "build.log"; Assert.IsTrue (appBuilder.Build (appProj, doNotCleanupOnUpdate: true), "Normal Application Build should have succeeded."); - Assert.IsTrue (appProj.CreateBuildOutput (appBuilder).IsTargetSkipped ("_ManagedUpdateAndroidResgen", defaultIfNotUsed: true), - "Target '_ManagedUpdateAndroidResgen' should not have run."); + if (TestEnvironment.CommercialBuildAvailable) { + Assert.IsTrue (appProj.CreateBuildOutput (appBuilder).IsTargetSkipped ("_ManagedUpdateAndroidResgen", defaultIfNotUsed: true), + "Target '_ManagedUpdateAndroidResgen' should not have run."); + } appBuilder.BuildLogFile = "designtimebuild.log"; Assert.IsTrue (appBuilder.DesignTimeBuild (appProj, doNotCleanupOnUpdate: true), "DesignTime Application Build should have succeeded."); - Assert.IsTrue (appProj.CreateBuildOutput (appBuilder).IsTargetSkipped ("_ManagedUpdateAndroidResgen", defaultIfNotUsed: true), - "Target '_ManagedUpdateAndroidResgen' should not have run."); + if (TestEnvironment.CommercialBuildAvailable) { + Assert.IsTrue (appProj.CreateBuildOutput (appBuilder).IsTargetSkipped ("_ManagedUpdateAndroidResgen", defaultIfNotUsed: true), + "Target '_ManagedUpdateAndroidResgen' should not have run."); + } Assert.IsTrue (appBuilder.Clean (appProj), "Clean should have succeeded"); Assert.IsTrue (File.Exists (designerFile), $"'{designerFile}' should not have been cleaned."); @@ -1451,12 +1462,14 @@ public void CustomViewAddResourceId ([Values] AndroidRuntime runtime) proj.Touch (@"Resources\layout\Main.axml"); Assert.IsTrue (b.Build (proj, doNotCleanupOnUpdate: true), "second build should have succeeded"); - Assert.IsTrue ( - b.Output.IsTargetPartiallyBuilt ("_CompileResources"), - "The target _CompileResources should have been partially built"); - Assert.IsTrue ( - b.Output.IsTargetSkipped ("_FixupCustomViewsForAapt2", defaultIfNotUsed: true), - "The target _FixupCustomViewsForAapt2 should have been skipped"); + if (TestEnvironment.CommercialBuildAvailable) { + Assert.IsTrue ( + b.Output.IsTargetPartiallyBuilt ("_CompileResources"), + "The target _CompileResources should have been partially built"); + Assert.IsTrue ( + b.Output.IsTargetSkipped ("_FixupCustomViewsForAapt2", defaultIfNotUsed: true), + "The target _FixupCustomViewsForAapt2 should have been skipped"); + } var r_java = Path.Combine (Root, b.ProjectDirectory, proj.IntermediateOutputPath, "android", "src", proj.PackageNameJavaIntermediatePath, "R.java"); FileAssert.Exists (r_java); @@ -1516,7 +1529,9 @@ BuildItem CreateItem (string include) => using (var b = CreateApkBuilder ()) { Assert.IsTrue (b.Build (proj), "first build should have succeeded."); Assert.IsTrue (b.Build (proj), "second build should have succeeded."); - b.Output.AssertTargetIsSkipped ("_CompileResources"); + if (TestEnvironment.CommercialBuildAvailable) { + b.Output.AssertTargetIsSkipped ("_CompileResources"); + } } } diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AotTests.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AotTests.cs index 92ab6c1e846..83dc2d24605 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AotTests.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AotTests.cs @@ -239,12 +239,14 @@ public void BuildAotApplicationWithSpecialCharactersInProject (string testName, } } Assert.IsTrue (b.Build (proj), "Second Build should have succeeded."); - Assert.IsTrue ( - b.Output.IsTargetSkipped ("_CompileJava"), - "the _CompileJava target should be skipped"); - Assert.IsTrue ( - b.Output.IsTargetSkipped ("_BuildApkEmbed"), - "the _BuildApkEmbed target should be skipped"); + if (TestEnvironment.CommercialBuildAvailable) { + Assert.IsTrue ( + b.Output.IsTargetSkipped ("_CompileJava"), + "the _CompileJava target should be skipped"); + Assert.IsTrue ( + b.Output.IsTargetSkipped ("_BuildApkEmbed"), + "the _BuildApkEmbed target should be skipped"); + } } } @@ -287,12 +289,14 @@ public void BuildAotApplicationWithSpecialCharactersInProject (string testName, } } Assert.IsTrue (b.Build (proj), "Second Build should have succeeded."); - Assert.IsTrue ( - b.Output.IsTargetSkipped ("_CompileJava"), - "the _CompileJava target should be skipped"); - Assert.IsTrue ( - b.Output.IsTargetSkipped ("_BuildApkEmbed"), - "the _BuildApkEmbed target should be skipped"); + if (TestEnvironment.CommercialBuildAvailable) { + Assert.IsTrue ( + b.Output.IsTargetSkipped ("_CompileJava"), + "the _CompileJava target should be skipped"); + Assert.IsTrue ( + b.Output.IsTargetSkipped ("_BuildApkEmbed"), + "the _BuildApkEmbed target should be skipped"); + } } } diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AssetPackTests.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AssetPackTests.cs index 5b1a3831c71..048d6814c0c 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AssetPackTests.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AssetPackTests.cs @@ -219,9 +219,11 @@ public void BuildApplicationWithAssetPack ([Values] bool isRelease, [Values] And Assert.IsFalse (zip.ContainsEntry ("assetpack1/resources.pb"), "aab should not contain assetpack1/resources.pb"); } Assert.IsTrue (appBuilder.Build (app, doNotCleanupOnUpdate: true, saveProject: false), $"{app.ProjectName} should succeed"); - appBuilder.Output.AssertTargetIsSkipped ("_CreateAssetPackManifests"); - appBuilder.Output.AssertTargetIsSkipped ("_BuildAssetPacks"); - appBuilder.Output.AssertTargetIsSkipped ("_GenerateAndroidAssetsDir"); + if (TestEnvironment.CommercialBuildAvailable) { + appBuilder.Output.AssertTargetIsSkipped ("_CreateAssetPackManifests"); + appBuilder.Output.AssertTargetIsSkipped ("_BuildAssetPacks"); + appBuilder.Output.AssertTargetIsSkipped ("_GenerateAndroidAssetsDir"); + } FileAssert.Exists (asset3File, $"file {asset3File} should exist."); asset3.TextContent = () => "Asset3 Updated"; asset3.Timestamp = DateTime.UtcNow.AddSeconds(1); diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs index 50ff67da91b..6276cba7eb4 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs @@ -97,6 +97,7 @@ public void BindingLibraryIncremental (string classParser, AndroidRuntime runtim if (IgnoreUnsupportedConfiguration (runtime, release: isRelease)) { return; } + AssertCommercialBuild (); // Incremental build assertions require Fast Deployment var targets = new List { "_ExportJarToXml", @@ -883,8 +884,10 @@ public void BindingWithAndroidJavaSource ([Values] AndroidRuntime runtime) "generated", "src", "Com.Xamarin.Android.Test.Msbuildtest.IJavaSourceTestInterface.cs"); StringAssertEx.ContainsText (File.ReadAllLines (generatedIface), "string GreetWithQuestion (string name, global::Java.Util.Date date, string question);"); Assert.IsTrue (libBuilder.Build (lib), "Library build should have succeeded."); - Assert.IsTrue (libBuilder.Output.IsTargetSkipped ("_CompileBindingJava", defaultIfNotUsed: true), $"`_CompileBindingJava` should be skipped on second build!"); - Assert.IsTrue (libBuilder.Output.IsTargetSkipped ("_ClearGeneratedManagedBindings", defaultIfNotUsed: true), $"`_ClearGeneratedManagedBindings` should be skipped on second build!"); + if (TestEnvironment.CommercialBuildAvailable) { + Assert.IsTrue (libBuilder.Output.IsTargetSkipped ("_CompileBindingJava", defaultIfNotUsed: true), $"`_CompileBindingJava` should be skipped on second build!"); + Assert.IsTrue (libBuilder.Output.IsTargetSkipped ("_ClearGeneratedManagedBindings", defaultIfNotUsed: true), $"`_ClearGeneratedManagedBindings` should be skipped on second build!"); + } FileAssert.Exists (generatedCode, $"'{generatedCode}' should have not be deleted on second build."); Assert.IsTrue (libBuilder.DesignTimeBuild (lib, target: "UpdateGeneratedFiles"), "DTB should have succeeded."); FileAssert.Exists (generatedCode, $"'{generatedCode}' should have not be deleted on DTB build."); diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest2.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest2.cs index 1b553987264..b4dcb56aa97 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest2.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest2.cs @@ -896,6 +896,7 @@ public void BuildXamarinFormsMapsApplication ([Values] bool multidex, [Values] A if (IgnoreUnsupportedConfiguration (runtime, release: isRelease)) { return; } + AssertCommercialBuild (); // Incremental build assertions require Fast Deployment var proj = new XamarinFormsMapsApplicationProject { IsRelease = isRelease, @@ -1197,17 +1198,19 @@ public CustomTextView(Context context, IAttributeSet attributes) : base(context, FileAssert.Exists (designtime_build_props, "designtime/build.props should exist after the second `Build`."); //NOTE: none of these targets should run, since we have not actually changed anything! - var targetsToBeSkipped = new [] { - //TODO: We would like for this assertion to work, but the item group changes between DTB and regular builds - // $(IntermediateOutputPath)designtime\Resource.designer.cs -> Resources\Resource.designer.cs - // And so the built assembly changes between DTB and regular build, triggering `_LinkAssembliesNoShrink` - //"_LinkAssembliesNoShrink", - "_UpdateAndroidResgen", - "_BuildLibraryImportsCache", - "_CompileJava", - }; - foreach (var targetName in targetsToBeSkipped) { - Assert.IsTrue (b.Output.IsTargetSkipped (targetName), $"`{targetName}` should be skipped!"); + if (TestEnvironment.CommercialBuildAvailable) { + var targetsToBeSkipped = new [] { + //TODO: We would like for this assertion to work, but the item group changes between DTB and regular builds + // $(IntermediateOutputPath)designtime\Resource.designer.cs -> Resources\Resource.designer.cs + // And so the built assembly changes between DTB and regular build, triggering `_LinkAssembliesNoShrink` + //"_LinkAssembliesNoShrink", + "_UpdateAndroidResgen", + "_BuildLibraryImportsCache", + "_CompileJava", + }; + foreach (var targetName in targetsToBeSkipped) { + Assert.IsTrue (b.Output.IsTargetSkipped (targetName), $"`{targetName}` should be skipped!"); + } } b.Target = "Clean"; @@ -1347,13 +1350,15 @@ public void CheckTimestamps ([Values] bool isRelease, [Values] AndroidRuntime ru //One last build with no changes Assert.IsTrue (b.Build (proj), "third build should have succeeded."); - // NativeAOT always runs the linking step - if (runtime != AndroidRuntime.NativeAOT) { - b.Output.AssertTargetIsSkipped (isRelease ? KnownTargets.LinkAssembliesShrink : KnownTargets.LinkAssembliesNoShrink); + if (TestEnvironment.CommercialBuildAvailable) { + // NativeAOT always runs the linking step + if (runtime != AndroidRuntime.NativeAOT) { + b.Output.AssertTargetIsSkipped (isRelease ? KnownTargets.LinkAssembliesShrink : KnownTargets.LinkAssembliesNoShrink); + } + b.Output.AssertTargetIsSkipped ("_UpdateAndroidResgen"); + b.Output.AssertTargetIsSkipped ("_BuildLibraryImportsCache"); + b.Output.AssertTargetIsSkipped ("_CompileJava"); } - b.Output.AssertTargetIsSkipped ("_UpdateAndroidResgen"); - b.Output.AssertTargetIsSkipped ("_BuildLibraryImportsCache"); - b.Output.AssertTargetIsSkipped ("_CompileJava"); } } diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs index 80223eb77bd..0818b832464 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs @@ -22,6 +22,7 @@ public void BasicApplicationRepetitiveBuild ([Values] AndroidRuntime runtime) if (IgnoreUnsupportedConfiguration (runtime, release: isRelease)) { return; } + AssertCommercialBuild (); // Incremental build assertions require Fast Deployment var proj = new XamarinAndroidApplicationProject { IsRelease = isRelease, }; @@ -68,6 +69,7 @@ public void BasicApplicationRepetitiveReleaseBuild ([Values] AndroidRuntime runt if (IgnoreUnsupportedConfiguration (runtime, release: isRelease)) { return; } + AssertCommercialBuild (); // Incremental build assertions require Fast Deployment if (runtime != AndroidRuntime.MonoVM) { // temporarily Assert.Ignore ("Runtimes other than MonoVM are currently broken here."); @@ -352,6 +354,7 @@ public void JavacTaskDoesNotRunOnSecondBuild ([Values] AndroidRuntime runtime) if (IgnoreUnsupportedConfiguration (runtime, release: isRelease)) { return; } + AssertCommercialBuild (); // Incremental build assertions require Fast Deployment var app = new XamarinAndroidApplicationProject () { IsRelease = isRelease, @@ -532,6 +535,7 @@ public void AppProjectTargetsDoNotBreak ([Values] AndroidRuntime runtime) if (IgnoreUnsupportedConfiguration (runtime, release: isRelease)) { return; } + AssertCommercialBuild (); // Incremental build assertions require Fast Deployment var targets = new List<(string target, bool ignoreOnNAOT)> { ("_GeneratePackageManagerJava", true), // TODO: NativeAOT doesn't skip this target on 3rd attempt, check if that's ok? @@ -670,6 +674,7 @@ public void ManifestMergerIncremental ([Values] AndroidRuntime runtime) if (IgnoreUnsupportedConfiguration (runtime, release: isRelease)) { return; } + AssertCommercialBuild (); // Incremental build assertions require Fast Deployment var proj = new XamarinAndroidApplicationProject { IsRelease = isRelease, @@ -746,16 +751,18 @@ public void ProduceReferenceAssembly ([Values] AndroidRuntime runtime) Assert.IsTrue (libBuilder.Build (lib, doNotCleanupOnUpdate: true, saveProject: false), "second library build should have succeeded."); Assert.IsTrue (appBuilder.Build (app, doNotCleanupOnUpdate: true, saveProject: false), "second app build should have succeeded."); - appBuilder.Output.AssertTargetIsSkipped ("CoreCompile"); - appBuilder.Output.AssertTargetIsSkipped ("_BuildLibraryImportsCache"); - appBuilder.Output.AssertTargetIsSkipped ("_ResolveLibraryProjectImports"); - appBuilder.Output.AssertTargetIsSkipped ("_GenerateJavaStubs"); + if (TestEnvironment.CommercialBuildAvailable) { + appBuilder.Output.AssertTargetIsSkipped ("CoreCompile"); + appBuilder.Output.AssertTargetIsSkipped ("_BuildLibraryImportsCache"); + appBuilder.Output.AssertTargetIsSkipped ("_ResolveLibraryProjectImports"); + appBuilder.Output.AssertTargetIsSkipped ("_GenerateJavaStubs"); - appBuilder.Output.AssertTargetIsPartiallyBuilt (KnownTargets.LinkAssembliesNoShrink); + appBuilder.Output.AssertTargetIsPartiallyBuilt (KnownTargets.LinkAssembliesNoShrink); - appBuilder.Output.AssertTargetIsNotSkipped ("_BuildApkEmbed"); - appBuilder.Output.AssertTargetIsNotSkipped ("_CopyPackage"); - appBuilder.Output.AssertTargetIsNotSkipped ("_Sign"); + appBuilder.Output.AssertTargetIsNotSkipped ("_BuildApkEmbed"); + appBuilder.Output.AssertTargetIsNotSkipped ("_CopyPackage"); + appBuilder.Output.AssertTargetIsNotSkipped ("_Sign"); + } } } @@ -848,6 +855,7 @@ public void LinkAssembliesNoShrink ([Values] AndroidRuntime runtime) if (IgnoreUnsupportedConfiguration (runtime, release: isRelease)) { return; } + AssertCommercialBuild (); // Incremental build assertions require Fast Deployment var proj = new XamarinFormsAndroidApplicationProject { IsRelease = isRelease, }; @@ -990,13 +998,15 @@ public CustomTextView(Context context, IAttributeSet attributes) : base(context, appBuilder.BuildLogFile = "build2.log"; Assert.IsTrue (appBuilder.Build (app, doNotCleanupOnUpdate: true, saveProject: false), "second app build should have succeeded."); - var targetsShouldSkip = new [] { - "_BuildLibraryImportsCache", - "_ResolveLibraryProjectImports", - "_ConvertCustomView", - }; - foreach (var target in targetsShouldSkip) { - Assert.IsTrue (appBuilder.Output.IsTargetSkipped (target), $"`{target}` should be skipped!"); + if (TestEnvironment.CommercialBuildAvailable) { + var targetsShouldSkip = new [] { + "_BuildLibraryImportsCache", + "_ResolveLibraryProjectImports", + "_ConvertCustomView", + }; + foreach (var target in targetsShouldSkip) { + Assert.IsTrue (appBuilder.Output.IsTargetSkipped (target), $"`{target}` should be skipped!"); + } } var targetsShouldRun = new [] { @@ -1007,16 +1017,18 @@ public CustomTextView(Context context, IAttributeSet attributes) : base(context, "_CopyPackage", "_Sign", }; - foreach (var target in targetsShouldRun) { - Assert.IsFalse (appBuilder.Output.IsTargetSkipped (target), $"`{target}` should *not* be skipped!"); - } + if (TestEnvironment.CommercialBuildAvailable) { + foreach (var target in targetsShouldRun) { + Assert.IsFalse (appBuilder.Output.IsTargetSkipped (target), $"`{target}` should *not* be skipped!"); + } - var aapt2TargetsShouldBeSkipped = new [] { - "_FixupCustomViewsForAapt2", - "_CompileResources" - }; - foreach (var target in aapt2TargetsShouldBeSkipped) { - Assert.IsTrue (appBuilder.Output.IsTargetSkipped (target, defaultIfNotUsed: true), $"{target} should be skipped!"); + var aapt2TargetsShouldBeSkipped = new [] { + "_FixupCustomViewsForAapt2", + "_CompileResources" + }; + foreach (var target in aapt2TargetsShouldBeSkipped) { + Assert.IsTrue (appBuilder.Output.IsTargetSkipped (target, defaultIfNotUsed: true), $"{target} should be skipped!"); + } } } } @@ -1028,6 +1040,7 @@ public void ResolveLibraryProjectImports ([Values] AndroidRuntime runtime) if (IgnoreUnsupportedConfiguration (runtime, release: isRelease)) { return; } + AssertCommercialBuild (); // Incremental build assertions require Fast Deployment var proj = new XamarinFormsAndroidApplicationProject { IsRelease = isRelease, @@ -1233,6 +1246,7 @@ public void GenerateJavaStubsAndAssembly ([Values] bool isRelease, [Values] Andr if (IgnoreUnsupportedConfiguration (runtime, release: isRelease)) { return; } + AssertCommercialBuild (); // Incremental build assertions require Fast Deployment // TODO: NativeAOT build doesn't add android/environment.arm64-v8a.o to file writes if (runtime == AndroidRuntime.NativeAOT) { @@ -1669,6 +1683,7 @@ public void AndroidResourceChange ([Values] AndroidRuntime runtime) if (IgnoreUnsupportedConfiguration (runtime, release: isRelease)) { return; } + AssertCommercialBuild (); // Incremental build assertions require Fast Deployment var proj = new XamarinAndroidApplicationProject { IsRelease = isRelease, }; diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/ManifestTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/ManifestTest.cs index fe564b277a4..7cb6ca9d0bb 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/ManifestTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/ManifestTest.cs @@ -220,6 +220,7 @@ public void OverlayManifestIncrementalBuildTest ([Values] AndroidRuntime runtime if (IgnoreUnsupportedConfiguration (runtime, release: isRelease)) { return; } + AssertCommercialBuild (); // Incremental build assertions require Fast Deployment var proj = new XamarinAndroidApplicationProject () { IsRelease = isRelease, ManifestMerger = "manifestmerger.jar", diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/PackagingTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/PackagingTest.cs index 1a728d030da..4cf0d6ca767 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/PackagingTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/PackagingTest.cs @@ -613,8 +613,10 @@ public void CheckAppBundle ([Values] bool isRelease, [Values] AndroidRuntime run // Build with no changes Assert.IsTrue (b.Build (proj), "second build should have succeeded."); - foreach (var target in new [] { "_Sign", "_BuildApkEmbed" }) { - Assert.IsTrue (b.Output.IsTargetSkipped (target), $"`{target}` should be skipped!"); + if (TestEnvironment.CommercialBuildAvailable) { + foreach (var target in new [] { "_Sign", "_BuildApkEmbed" }) { + Assert.IsTrue (b.Output.IsTargetSkipped (target), $"`{target}` should be skipped!"); + } } } } diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/TrimmableTypeMapBuildTests.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/TrimmableTypeMapBuildTests.cs index 795f135d1a1..180c2d11c3a 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/TrimmableTypeMapBuildTests.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/TrimmableTypeMapBuildTests.cs @@ -36,6 +36,7 @@ public void Build_WithTrimmableTypeMap_IncrementalBuild ([Values] bool isRelease if (IgnoreUnsupportedConfiguration (runtime, release: isRelease)) { return; } + AssertCommercialBuild (); // Incremental build assertions require Fast Deployment var proj = new XamarinAndroidApplicationProject { IsRelease = isRelease,