• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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