11/*
2- * Copyright (c) 2024 Oleg Yukhnevich. Use of this source code is governed by the Apache 2.0 license.
2+ * Copyright (c) 2024-2025 Oleg Yukhnevich. Use of this source code is governed by the Apache 2.0 license.
33 */
44
55@file:Suppress(" UnstableApiUsage" )
66
77package ckbuild.tests
88
9+ import ckbuild.*
910import com.android.build.api.dsl.*
1011import org.gradle.api.*
1112import org.gradle.api.tasks.testing.*
@@ -19,52 +20,52 @@ class TestFilters(
1920)
2021
2122fun Project.applyProviderTestFilters () {
22- val providerTestsStep = providers.gradleProperty (" ckbuild.providerTests.step" ).orNull
23-
24- val testFilters = when (providerTestsStep) {
25- null -> TestFilters (
26- androidTestRegex = " ^((?!CompatibilityTest#(generateStep|generateStressStep|validateStep)).)*$ " ,
27- kotlinTestFilter = {
28- setExcludePatterns(
29- " *CompatibilityTest.generateStep " ,
30- " *CompatibilityTest.generateStressStep " ,
31- " *CompatibilityTest.validateStep "
32- )
33- }
34- )
35- " compatibility.generate " -> TestFilters (
36- androidTestRegex = " ^.*CompatibilityTest#generateStep$ " ,
37- kotlinTestFilter = {
38- setIncludePatterns( " *CompatibilityTest.generateStep " )
39- }
40- )
41- " compatibility.generateStress " -> TestFilters (
42- androidTestRegex = " ^.*CompatibilityTest#generateStressStep$ " ,
43- kotlinTestFilter = {
44- setIncludePatterns( " *CompatibilityTest.generateStressStep " )
45- }
46- )
47- " compatibility.validate " -> TestFilters (
48- androidTestRegex = " ^.*CompatibilityTest#validateStep$ " ,
49- kotlinTestFilter = {
50- setIncludePatterns( " *CompatibilityTest.validateStep " )
51- }
52- )
53- else -> error( " wrong argument " )
23+ val testFilters = stringProperty (" ckbuild.providerTests.step" , defaultValue = " compatibility.loop " ).map { providerTestsStep ->
24+ when (providerTestsStep) {
25+ " compatibility.loop " -> TestFilters (
26+ androidTestRegex = " ^((?!CompatibilityTest#(generateStep|generateStressStep|validateStep)).)*$ " ,
27+ kotlinTestFilter = {
28+ setExcludePatterns(
29+ " *CompatibilityTest.generateStep " ,
30+ " *CompatibilityTest.generateStressStep " ,
31+ " *CompatibilityTest.validateStep "
32+ )
33+ }
34+ )
35+ " compatibility.generate " -> TestFilters (
36+ androidTestRegex = " ^.*CompatibilityTest#generateStep$ " ,
37+ kotlinTestFilter = {
38+ setIncludePatterns( " *CompatibilityTest.generateStep " )
39+ }
40+ )
41+ " compatibility.generateStress " -> TestFilters (
42+ androidTestRegex = " ^.*CompatibilityTest#generateStressStep$ " ,
43+ kotlinTestFilter = {
44+ setIncludePatterns( " *CompatibilityTest.generateStressStep " )
45+ }
46+ )
47+ " compatibility.validate " -> TestFilters (
48+ androidTestRegex = " ^.*CompatibilityTest#validateStep$ " ,
49+ kotlinTestFilter = {
50+ setIncludePatterns( " *CompatibilityTest.validateStep " )
51+ }
52+ )
53+ else -> error( " wrong argument " )
54+ }
5455 }
5556
5657 plugins.withId(" org.jetbrains.kotlin.multiplatform" ) {
5758 extensions.configure<KotlinMultiplatformExtension >(" kotlin" ) {
5859 targets.withType<KotlinTargetWithTests <* , * >>().configureEach {
5960 testRuns.configureEach {
60- filter(testFilters.kotlinTestFilter)
61+ filter(testFilters.get(). kotlinTestFilter)
6162 }
6263 }
6364
6465 plugins.withId(" com.android.kotlin.multiplatform.library" ) {
6566 androidLibrary {
6667 compilations.withType(KotlinMultiplatformAndroidDeviceTestCompilation ::class ).configureEach {
67- instrumentationRunnerArguments[" tests_regex" ] = testFilters.androidTestRegex
68+ instrumentationRunnerArguments[" tests_regex" ] = testFilters.get(). androidTestRegex
6869 }
6970 }
7071 }
0 commit comments