From b0254add6d74b9ccc6f43dfb9323581efb3b25a7 Mon Sep 17 00:00:00 2001 From: "Alexander.Likhachev" Date: Tue, 31 Oct 2023 00:20:15 +0100 Subject: [PATCH] [Gradle] Add a check for the `SNAPSHOT_SIZE` metric --- .../org/jetbrains/kotlin/gradle/BuildReportsIT.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildReportsIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildReportsIT.kt index e3ec6c9c498..7424e4890a1 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildReportsIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildReportsIT.kt @@ -164,7 +164,20 @@ class BuildReportsIT : KGPBaseTest() { assertEquals(formatSize(actualCacheDirectoriesSize), reportedCacheDirectoriesSize) } + fun validateSnapshotSizeMetric() { + // traverse only the `build` directory files, because Gradle also contains a file with the name `last-build.bin` + val actualSnapshotSize = Files.walk(projectPath.resolve("build")).use { files -> + val knownSnapshotFiles = setOf("last-build.bin", "build-history.bin", "abi-snapshot.bin") + files.asSequence().filter { Files.isRegularFile(it) && it.name in knownSnapshotFiles }.map { Files.size(it) }.sum() + } + // the first found line of the report should contain a sum of the metric per all the tasks + val reportedSnapshotSize = fileContents.lineSequence().find { "ABI snapshot size:" in it } + ?.replace("ABI snapshot size:", "")?.trim() + assertEquals(formatSize(actualSnapshotSize), reportedSnapshotSize) + } + validateTotalCachesSizeMetric() + validateSnapshotSizeMetric() } @DisplayName("Compiler build metrics report is produced")