Skip to content

Commit ae9a790

Browse files
committed
Fix unittests
1 parent e975183 commit ae9a790

File tree

3 files changed

+19
-9
lines changed

3 files changed

+19
-9
lines changed

plugin/src/main/kotlin/net/mullvad/androidrust/RustAndroidPlugin.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,8 @@ open class RustAndroidPlugin : Plugin<Project> {
204204
cargoExtension.localProperties.getProperty("rust.targets.${project.name}")
205205
?: cargoExtension.localProperties.getProperty("rust.targets")
206206
if (localTargets != null) {
207-
cargoExtension.targets = localTargets.split(',').map { it.trim() }
207+
cargoExtension.targets =
208+
localTargets.split(',').map { it.trim() }.onEach { println("TARGET: $it") }
208209
}
209210

210211
if (cargoExtension.targets == null) {

samples/unittest/build.gradle.kts

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,25 @@ android {
2020
}
2121

2222
sourceSets {
23-
getByName("test") {
24-
// resources {
25-
// srcDir(layout.buildDirectory.dir("rustJniLibs/desktop"))
26-
// }
27-
}
2823
getByName("main")
2924
}
25+
testOptions.unitTests.isIncludeAndroidResources = true
26+
}
27+
28+
androidComponents {
29+
onVariants { variant ->
30+
variant.sources
31+
.getByName("test")
32+
.addStaticSourceDirectory(layout.buildDirectory.get().dir("rustJniLibs/desktop").asFile.path)
33+
}
3034
}
3135

3236
cargo {
3337
module = "../rust"
38+
/*
39+
For MacBook we need to change the target
40+
targets = listOf("darwin-aarch64")
41+
*/
3442
targets = listOf("x86_64", "linux-x86-64")
3543
libname = "rust"
3644
}
@@ -53,8 +61,8 @@ java { toolchain { languageVersion = JavaLanguageVersion.of(21) } }
5361
val jnaForTest by configurations.creating
5462

5563
dependencies {
56-
jnaForTest("net.java.dev.jna:jna:5.6.0@jar")
57-
implementation("net.java.dev.jna:jna:5.6.0@aar")
64+
jnaForTest("net.java.dev.jna:jna:5.18.1@jar")
65+
implementation("net.java.dev.jna:jna:5.18.1@aar")
5866

5967
androidTestImplementation("com.android.support.test.espresso:espresso-core:3.0.2") {
6068
exclude("com.android.support:support-annotations")
@@ -79,7 +87,7 @@ dependencies {
7987
// avoiding other configurations from being resolved. Tricky!
8088
testImplementation(files(jnaForTest.copyRecursive().files))
8189
// testImplementation("androidx.test.ext:junit:$versions.androidx_junit")
82-
testImplementation("org.robolectric:robolectric:4.14")
90+
testImplementation("org.robolectric:robolectric:4.16.1")
8391
}
8492

8593
val rustJniLibsDir = layout.buildDirectory.dir("rustJniLibs/android").get()

samples/unittest/src/main/java/net/mullvad/androidrust/MainActivity.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class MainActivity : ComponentActivity(), JNACallback, JNICallback {
5959
// But when running as a unit test, we need to fish the libraries from
6060
// Java resources and configure the classpath. We use JNA for that.
6161
val LIBRARY = com.sun.jna.NativeLibrary.getInstance("rust")
62+
println("LIBRARY: ${LIBRARY.file.path}")
6263
System.load(LIBRARY.file.path)
6364
}
6465

0 commit comments

Comments
 (0)