Skip to content

Commit 130514d

Browse files
committed
Make runtime linking an option in the DotNetBuild test
Testing just a single configuration, it's enough.
1 parent fd0406e commit 130514d

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.TestCaseSource.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,96 +17,119 @@ public partial class BuildTest : BaseTest
1717
/* isRelease */ false,
1818
/* aot */ false,
1919
/* usesAssemblyStore */ false,
20+
/* useRuntimeLinking */ false,
2021
},
2122
new object [] {
2223
/* runtimeIdentifiers */ "android-arm",
2324
/* isRelease */ false,
2425
/* aot */ false,
2526
/* usesAssemblyStore */ true,
27+
/* useRuntimeLinking */ false,
2628
},
2729
new object [] {
2830
/* runtimeIdentifiers */ "android-arm64",
2931
/* isRelease */ false,
3032
/* aot */ false,
3133
/* usesAssemblyStore */ false,
34+
/* useRuntimeLinking */ false,
3235
},
3336
new object [] {
3437
/* runtimeIdentifiers */ "android-x86",
3538
/* isRelease */ false,
3639
/* aot */ false,
3740
/* usesAssemblyStore */ false,
41+
/* useRuntimeLinking */ false,
3842
},
3943
new object [] {
4044
/* runtimeIdentifiers */ "android-x64",
4145
/* isRelease */ false,
4246
/* aot */ false,
4347
/* usesAssemblyStore */ false,
48+
/* useRuntimeLinking */ false,
4449
},
4550
new object [] {
4651
/* runtimeIdentifiers */ "android-arm",
4752
/* isRelease */ true,
4853
/* aot */ false,
4954
/* usesAssemblyStore */ false,
55+
/* useRuntimeLinking */ false,
5056
},
5157
new object [] {
5258
/* runtimeIdentifiers */ "android-arm",
5359
/* isRelease */ true,
5460
/* aot */ false,
5561
/* usesAssemblyStore */ true,
62+
/* useRuntimeLinking */ false,
5663
},
5764
new object [] {
5865
/* runtimeIdentifiers */ "android-arm",
5966
/* isRelease */ true,
6067
/* aot */ true,
6168
/* usesAssemblyStore */ false,
69+
/* useRuntimeLinking */ false,
6270
},
6371
new object [] {
6472
/* runtimeIdentifiers */ "android-arm",
6573
/* isRelease */ true,
6674
/* aot */ true,
6775
/* usesAssemblyStore */ true,
76+
/* useRuntimeLinking */ false,
6877
},
6978
new object [] {
7079
/* runtimeIdentifiers */ "android-arm64",
7180
/* isRelease */ true,
7281
/* aot */ false,
7382
/* usesAssemblyStore */ false,
83+
/* useRuntimeLinking */ false,
7484
},
7585
new object [] {
7686
/* runtimeIdentifiers */ "android-arm;android-arm64;android-x86;android-x64",
7787
/* isRelease */ false,
7888
/* aot */ false,
7989
/* usesAssemblyStore */ false,
90+
/* useRuntimeLinking */ false,
8091
},
8192
new object [] {
8293
/* runtimeIdentifiers */ "android-arm;android-arm64;android-x86;android-x64",
8394
/* isRelease */ false,
8495
/* aot */ false,
8596
/* usesAssemblyStore */ true,
97+
/* useRuntimeLinking */ false,
8698
},
8799
new object [] {
88100
/* runtimeIdentifiers */ "android-arm;android-arm64;android-x86",
89101
/* isRelease */ true,
90102
/* aot */ false,
91103
/* usesAssemblyStore */ false,
104+
/* useRuntimeLinking */ false,
92105
},
93106
new object [] {
94107
/* runtimeIdentifiers */ "android-arm;android-arm64;android-x86;android-x64",
95108
/* isRelease */ true,
96109
/* aot */ false,
97110
/* usesAssemblyStore */ false,
111+
/* useRuntimeLinking */ false,
98112
},
99113
new object [] {
100114
/* runtimeIdentifiers */ "android-arm;android-arm64;android-x86;android-x64",
101115
/* isRelease */ true,
102116
/* aot */ false,
103117
/* usesAssemblyStore */ true,
118+
/* useRuntimeLinking */ false,
104119
},
105120
new object [] {
106121
/* runtimeIdentifiers */ "android-arm;android-arm64;android-x86;android-x64",
107122
/* isRelease */ true,
108123
/* aot */ true,
109124
/* usesAssemblyStore */ false,
125+
/* useRuntimeLinking */ false,
126+
},
127+
new object [] {
128+
/* runtimeIdentifiers */ "android-arm;android-arm64;android-x86;android-x64",
129+
/* isRelease */ true,
130+
/* aot */ false,
131+
/* usesAssemblyStore */ true,
132+
/* useRuntimeLinking */ true,
110133
},
111134
};
112135

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,13 @@ public partial class BuildTest : BaseTest
2626
[Category ("SmokeTests")]
2727
[TestCaseSource (nameof (DotNetBuildSource))]
2828
[NonParallelizable] // On MacOS, parallel /restore causes issues
29-
public void DotNetBuild (string runtimeIdentifiers, bool isRelease, bool aot, bool usesAssemblyStore)
29+
public void DotNetBuild (string runtimeIdentifiers, bool isRelease, bool aot, bool usesAssemblyStore, bool useRuntimeLinking)
3030
{
31+
if (!isRelease && useRuntimeLinking) {
32+
Assert.Warn ("Dynamic runtime linking is supported only in Release builds, disabling it for this Debug build.");
33+
useRuntimeLinking = false;
34+
}
35+
3136
var proj = new XamarinAndroidApplicationProject {
3237
IsRelease = isRelease,
3338
EnableDefaultItems = true,
@@ -68,6 +73,7 @@ public void DotNetBuild (string runtimeIdentifiers, bool isRelease, bool aot, bo
6873
.Replace ("//${AFTER_ONCREATE}", @"button.Text = Resource.CancelButton;");
6974
proj.SetProperty ("AndroidUseAssemblyStore", usesAssemblyStore.ToString ());
7075
proj.SetProperty ("RunAOTCompilation", aot.ToString ());
76+
proj.SetProperty ("_AndroidEnableNativeRuntimeLinking", useRuntimeLinking.ToString ());
7177
proj.OtherBuildItems.Add (new AndroidItem.InputJar ("javaclasses.jar") {
7278
BinaryContent = () => ResourceData.JavaSourceJarTestJar,
7379
});
@@ -170,7 +176,11 @@ public void DotNetBuild (string runtimeIdentifiers, bool isRelease, bool aot, bo
170176
helper.AssertContainsEntry ($"assemblies/de-DE/{proj.ProjectName}.resources.dll", shouldContainEntry: expectEmbeddedAssembies);
171177
foreach (var abi in rids.Select (AndroidRidAbiHelper.RuntimeIdentifierToAbi)) {
172178
helper.AssertContainsEntry ($"lib/{abi}/libmonodroid.so");
173-
helper.AssertContainsEntry ($"lib/{abi}/libmonosgen-2.0.so");
179+
180+
if (!useRuntimeLinking) {
181+
helper.AssertContainsEntry ($"lib/{abi}/libmonosgen-2.0.so");
182+
}
183+
174184
if (rids.Length > 1) {
175185
helper.AssertContainsEntry ($"assemblies/{abi}/System.Private.CoreLib.dll", shouldContainEntry: expectEmbeddedAssembies);
176186
} else {

0 commit comments

Comments
 (0)