From f1c1524e61d07293d172abe17a1162185019c621 Mon Sep 17 00:00:00 2001 From: Steve Myers Date: Sun, 20 Jun 2021 20:25:57 -0700 Subject: [PATCH] Add kotlin test-fixtures module used by jvm and android --- bdk-kotlin/android/build.gradle | 7 ++- .../org/bitcoindevkit/bdk/AndroidLibTest.kt | 48 +------------------ bdk-kotlin/jvm/build.gradle | 1 + .../java/org/bitcoindevkit/bdk/JvmLibTest.kt | 15 ++++++ bdk-kotlin/settings.gradle | 2 +- bdk-kotlin/test-fixtures/build.gradle | 17 +++++++ .../java/org/bitcoindevkit/bdk/LibTest.kt | 8 ++-- test.sh | 2 +- 8 files changed, 46 insertions(+), 54 deletions(-) create mode 100644 bdk-kotlin/jvm/src/test/java/org/bitcoindevkit/bdk/JvmLibTest.kt create mode 100644 bdk-kotlin/test-fixtures/build.gradle rename bdk-kotlin/{jvm/src/test => test-fixtures/src/main}/java/org/bitcoindevkit/bdk/LibTest.kt (92%) diff --git a/bdk-kotlin/android/build.gradle b/bdk-kotlin/android/build.gradle index 2001232..2236add 100644 --- a/bdk-kotlin/android/build.gradle +++ b/bdk-kotlin/android/build.gradle @@ -64,11 +64,14 @@ dependencies { exclude group: 'net.java.dev.jna', module: 'jna' } - api 'net.java.dev.jna:jna:5.8.0@aar' + implementation 'net.java.dev.jna:jna:5.8.0@aar' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.3.0' implementation 'androidx.core:core-ktx:1.5.0' - testImplementation 'junit:junit:4.12' + + androidTestImplementation (project(':test-fixtures')) { + exclude group: 'net.java.dev.jna', module: 'jna' + } androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' androidTestImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.1' diff --git a/bdk-kotlin/android/src/androidTest/java/org/bitcoindevkit/bdk/AndroidLibTest.kt b/bdk-kotlin/android/src/androidTest/java/org/bitcoindevkit/bdk/AndroidLibTest.kt index 9a3e7ba..a104f6a 100644 --- a/bdk-kotlin/android/src/androidTest/java/org/bitcoindevkit/bdk/AndroidLibTest.kt +++ b/bdk-kotlin/android/src/androidTest/java/org/bitcoindevkit/bdk/AndroidLibTest.kt @@ -9,56 +9,12 @@ import org.junit.runner.RunWith import org.junit.Assert.* -//import org.bitcoindevkit.bdkjni.Types.Network -//import org.bitcoindevkit.bdkjni.Types.WalletConstructor -//import org.bitcoindevkit.bdkjni.Types.WalletPtr - /** * Instrumented test, which will execute on an Android device. * * See [testing documentation](http://d.android.com/tools/testing). */ @RunWith(AndroidJUnit4::class) -class AndroidLibTest { - - companion object { - private val bdkFfi: Lib = Native.load("bdk_ffi", Lib::class.java) - private lateinit var wallet: Lib.WalletPtr_t - - @BeforeClass - @JvmStatic - fun create_wallet() { - val name = "test_wallet" - val desc = - "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)" - val change = - "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)" - - wallet = bdkFfi.new_wallet(name, desc, change) - Log.d("create_wallet", "wallet created") - } - - @AfterClass - @JvmStatic - fun free_wallet() { - bdkFfi.free_wallet(wallet) - Log.d("free_wallet", "wallet freed") - } - } - - @Test - fun sync() { - bdkFfi.sync_wallet(wallet) - Log.d("sync", "wallet synced") - } - - @Test - fun new_address() { - val pointer = bdkFfi.new_address(wallet) - val address = pointer.getString(0) - bdkFfi.free_string(pointer) - //println("address created from kotlin: $address") - assertEquals(address, "tb1qzg4mckdh50nwdm9hkzq06528rsu73hjxxzem3e") - Log.d("new_address", "new address: $address") - } +class AndroidLibTest : LibTest() { + } diff --git a/bdk-kotlin/jvm/build.gradle b/bdk-kotlin/jvm/build.gradle index ba7039e..3b1618a 100644 --- a/bdk-kotlin/jvm/build.gradle +++ b/bdk-kotlin/jvm/build.gradle @@ -21,6 +21,7 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "net.java.dev.jna:jna:5.8.0" testImplementation 'org.jetbrains.kotlin:kotlin-test-junit' + testImplementation (project(':test-fixtures')) } publishing { diff --git a/bdk-kotlin/jvm/src/test/java/org/bitcoindevkit/bdk/JvmLibTest.kt b/bdk-kotlin/jvm/src/test/java/org/bitcoindevkit/bdk/JvmLibTest.kt new file mode 100644 index 0000000..2ce5b1a --- /dev/null +++ b/bdk-kotlin/jvm/src/test/java/org/bitcoindevkit/bdk/JvmLibTest.kt @@ -0,0 +1,15 @@ +package org.bitcoindevkit.bdk + +import com.sun.jna.Native +import org.junit.* +import org.junit.Assert.assertEquals +import kotlin.test.assertNotNull +import kotlin.test.assertNull + +/** + * Library test, which will execute on linux host. + * + */ +class JvmLibTest : LibTest() { + +} diff --git a/bdk-kotlin/settings.gradle b/bdk-kotlin/settings.gradle index dbc97eb..d38f719 100644 --- a/bdk-kotlin/settings.gradle +++ b/bdk-kotlin/settings.gradle @@ -1,3 +1,3 @@ rootProject.name = 'bdk-kotlin' -include ':jvm',':android' \ No newline at end of file +include ':jvm',':android',':test-fixtures' \ No newline at end of file diff --git a/bdk-kotlin/test-fixtures/build.gradle b/bdk-kotlin/test-fixtures/build.gradle new file mode 100644 index 0000000..f8fdc15 --- /dev/null +++ b/bdk-kotlin/test-fixtures/build.gradle @@ -0,0 +1,17 @@ +plugins { + id 'org.jetbrains.kotlin.jvm' + id 'java-library' +} + +dependencies { + implementation platform('org.jetbrains.kotlin:kotlin-bom') + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation "net.java.dev.jna:jna:5.8.0" + implementation (project(':jvm')) + implementation 'org.jetbrains.kotlin:kotlin-test-junit' +} + +java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} \ No newline at end of file diff --git a/bdk-kotlin/jvm/src/test/java/org/bitcoindevkit/bdk/LibTest.kt b/bdk-kotlin/test-fixtures/src/main/java/org/bitcoindevkit/bdk/LibTest.kt similarity index 92% rename from bdk-kotlin/jvm/src/test/java/org/bitcoindevkit/bdk/LibTest.kt rename to bdk-kotlin/test-fixtures/src/main/java/org/bitcoindevkit/bdk/LibTest.kt index 4b86784..1fd545a 100644 --- a/bdk-kotlin/jvm/src/test/java/org/bitcoindevkit/bdk/LibTest.kt +++ b/bdk-kotlin/test-fixtures/src/main/java/org/bitcoindevkit/bdk/LibTest.kt @@ -10,7 +10,7 @@ import kotlin.test.assertNull * Library test, which will execute on linux host. * */ -class LibTest { +abstract class LibTest { companion object { private val bdkFfi: Lib = Native.load("bdk_ffi", Lib::class.java) @@ -40,12 +40,12 @@ class LibTest { @Test fun wallet_sync_error() { val bad_wallet_result = bdkFfi.new_wallet_result("test", "bad", null) - println("wallet result created") + //println("wallet result created") val sync_result = bdkFfi.sync_wallet(bad_wallet_result) val sync_err_pointer = bdkFfi.get_void_err(sync_result) assertNotNull(sync_err_pointer) - val sync_err = sync_err_pointer.getString(0) - println("wallet sync error $sync_err") + val sync_err = sync_err_pointer!!.getString(0) + //println("wallet sync error $sync_err") } @Test diff --git a/test.sh b/test.sh index e44aad0..f6f86d5 100755 --- a/test.sh +++ b/test.sh @@ -11,4 +11,4 @@ cc/bdk_ffi_test # bdk-kotlin (cd bdk-kotlin && gradle test) -#(cd bdk-kotlin && gradle :android:connectedDebugAndroidTest) +(cd bdk-kotlin && gradle :android:connectedDebugAndroidTest)