diff --git a/wire-gradle-plugin/src/test/kotlin/com/squareup/wire/gradle/WirePluginTest.kt b/wire-gradle-plugin/src/test/kotlin/com/squareup/wire/gradle/WirePluginTest.kt index 3c8abb2bc6..21b54d3e76 100644 --- a/wire-gradle-plugin/src/test/kotlin/com/squareup/wire/gradle/WirePluginTest.kt +++ b/wire-gradle-plugin/src/test/kotlin/com/squareup/wire/gradle/WirePluginTest.kt @@ -1458,6 +1458,16 @@ class WirePluginTest { buildCacheDir.deleteRecursively() } + @Test + fun configurationCacheFailure() { + val fixtureRoot = File("src/test/projects/configuration-cache-failure") + + val result = gradleRunner.runFixture(fixtureRoot) { + withArguments("clean", "generateMainProtos", "--stacktrace", "--info").build() + } + assertThat(result.task(":generateMainProtos")?.outcome).isEqualTo(TaskOutcome.SUCCESS) + } + private fun GradleRunner.runFixture( root: File, action: GradleRunner.() -> BuildResult, diff --git a/wire-gradle-plugin/src/test/projects/configuration-cache-failure/build.gradle.kts b/wire-gradle-plugin/src/test/projects/configuration-cache-failure/build.gradle.kts new file mode 100644 index 0000000000..78e5499bb3 --- /dev/null +++ b/wire-gradle-plugin/src/test/projects/configuration-cache-failure/build.gradle.kts @@ -0,0 +1,37 @@ +plugins { + id("com.squareup.wire") + id("org.jetbrains.kotlin.jvm") version "1.9.22" +} + +val genProtosDir = "$buildDir/generated/proto" + +tasks.register("genProto") { + val outFile = project.file("$genProtosDir/period.proto") + outputs.file(outFile) + doLast { + outFile.writeText(""" + syntax = "proto2"; + + enum Period { + CRETACEOUS = 1; + } + """) + } +} + +tasks.matching { it.name == "generateMainProtos" }.configureEach { + dependsOn("genProto") +} + +wire { + sourcePath { + srcDir("src/main/proto/") + } + + sourcePath { + srcDir(genProtosDir) + } + + kotlin { + } +} diff --git a/wire-gradle-plugin/src/test/projects/configuration-cache-failure/gradle.properties b/wire-gradle-plugin/src/test/projects/configuration-cache-failure/gradle.properties new file mode 100644 index 0000000000..75cec37044 --- /dev/null +++ b/wire-gradle-plugin/src/test/projects/configuration-cache-failure/gradle.properties @@ -0,0 +1,4 @@ +org.gradle.caching=false +org.gradle.unsafe.configuration-cache=true +org.gradle.configuration-cache=true +VERSION_NAME=5.0.0-SNAPSHOT diff --git a/wire-gradle-plugin/src/test/projects/configuration-cache-failure/src/main/proto/dinosaur.proto b/wire-gradle-plugin/src/test/projects/configuration-cache-failure/src/main/proto/dinosaur.proto new file mode 100644 index 0000000000..50703bc424 --- /dev/null +++ b/wire-gradle-plugin/src/test/projects/configuration-cache-failure/src/main/proto/dinosaur.proto @@ -0,0 +1,7 @@ +syntax = "proto2"; + +import "period.proto"; + +message Dinosaur { + optional Period period = 5; +}