1 package com.google.devtools.ksp.test 2 3 import org.gradle.testkit.runner.GradleRunner 4 import org.gradle.testkit.runner.TaskOutcome 5 import org.junit.Assert 6 import org.junit.Rule 7 import org.junit.Test 8 import java.io.File 9 10 class BuildCacheIT { 11 @Rule 12 @JvmField 13 val project1: TemporaryTestProject = TemporaryTestProject("buildcache", "playground") 14 15 @Rule 16 @JvmField 17 val project2: TemporaryTestProject = TemporaryTestProject("buildcache", "playground") 18 19 @Test testBuildCachenull20 fun testBuildCache() { 21 val buildCacheDir = File(project1.root, "build-cache").absolutePath.replace(File.separatorChar, '/') 22 File(project1.root, "gradle.properties").appendText("\nbuildCacheDir=$buildCacheDir") 23 File(project2.root, "gradle.properties").appendText("\nbuildCacheDir=$buildCacheDir") 24 25 GradleRunner.create().withProjectDir(project1.root).withArguments( 26 "--build-cache", 27 ":workload:clean", 28 "build" 29 ).build().let { 30 Assert.assertEquals(TaskOutcome.SUCCESS, it.task(":workload:kspKotlin")?.outcome) 31 } 32 33 GradleRunner.create().withProjectDir(project2.root).withArguments( 34 "--build-cache", 35 ":workload:clean", 36 "build" 37 ).build().let { 38 Assert.assertEquals(TaskOutcome.FROM_CACHE, it.task(":workload:kspKotlin")?.outcome) 39 } 40 } 41 } 42