From bdedc36ed3ba967dc553d9ba470ab49648e5ae27 Mon Sep 17 00:00:00 2001 From: Alexander Likhachev Date: Wed, 26 Oct 2022 11:40:38 +0200 Subject: [PATCH] [Gradle] Disable Android lint tests on Windows Lint leaves some file descriptors opened leading to test failure on Windows. See https://android.googlesource.com/platform/tools/base/+/be16b7622a15073725ef1c1555d78cce9fa8a795 for the fix. #KT-45748 In Progress --- .../kotlin/gradle/android/KotlinAndroidIT.kt | 1 + .../gradle/android/KotlinAndroidMppIT.kt | 2 +- .../gradle/testbase/androidConditions.kt | 19 +++++++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/androidConditions.kt diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/KotlinAndroidIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/KotlinAndroidIT.kt index 545cc23f084..55f44536287 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/KotlinAndroidIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/KotlinAndroidIT.kt @@ -166,6 +166,7 @@ class KotlinAndroidIT : KGPBaseTest() { agpVersion: String, jdkVersion: JdkVersions.ProvidedJdk, ) { + disabledOnWindowsWhenAgpVersionIsLowerThan(agpVersion, "7.4.0", "Lint leaves opened file descriptors") project( "AndroidProject", gradleVersion, diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/KotlinAndroidMppIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/KotlinAndroidMppIT.kt index f976ddf2016..a6d5411f1ee 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/KotlinAndroidMppIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/KotlinAndroidMppIT.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.gradle.testbase.* import org.jetbrains.kotlin.gradle.tooling.BuildKotlinToolingMetadataTask import org.jetbrains.kotlin.gradle.util.AGPVersion import org.jetbrains.kotlin.gradle.util.testResolveAllConfigurations -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.DisplayName import java.io.File import java.nio.file.Files @@ -542,6 +541,7 @@ class KotlinAndroidMppIT : KGPBaseTest() { agpVersion: String, jdkVersion: JdkVersions.ProvidedJdk, ) { + disabledOnWindowsWhenAgpVersionIsLowerThan(agpVersion, "7.4.0", "Lint leaves opened file descriptors") project( "AndroidProject", gradleVersion, diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/androidConditions.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/androidConditions.kt new file mode 100644 index 00000000000..cc5a1e407df --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/androidConditions.kt @@ -0,0 +1,19 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.testbase + +import org.gradle.util.internal.VersionNumber +import org.junit.jupiter.api.Assumptions.assumeFalse +import org.junit.jupiter.api.condition.OS + +fun disabledOnWindowsWhenAgpVersionIsLowerThan(currentAgpVersion: String, minimalAgpVersion: String, reason: String? = null) { + // isn't implemented via JUnit extension API because it doesn't allow accessing test parameters + // see https://github.com/junit-team/junit5/issues/1139 + assumeFalse( + OS.WINDOWS.isCurrentOs && VersionNumber.parse(currentAgpVersion) < VersionNumber.parse(minimalAgpVersion), + reason ?: "Disabled on Windows because $currentAgpVersion is lower than $minimalAgpVersion" + ) +} \ No newline at end of file