From 31cb2cc8b8052d229ae94d76f51822b863318d2a Mon Sep 17 00:00:00 2001 From: Jurriaan Mous Date: Mon, 29 Sep 2025 16:43:19 +0200 Subject: [PATCH] Use latest prebuild and add WindowsIgnore annotation --- build.gradle.kts | 13 +++++-- gradle.properties | 34 +++++++++---------- .../kotlin/maryk/WindowsIgnore.kt | 3 ++ src/appleTest/kotlin/maryk/WindowsIgnore.kt | 3 ++ src/commonTest/kotlin/maryk/WindowsIgnore.kt | 9 +++++ .../kotlin/maryk/rocksdb/BackupEngineTest.kt | 6 ++++ .../maryk/rocksdb/BackupableDBOptionsTest.kt | 2 ++ .../kotlin/maryk/rocksdb/CheckpointTest.kt | 4 +++ src/jvmTest/kotlin/maryk/WindowsIgnore.kt | 3 ++ src/linuxTest/kotlin/maryk/WindowsIgnore.kt | 3 ++ src/mingwTest/kotlin/maryk/WindowsIgnore.kt | 11 ++++++ 11 files changed, 72 insertions(+), 19 deletions(-) create mode 100644 src/androidNativeTest/kotlin/maryk/WindowsIgnore.kt create mode 100644 src/appleTest/kotlin/maryk/WindowsIgnore.kt create mode 100644 src/commonTest/kotlin/maryk/WindowsIgnore.kt create mode 100644 src/jvmTest/kotlin/maryk/WindowsIgnore.kt create mode 100644 src/linuxTest/kotlin/maryk/WindowsIgnore.kt create mode 100644 src/mingwTest/kotlin/maryk/WindowsIgnore.kt diff --git a/build.gradle.kts b/build.gradle.kts index d8ef180..a9a5dc2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -27,6 +27,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBinary import org.jetbrains.kotlin.gradle.plugin.mpp.TestExecutable import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget +import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeHostTest repositories { google() @@ -88,6 +89,7 @@ object RocksdbArtifacts { ) } + @CacheableTask abstract class DownloadRocksdbTask : DefaultTask() { @get:Input @@ -500,10 +502,17 @@ kotlin { targets.withType().configureEach { configureRocksdbPrebuilt(rocksdbPrebuiltVersionValue, rocksdbPrebuiltBaseUrlValue) } - } - +// Ensure Windows-specific ignored tests are skipped on any mingw environment (no Wine) +tasks.withType(KotlinNativeHostTest::class).configureEach { + if (name.startsWith("mingw", ignoreCase = true)) { + val existing = args.toList() + doFirst { + this@configureEach.args = existing + listOf("--ktest_negative_gradle_filter=maryk.rocksdb.*") + } + } +} tasks.register("updateRocksdbShas") { group = "rocksdb" diff --git a/gradle.properties b/gradle.properties index 09ade8e..6b91850 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,20 +7,20 @@ kotlin.mpp.stability.nowarn=true kotlin.mpp.androidSourceSetLayoutVersion=2 rocksdbPrebuiltBaseUrl=https://github.com/marykdb/build-rocksdb/releases/download -rocksdbPrebuiltVersion=rocksdb-10.4.2-20251001T194105Z -rocksdbPrebuiltSha.androidNativeArm32=ebefefa861fb4c7fb80390b3ebd8e0fc354a2a72366f301c8ab104631b1c99f2 -rocksdbPrebuiltSha.androidNativeArm64=c4bcef8199b3dd0da21c9e1a59b0d94a2fa21ac0e34fe7c601d0b4450b628f2c -rocksdbPrebuiltSha.androidNativeX64=0c0a1dea0a1d469c12e00c27ddc484e4c5216b0fb23ff176e30ec6148c62d650 -rocksdbPrebuiltSha.androidNativeX86=d27cffa4fcb48e20de9b19ce5ce49cf71addd32eb41bdf74bacb6c586d193ee5 -rocksdbPrebuiltSha.iosArm64=c546423b2b30abd6765ec78f1bb9718a7f49715c3412f82cfe7a8b41b426dc2a -rocksdbPrebuiltSha.iosSimulatorArm64=5d8485604b8bbbf1e5823cede712ddb08498730b4fbdce8d70d9a551e2cc9d93 -rocksdbPrebuiltSha.linuxArm64=8f3e0dc08e6a391645331590aad6787b8f4fc322eb05af4bd7cd3ab122ce955a -rocksdbPrebuiltSha.linuxX64=a6fa6e382c4c22f29428e08aff4452e3ec3360d36bcd8cd306f8e395eab8e49d -rocksdbPrebuiltSha.macosArm64=107b53a53d8d21efb0a51b45e4638f36fdc627142c8825d4b3bc846e322269b2 -rocksdbPrebuiltSha.macosX64=d73be644d65d0fc7ed143d6e6a8a0de7327dd5cab5f2553e2866a653b956ab5a -rocksdbPrebuiltSha.mingwX64=c25dca0fcf489f62512da7771c0a9b9a64cb805baffc61cc1fc3ee0d991476fb -rocksdbPrebuiltSha.tvosArm64=77f28a797ad2640f6376baf3535cb5022ccbba0593e91beb7756b6d72a539202 -rocksdbPrebuiltSha.tvosSimulatorArm64=9a40b7f1c33d82c678cc799b3a8b7ef1e41108ee8d01d814d8d9d13c15791e41 -rocksdbPrebuiltSha.watchosArm64=42c6d11f7b6cb4ecb032d948b3d5c50c01c31aa694222f3b6f99a518ddbf90a0 -rocksdbPrebuiltSha.watchosDeviceArm64=953c0d4010224dbd06d443f1883ae870c5a9fc066f7603c16b51eea527308c92 -rocksdbPrebuiltSha.watchosSimulatorArm64=40f9549c965d2d71fc90668e418466460b5bf985f1a0b16f6c790bd7e230fcbc +rocksdbPrebuiltVersion=rocksdb-10.4.2-20251003T081206Z +rocksdbPrebuiltSha.androidNativeArm32=aef4756e72a85afc75ddb5b9f5e70612c6e9984c3b6515bd4aa685481099a458 +rocksdbPrebuiltSha.androidNativeArm64=3375125b540018bfa84350393586af34c0c379694e1b7eede5c0bff1b166fd79 +rocksdbPrebuiltSha.androidNativeX64=4b56388ea8ec2c48a56149804c1c01c776a4dd6bfd4991d38c9a844b15f475f8 +rocksdbPrebuiltSha.androidNativeX86=b8e8bf3d57478524d60bb8eaee24fe32e2032400281d58ef3d3cd1639eeff61e +rocksdbPrebuiltSha.iosArm64=757ef148940474dc4009ff525f6e298a94d86ed3aef36c10a7c8e6a18c1109c1 +rocksdbPrebuiltSha.iosSimulatorArm64=04127eb98406aa26d82902c6f49e47494cd0942ff54c57f101abd32205aee7b3 +rocksdbPrebuiltSha.linuxArm64=750259e3dc7fe9041601f716986f7998b6c2bf6cbd0a09183bf67b114085b181 +rocksdbPrebuiltSha.linuxX64=7be047b56eaeacc467f9f30defe592d23537fe3e131c236f8eb071d07b220c50 +rocksdbPrebuiltSha.macosArm64=486a29c4cab0d5a96b86d2363ee64c5052a2b84946730bfd58d8227a80592888 +rocksdbPrebuiltSha.macosX64=5db5e765635e7a76effde197d9d3d0aa44ebeb4cfe5ca147dfa1893aebb88644 +rocksdbPrebuiltSha.mingwX64=c2b92d01d5725f50cbe2e3dbcdebe831152217f3579e02ea275e7c53463b85b1 +rocksdbPrebuiltSha.tvosArm64=bd12105ff0e75059f4fd92b4df2137c34c199732dbf3b82cfcebe636da62bba4 +rocksdbPrebuiltSha.tvosSimulatorArm64=eb35fe3eca677713148de53417922d40cdfb5814c9f8936dea123ee96bae53ef +rocksdbPrebuiltSha.watchosArm64=41147bd29420d70902850891a799cbc7eef31088a0f867a495f04b1f0f04a346 +rocksdbPrebuiltSha.watchosDeviceArm64=5888de27a00dd378a6be7caff7c4dbed717ab08e3c5d3533de253e0bdce231f3 +rocksdbPrebuiltSha.watchosSimulatorArm64=fb462d17af3d69a95f49d6eb6a6627272566fb7edf29f303b1ef6f4775b490db diff --git a/src/androidNativeTest/kotlin/maryk/WindowsIgnore.kt b/src/androidNativeTest/kotlin/maryk/WindowsIgnore.kt new file mode 100644 index 0000000..ebee968 --- /dev/null +++ b/src/androidNativeTest/kotlin/maryk/WindowsIgnore.kt @@ -0,0 +1,3 @@ +package maryk + +actual annotation class WindowsIgnore actual constructor(actual val reason: String = "") diff --git a/src/appleTest/kotlin/maryk/WindowsIgnore.kt b/src/appleTest/kotlin/maryk/WindowsIgnore.kt new file mode 100644 index 0000000..ebee968 --- /dev/null +++ b/src/appleTest/kotlin/maryk/WindowsIgnore.kt @@ -0,0 +1,3 @@ +package maryk + +actual annotation class WindowsIgnore actual constructor(actual val reason: String = "") diff --git a/src/commonTest/kotlin/maryk/WindowsIgnore.kt b/src/commonTest/kotlin/maryk/WindowsIgnore.kt new file mode 100644 index 0000000..a15dc63 --- /dev/null +++ b/src/commonTest/kotlin/maryk/WindowsIgnore.kt @@ -0,0 +1,9 @@ +package maryk + +import kotlin.annotation.AnnotationRetention.RUNTIME +import kotlin.annotation.AnnotationTarget.CLASS +import kotlin.annotation.AnnotationTarget.FUNCTION + +@Target(CLASS, FUNCTION) +@Retention(RUNTIME) +expect annotation class WindowsIgnore(val reason: String = "") diff --git a/src/commonTest/kotlin/maryk/rocksdb/BackupEngineTest.kt b/src/commonTest/kotlin/maryk/rocksdb/BackupEngineTest.kt index 5dd5807..ffc9a61 100644 --- a/src/commonTest/kotlin/maryk/rocksdb/BackupEngineTest.kt +++ b/src/commonTest/kotlin/maryk/rocksdb/BackupEngineTest.kt @@ -1,5 +1,6 @@ package maryk.rocksdb +import maryk.WindowsIgnore import maryk.createFolder import maryk.rocksdb.util.createTestDBFolder import kotlin.random.Random @@ -16,6 +17,7 @@ class BackupEngineTest { return folder } + @WindowsIgnore("RocksDB backup engine crashes under Wine") @Test fun backupDb() { // Open empty database. @@ -41,6 +43,7 @@ class BackupEngineTest { } } + @WindowsIgnore("RocksDB backup engine crashes under Wine") @Test fun deleteBackup() { // Open empty database. @@ -71,6 +74,7 @@ class BackupEngineTest { } } + @WindowsIgnore("RocksDB backup engine crashes under Wine") @Test fun purgeOldBackups() { // Open empty database. @@ -102,6 +106,7 @@ class BackupEngineTest { } } + @WindowsIgnore("RocksDB backup engine crashes under Wine") @Test fun restoreLatestBackup() { Options().setCreateIfMissing(true).use { opt -> @@ -159,6 +164,7 @@ class BackupEngineTest { } } + @WindowsIgnore("RocksDB backup engine crashes under Wine") @Test fun restoreFromBackup() { Options().setCreateIfMissing(true).use { opt -> diff --git a/src/commonTest/kotlin/maryk/rocksdb/BackupableDBOptionsTest.kt b/src/commonTest/kotlin/maryk/rocksdb/BackupableDBOptionsTest.kt index f971c7b..a91fa97 100644 --- a/src/commonTest/kotlin/maryk/rocksdb/BackupableDBOptionsTest.kt +++ b/src/commonTest/kotlin/maryk/rocksdb/BackupableDBOptionsTest.kt @@ -1,5 +1,6 @@ package maryk.rocksdb +import maryk.WindowsIgnore import maryk.createFolder import kotlin.test.Test import kotlin.test.assertEquals @@ -13,6 +14,7 @@ class BackupableDBOptionsTest { loadRocksDBLibrary() } + @WindowsIgnore("RocksDB backup engine options crash under Wine") @Test fun backupDir() { BackupEngineOptions(arbitraryPath).use { backupableDBOptions -> diff --git a/src/commonTest/kotlin/maryk/rocksdb/CheckpointTest.kt b/src/commonTest/kotlin/maryk/rocksdb/CheckpointTest.kt index 769e941..4561cd6 100644 --- a/src/commonTest/kotlin/maryk/rocksdb/CheckpointTest.kt +++ b/src/commonTest/kotlin/maryk/rocksdb/CheckpointTest.kt @@ -1,5 +1,6 @@ package maryk.rocksdb +import maryk.WindowsIgnore import maryk.createFolder import maryk.deleteFolder import maryk.rocksdb.util.createTestDBFolder @@ -25,6 +26,7 @@ class CheckPointTest { deleteFolder(checkpointFolder) } + @WindowsIgnore("RocksDB checkpoint support crashes under Wine") @Test fun checkPoint() { Options().setCreateIfMissing(true).use { options -> @@ -58,6 +60,7 @@ class CheckPointTest { } } + @WindowsIgnore("RocksDB checkpoint support crashes under Wine") @Test fun failIfDbNotInitialized() { openRocksDB( @@ -70,6 +73,7 @@ class CheckPointTest { } } + @WindowsIgnore("RocksDB checkpoint support crashes under Wine") @Test fun failWithIllegalPath() { openRocksDB(createTestFolder()).use { db -> diff --git a/src/jvmTest/kotlin/maryk/WindowsIgnore.kt b/src/jvmTest/kotlin/maryk/WindowsIgnore.kt new file mode 100644 index 0000000..ebee968 --- /dev/null +++ b/src/jvmTest/kotlin/maryk/WindowsIgnore.kt @@ -0,0 +1,3 @@ +package maryk + +actual annotation class WindowsIgnore actual constructor(actual val reason: String = "") diff --git a/src/linuxTest/kotlin/maryk/WindowsIgnore.kt b/src/linuxTest/kotlin/maryk/WindowsIgnore.kt new file mode 100644 index 0000000..ebee968 --- /dev/null +++ b/src/linuxTest/kotlin/maryk/WindowsIgnore.kt @@ -0,0 +1,3 @@ +package maryk + +actual annotation class WindowsIgnore actual constructor(actual val reason: String = "") diff --git a/src/mingwTest/kotlin/maryk/WindowsIgnore.kt b/src/mingwTest/kotlin/maryk/WindowsIgnore.kt new file mode 100644 index 0000000..5a24579 --- /dev/null +++ b/src/mingwTest/kotlin/maryk/WindowsIgnore.kt @@ -0,0 +1,11 @@ +package maryk + +import kotlin.annotation.AnnotationRetention.RUNTIME +import kotlin.annotation.AnnotationTarget.CLASS +import kotlin.annotation.AnnotationTarget.FUNCTION +import kotlin.test.Ignore + +@Target(CLASS, FUNCTION) +@Retention(RUNTIME) +@Ignore +actual annotation class WindowsIgnore actual constructor(actual val reason: String = "")