diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt index 1300df0ff3..7a1ad83781 100644 --- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt +++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt @@ -157,8 +157,8 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool ) commandLineArgumentProviders.get().forEach { it.asArguments().forEach { argument -> - if (!argument.matches(Regex("\\S+=\\S+"))) { - throw IllegalArgumentException("KSP apoption does not match \\S+=\\S+: $argument") + if (!argument.matches(Regex("\\S+=.*\\S+.*"))) { + throw IllegalArgumentException("KSP apoption does not match \\S+=.*\\S+.*: $argument") } options += InternalSubpluginOption("apoption", argument) } diff --git a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/GradleCompilationTest.kt b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/GradleCompilationTest.kt index 3f5b032068..7c9ed788a2 100644 --- a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/GradleCompilationTest.kt +++ b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/GradleCompilationTest.kt @@ -174,7 +174,7 @@ class GradleCompilationTest { testRule.appModule.buildFileAdditions.add( """ ksp { - arg(Provider(project.layout.projectDirectory.dir("schemas").asFile)) + arg(Provider(project.layout.projectDirectory.dir("room schemas").asFile)) } class Provider(roomOutputDir: File) : CommandLineArgumentProvider { @@ -200,10 +200,10 @@ class GradleCompilationTest { ) val result = testRule.runner().withArguments(":app:assembleDebug").build() val pattern1 = Regex.escape("apoption=room.schemaLocation=") - val pattern2 = Regex.escape("${testRule.appModule.moduleRoot}/schemas") + val pattern2 = Regex.escape("${testRule.appModule.moduleRoot}/room schemas") assertThat(result.output).containsMatch("$pattern1\\S*$pattern2") assertThat(result.output).contains("apoption=room.generateKotlin=true") - val schemasFolder = testRule.appModule.moduleRoot.resolve("schemas") + val schemasFolder = testRule.appModule.moduleRoot.resolve("room schemas") assertThat(result.task(":app:kspDebugKotlin")!!.outcome).isEquivalentAccordingToCompareTo(TaskOutcome.SUCCESS) assertThat(schemasFolder.exists()).isTrue() assertThat(schemasFolder.resolve("Database/1.json").exists()).isTrue() @@ -234,7 +234,7 @@ class GradleCompilationTest { ) val result = testRule.runner().withArguments(":app:assemble").buildAndFail() - assertThat(result.output).contains("KSP apoption does not match \\S+=\\S+: invalid") + assertThat(result.output).contains("KSP apoption does not match \\S+=.*\\S+.*: invalid") } @Test