From 3a1d83e7c54bf643e925d9ab8b54a6f4e1ec037f Mon Sep 17 00:00:00 2001 From: Alexander Likhachev Date: Thu, 18 Aug 2022 03:41:50 +0200 Subject: [PATCH] [Gradle, K/N] Add test for KT-52303 --- .../org/jetbrains/kotlin/gradle/BaseGradleIT.kt | 6 ++++++ .../kotlin/gradle/native/GeneralNativeIT.kt | 15 +++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt index c01e0493b5d..90f2fdb2eea 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt @@ -553,6 +553,12 @@ abstract class BaseGradleIT { return this } + fun CompiledProject.assertDirectoryExists(path: String): CompiledProject { + assertFileExists(path) + assertTrue(fileInWorkingDir(path).isDirectory, "$path is not a directory") + return this + } + fun CompiledProject.assertFileIsSymlink(path: String = ""): CompiledProject { assertTrue(Files.isSymbolicLink(fileInWorkingDir(path).toPath()), "The file [$path] isn't a symlink.") return this diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/GeneralNativeIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/GeneralNativeIT.kt index c91d398387e..477179d02b7 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/GeneralNativeIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/GeneralNativeIT.kt @@ -1147,6 +1147,21 @@ class GeneralNativeIT : BaseGradleIT() { } } + // KT-52303 + @Test + fun testBuildDirChangeAppliedToBinaries() = with(transformNativeTestProjectWithPluginDsl("executables", directoryPrefix = "native-binaries")) { + gradleBuildScript().appendText( + """ + project.buildDir = file("${'$'}{project.buildDir.absolutePath}/mydir") + """.trimIndent() + ) + build(":linkDebugExecutableHost") { + assertSuccessful() + assertDirectoryExists("build/mydir/bin/host/debugExecutable") + assertNoSuchFile("build/bin") + } + } + companion object { fun List.containsSequentially(vararg elements: String): Boolean { check(elements.isNotEmpty())