diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/CachesAutoBuildTest.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/CachesAutoBuildTest.kt index 6af8c1fe8c7..2051ebdc9d1 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/CachesAutoBuildTest.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/CachesAutoBuildTest.kt @@ -40,7 +40,7 @@ class CachesAutoBuildTest : AbstractNativeSimpleTest() { fun testSimple() { val rootDir = File("$TEST_SUITE_PATH/simple") val lib = compileToLibrary(rootDir.resolve("lib"), buildDir) - val main = compileToExecutable(rootDir.resolve("main"), autoCacheFrom = buildDir, emptyList(), lib) + val main = compileToExecutable(rootDir.resolve("main"), autoCacheFrom = buildDir, emptyList(), emptyList(), lib) assertTrue(main.exists()) assertTrue(autoCacheDir.resolve(cacheFlavor).resolve("lib").exists()) @@ -54,7 +54,7 @@ class CachesAutoBuildTest : AbstractNativeSimpleTest() { val userLib = compileToLibrary(rootDir.resolve("userLib"), buildDir.resolve("user"), externalLib) val main = compileToExecutable( rootDir.resolve("main"), - autoCacheFrom = buildDir.resolve("external"), emptyList(), + autoCacheFrom = buildDir.resolve("external"), emptyList(), emptyList(), externalLib, userLib ) @@ -73,13 +73,35 @@ class CachesAutoBuildTest : AbstractNativeSimpleTest() { compileToStaticCache(lib, cacheDir) val makePerFileCache = testRunSettings.get().makePerFileCaches assertTrue(cacheDir.resolve("lib-${if (makePerFileCache) "per-file-cache" else "cache"}").exists()) - val main = compileToExecutable(rootDir.resolve("main"), autoCacheFrom = buildDir, listOf(cacheDir), lib) + val main = compileToExecutable(rootDir.resolve("main"), autoCacheFrom = buildDir, listOf(cacheDir), emptyList(), lib) assertTrue(main.exists()) assertFalse(autoCacheDir.resolve(cacheFlavor).resolve("lib").exists()) } - private fun compileToExecutable(sourcesDir: File, autoCacheFrom: File, cacheDirectories: List, vararg dependencies: KLIB): File { + @Test + @TestMetadata("testCustomBinaryOptions") + fun testCustomBinaryOptions() { + val rootDir = File("$TEST_SUITE_PATH/simple") + val lib = compileToLibrary(rootDir.resolve("lib"), buildDir) + val main = compileToExecutable(rootDir.resolve("main"), autoCacheFrom = buildDir, emptyList(), emptyList(), lib) + + assertTrue(main.exists()) + assertTrue(autoCacheDir.resolve(cacheFlavor).resolve("lib").exists()) + + val customRuntimeAsserts = "-Xbinary=runtimeAssertionsMode=log" + val main2 = compileToExecutable(rootDir.resolve("main"), autoCacheFrom = buildDir, emptyList(), listOf(customRuntimeAsserts), lib) + + assertTrue(main2.exists()) + } + + private fun compileToExecutable( + sourcesDir: File, + autoCacheFrom: File, + cacheDirectories: List, + additionalArgs: List, + vararg dependencies: KLIB + ): File { autoCacheDir.mkdirs() return compileToExecutable( sourcesDir, @@ -88,7 +110,7 @@ class CachesAutoBuildTest : AbstractNativeSimpleTest() { listOf( "-Xauto-cache-from=${autoCacheFrom.absolutePath}", "-Xauto-cache-dir=${autoCacheDir.absolutePath}", - ) + cacheDirectories.map { "-Xcache-directory=${it.absolutePath}" } + ) + cacheDirectories.map { "-Xcache-directory=${it.absolutePath}" } + additionalArgs ), *dependencies ).executableFile