Skip to content

Commit

Permalink
Remove obsoleted tests and platformDir from Paparazzi config
Browse files Browse the repository at this point in the history
  • Loading branch information
jrodbx committed May 29, 2024
1 parent 4c9a34b commit 3e67547
Show file tree
Hide file tree
Showing 13 changed files with 4 additions and 257 deletions.
1 change: 0 additions & 1 deletion paparazzi-gradle-plugin/api/paparazzi-gradle-plugin.api
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ public abstract class app/cash/paparazzi/gradle/PrepareResourcesTask : org/gradl
public abstract fun getAarAssetDirs ()Lorg/gradle/api/provider/ListProperty;
public abstract fun getAarExplodedDirs ()Lorg/gradle/api/provider/ListProperty;
public abstract fun getArtifactFiles ()Lorg/gradle/api/file/ConfigurableFileCollection;
public abstract fun getCompileSdkVersion ()Lorg/gradle/api/provider/Property;
public abstract fun getModuleResourceDirs ()Lorg/gradle/api/provider/ListProperty;
public abstract fun getNonTransitiveRClassEnabled ()Lorg/gradle/api/provider/Property;
public abstract fun getPackageName ()Lorg/gradle/api/provider/Property;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,6 @@ public class PaparazziPlugin : Plugin<Project> {
task.artifactFiles.from(packageAwareArtifactFiles)
task.nonTransitiveRClassEnabled.set(nonTransitiveRClassEnabled)
task.targetSdkVersion.set(android.targetSdkVersion())
task.compileSdkVersion.set(android.compileSdkVersion())

val localResourcePaths = localResourceDirs
.map { layers -> layers.flatten() }
Expand Down Expand Up @@ -343,10 +342,6 @@ public class PaparazziPlugin : Plugin<Project> {

private fun BaseExtension.packageName(): String = namespace ?: ""

private fun BaseExtension.compileSdkVersion(): String {
return compileSdkVersion!!.substringAfter("android-", DEFAULT_COMPILE_SDK_VERSION.toString())
}

private fun BaseExtension.targetSdkVersion(): String {
return defaultConfig.targetSdkVersion?.apiLevel?.toString()
?: DEFAULT_COMPILE_SDK_VERSION.toString()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,6 @@ public abstract class PrepareResourcesTask : DefaultTask() {
@get:Input
public abstract val targetSdkVersion: Property<String>

@get:Input
public abstract val compileSdkVersion: Property<String>

@get:Input
public abstract val projectResourceDirs: ListProperty<String>

Expand Down Expand Up @@ -86,8 +83,6 @@ public abstract class PrepareResourcesTask : DefaultTask() {
val config = Config(
mainPackage = mainPackage,
targetSdkVersion = targetSdkVersion.get(),
// Use compileSdkVersion for system framework resources.
platformDir = "platforms/android-${compileSdkVersion.get()}/",
resourcePackageNames = resourcePackageNames,
projectResourceDirs = projectResourceDirs.get(),
moduleResourceDirs = moduleResourceDirs.get(),
Expand All @@ -103,7 +98,6 @@ public abstract class PrepareResourcesTask : DefaultTask() {
internal data class Config(
val mainPackage: String,
val targetSdkVersion: String,
val platformDir: String,
val resourcePackageNames: List<String>,
val projectResourceDirs: List<String>,
val moduleResourceDirs: List<String>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -238,35 +238,6 @@ class PaparazziPluginTest {
assertThat(snapshotsDir.exists()).isFalse()
}

@Test
fun buildClassNextSdkAccess() {
val fixtureRoot = File("src/test/projects/build-class-next-sdk")

// Paparazzi detects Android platform dir contents to be static. Therefore, it re-runs only on
// compileSdk changes. Sandbox previews are an exception, so let's disable caching for this
// test task.
gradleRunner
.withArguments("testDebug", "-Dorg.gradle.caching=false", "--stacktrace")
.runFixture(fixtureRoot) { build() }

val snapshotsDir = File(fixtureRoot, "custom/reports/paparazzi/debug/images")
assertThat(snapshotsDir.exists()).isFalse()
}

@Test
fun missingPlatformDirTest() {
val fixtureRoot = File("src/test/projects/missing-platform-dir")

val result = gradleRunner
.withArguments("testDebug", "--stacktrace")
.forwardOutput()
.runFixture(fixtureRoot) { buildAndFail() }

assertThat(result.task(":testDebug")).isNull()
assertThat(result.output).contains("java.io.FileNotFoundException")
assertThat(result.output).contains("Missing platform version oops")
}

@Test
fun flagDebugLinkedObjectsIsOff() {
val fixtureRoot = File("src/test/projects/flag-debug-linked-objects-off")
Expand Down Expand Up @@ -1233,42 +1204,6 @@ class PaparazziPluginTest {
.containsExactly("^caches/transforms-4/[0-9a-f]{32}/transformed/external2/assets\$")
}

@Test
fun verifyTargetSdkIsSameAsCompileSdk() {
val fixtureRoot = File("src/test/projects/verify-resources-java")

val result = gradleRunner
.withArguments(":consumer:compileDebugUnitTestJavaWithJavac", "--stacktrace")
.runFixture(fixtureRoot) { build() }

assertThat(result.task(":consumer:preparePaparazziDebugResources")).isNotNull()

val resourcesFile = File(fixtureRoot, "consumer/build/intermediates/paparazzi/debug/resources.json")
assertThat(resourcesFile.exists()).isTrue()

val config = resourcesFile.loadConfig()
assertThat(config.targetSdkVersion).isEqualTo("34")
assertThat(config.platformDir).isEqualTo("platforms/android-34/")
}

@Test
fun verifyTargetSdkIsDifferentFromCompileSdk() {
val fixtureRoot = File("src/test/projects/different-target-sdk")

val result = gradleRunner
.withArguments("compileDebugUnitTestJavaWithJavac", "--stacktrace")
.runFixture(fixtureRoot) { build() }

assertThat(result.task(":preparePaparazziDebugResources")).isNotNull()

val resourcesFile = File(fixtureRoot, "build/intermediates/paparazzi/debug/resources.json")
assertThat(resourcesFile.exists()).isTrue()

val config = resourcesFile.loadConfig()
assertThat(config.targetSdkVersion).isEqualTo("29")
assertThat(config.platformDir).isEqualTo("platforms/android-34/")
}

@Test
fun verifyOpenAssets() {
val fixtureRoot = File("src/test/projects/open-assets")
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

7 changes: 3 additions & 4 deletions paparazzi/api/paparazzi.api
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,9 @@ public final class app/cash/paparazzi/DeviceConfig$Companion {

public final class app/cash/paparazzi/Environment {
public static final field $stable I
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Lapp/cash/paparazzi/Environment;
public static synthetic fun copy$default (Lapp/cash/paparazzi/Environment;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lapp/cash/paparazzi/Environment;
public fun <init> (Ljava/lang/String;Ljava/lang/String;ILjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
public final fun copy (Ljava/lang/String;Ljava/lang/String;ILjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Lapp/cash/paparazzi/Environment;
public static synthetic fun copy$default (Lapp/cash/paparazzi/Environment;Ljava/lang/String;Ljava/lang/String;ILjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lapp/cash/paparazzi/Environment;
public fun equals (Ljava/lang/Object;)Z
public final fun getAllModuleAssetDirs ()Ljava/util/List;
public final fun getAppTestDir ()Ljava/lang/String;
Expand All @@ -74,7 +74,6 @@ public final class app/cash/paparazzi/Environment {
public final fun getLocalResourceDirs ()Ljava/util/List;
public final fun getModuleResourceDirs ()Ljava/util/List;
public final fun getPackageName ()Ljava/lang/String;
public final fun getPlatformDir ()Ljava/lang/String;
public final fun getResourcePackageNames ()Ljava/util/List;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
Expand Down
2 changes: 1 addition & 1 deletion paparazzi/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,6 @@ def generateTestConfig = tasks.register("generateTestConfig") {
"mainPackage": "app.cash.paparazzi",
"mergeResourcesOutputDir": ".",
"targetSdkVersion": "34",
"platformDir": "platforms/android-34/",
"mergeAssetsOutputDir": ".",
"resourcePackageNames": ["app.cash.paparazzi"],
"projectResourceDirs": [],
Expand Down Expand Up @@ -150,6 +149,7 @@ tasks.withType(Test).configureEach {
"paparazzi.layoutlib.resources.root",
configurations.layoutlibResources.singleFile.absolutePath
)

// Uncomment to debug JNI issues in layoutlib
// jvmArgs '-Xcheck:jni'
testLogging {
Expand Down
19 changes: 0 additions & 19 deletions paparazzi/src/main/java/app/cash/paparazzi/Environment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,11 @@ import dev.drewhamilton.poko.Poko
import okio.buffer
import okio.source
import java.io.File
import java.io.FileNotFoundException
import java.nio.file.Path
import java.nio.file.Paths
import java.util.Locale
import kotlin.io.path.exists

@Poko
public class Environment(
public val platformDir: String,
public val appTestDir: String,
public val packageName: String,
public val compileSdkVersion: Int,
Expand All @@ -40,18 +36,7 @@ public class Environment(
public val allModuleAssetDirs: List<String>,
public val libraryAssetDirs: List<String>
) {
init {
val platformDirPath = Path.of(platformDir)
if (!platformDirPath.exists()) {
val elements = platformDirPath.nameCount
val platform = platformDirPath.subpath(elements - 1, elements)
val platformVersion = platform.toString().split("-").last()
throw FileNotFoundException("Missing platform version $platformVersion. Install with sdkmanager --install \"platforms;$platform\"")
}
}

public fun copy(
platformDir: String = this.platformDir,
appTestDir: String = this.appTestDir,
packageName: String = this.packageName,
compileSdkVersion: Int = this.compileSdkVersion,
Expand All @@ -63,7 +48,6 @@ public class Environment(
libraryAssetDirs: List<String> = this.libraryAssetDirs
): Environment =
Environment(
platformDir,
appTestDir,
packageName,
compileSdkVersion,
Expand All @@ -87,15 +71,13 @@ public fun detectEnvironment(): Environment {
val projectDir = Paths.get(System.getProperty("paparazzi.project.dir"))
val appTestDir = Paths.get(System.getProperty("paparazzi.build.dir"))
val artifactsCacheDir = Paths.get(System.getProperty("paparazzi.artifacts.cache.dir"))
val androidHome = Paths.get(androidHome())

val resourcesFile = File(System.getProperty("paparazzi.test.resources"))
val moshi = Moshi.Builder().addLast(KotlinJsonAdapterFactory()).build()!!
val config =
resourcesFile.source().buffer().use { moshi.adapter(Config::class.java).fromJson(it)!! }

return Environment(
platformDir = androidHome.resolve(config.platformDir).toString(),
appTestDir = appTestDir.toString(),
packageName = config.mainPackage,
compileSdkVersion = config.targetSdkVersion.toInt(),
Expand All @@ -111,7 +93,6 @@ public fun detectEnvironment(): Environment {
internal data class Config(
val mainPackage: String,
val targetSdkVersion: String,
val platformDir: String,
val resourcePackageNames: List<String>,
val projectResourceDirs: List<String>,
val moduleResourceDirs: List<String>,
Expand Down

0 comments on commit 3e67547

Please sign in to comment.