From 5f10825a4dc4157e393f0d8e5e60e4feb871d6e7 Mon Sep 17 00:00:00 2001 From: Pawel Pasterz Date: Wed, 9 Jun 2021 08:26:24 +0200 Subject: [PATCH] Review changes --- .../main/kotlin/ftl/adapter/GoogleTestMatrixAndroid.kt | 2 +- test_runner/src/main/kotlin/ftl/api/TestAndroidMatrix.kt | 7 ++++++- .../ftl/client/google/run/android/GcAndroidTestMatrix.kt | 8 ++++---- .../src/main/kotlin/ftl/run/platform/RunAndroidTests.kt | 8 +++++++- .../src/test/kotlin/ftl/gc/GcAndroidTestMatrixTest.kt | 7 ++++--- 5 files changed, 22 insertions(+), 10 deletions(-) diff --git a/test_runner/src/main/kotlin/ftl/adapter/GoogleTestMatrixAndroid.kt b/test_runner/src/main/kotlin/ftl/adapter/GoogleTestMatrixAndroid.kt index fde2c15756..a6cd1f7be3 100644 --- a/test_runner/src/main/kotlin/ftl/adapter/GoogleTestMatrixAndroid.kt +++ b/test_runner/src/main/kotlin/ftl/adapter/GoogleTestMatrixAndroid.kt @@ -9,7 +9,7 @@ import com.google.testing.model.TestMatrix as GoogleTestMatrix object GoogleTestMatrixAndroid : TestMatrixAndroid.Execute, - (List>) -> List by { configTypePairs -> + (List) -> List by { configTypePairs -> runBlocking { executeAndroidTests(configTypePairs).map(GoogleTestMatrix::toApiModel) } diff --git a/test_runner/src/main/kotlin/ftl/api/TestAndroidMatrix.kt b/test_runner/src/main/kotlin/ftl/api/TestAndroidMatrix.kt index 4609fb4e69..d3aa293e1e 100644 --- a/test_runner/src/main/kotlin/ftl/api/TestAndroidMatrix.kt +++ b/test_runner/src/main/kotlin/ftl/api/TestAndroidMatrix.kt @@ -65,7 +65,12 @@ object TestMatrixAndroid { ) : Type() } - interface Execute : (List>) -> List + data class TestSetup( + val config: Config, + val type: Type + ) + + interface Execute : (List) -> List } typealias ShardChunks = List> diff --git a/test_runner/src/main/kotlin/ftl/client/google/run/android/GcAndroidTestMatrix.kt b/test_runner/src/main/kotlin/ftl/client/google/run/android/GcAndroidTestMatrix.kt index 74087cece3..fd74282151 100644 --- a/test_runner/src/main/kotlin/ftl/client/google/run/android/GcAndroidTestMatrix.kt +++ b/test_runner/src/main/kotlin/ftl/client/google/run/android/GcAndroidTestMatrix.kt @@ -32,10 +32,10 @@ import kotlinx.coroutines.awaitAll import kotlinx.coroutines.coroutineScope suspend fun executeAndroidTests( - typeConfigPairs: List> -): List = typeConfigPairs - .foldIndexed(emptyList>()) { testMatrixTypeIndex, testMatrices, testPair -> - testMatrices + executeAndroidTestMatrix(testPair.second, testMatrixTypeIndex, testPair.first) + testSetups: List +): List = testSetups + .foldIndexed(emptyList>()) { testMatrixTypeIndex, testMatrices, setUp -> + testMatrices + executeAndroidTestMatrix(setUp.type, testMatrixTypeIndex, setUp.config) }.awaitAll() private suspend fun executeAndroidTestMatrix( diff --git a/test_runner/src/main/kotlin/ftl/run/platform/RunAndroidTests.kt b/test_runner/src/main/kotlin/ftl/run/platform/RunAndroidTests.kt index d800d058ce..f1ee25d67d 100644 --- a/test_runner/src/main/kotlin/ftl/run/platform/RunAndroidTests.kt +++ b/test_runner/src/main/kotlin/ftl/run/platform/RunAndroidTests.kt @@ -3,6 +3,7 @@ package ftl.run.platform import flank.common.join import flank.common.logLn import ftl.api.RemoteStorage +import ftl.api.TestMatrixAndroid import ftl.api.executeTestMatrixAndroid import ftl.api.uploadToRemoteStorage import ftl.args.AndroidArgs @@ -45,7 +46,7 @@ internal suspend fun AndroidArgs.runAndroidTests(): TestResult = coroutineScope allTestShardChunks += context.shards } } - .map { context -> createAndroidTestConfig(context.args) to createAndroidTestMatrixType(context) } + .map { createTestSetup(it) } .run { executeTestMatrixAndroid(this) } .takeIf { it.isNotEmpty() } ?: throw FlankGeneralError("There are no Android tests to run.") @@ -83,3 +84,8 @@ private fun AndroidMatrixTestShards.saveShards(config: AndroidArgs) = saveShardC size = size, obfuscatedOutput = config.obfuscateDumpShards ) + +private suspend fun createTestSetup(context: AndroidTestContext) = TestMatrixAndroid.TestSetup( + config = createAndroidTestConfig(context.args), + type = context.args.createAndroidTestMatrixType(context) +) diff --git a/test_runner/src/test/kotlin/ftl/gc/GcAndroidTestMatrixTest.kt b/test_runner/src/test/kotlin/ftl/gc/GcAndroidTestMatrixTest.kt index 05c91620e9..d588cbff4a 100644 --- a/test_runner/src/test/kotlin/ftl/gc/GcAndroidTestMatrixTest.kt +++ b/test_runner/src/test/kotlin/ftl/gc/GcAndroidTestMatrixTest.kt @@ -1,6 +1,7 @@ package ftl.gc import com.google.testing.model.TestSetup +import ftl.api.TestMatrixAndroid import ftl.api.TestMatrixAndroid.Type import ftl.args.AndroidArgs import ftl.client.google.run.android.executeAndroidTests @@ -49,7 +50,7 @@ class GcAndroidTestMatrixTest { ) val config = createAndroidTestConfig(androidArgs) - executeAndroidTests(listOf(config to type)) + executeAndroidTests(listOf(TestMatrixAndroid.TestSetup(config, type))) } } @@ -78,7 +79,7 @@ class GcAndroidTestMatrixTest { val config = createAndroidTestConfig(androidArgs) - executeAndroidTests(listOf(config to type)) + executeAndroidTests(listOf(TestMatrixAndroid.TestSetup(config, type))) } } @@ -112,7 +113,7 @@ class GcAndroidTestMatrixTest { val config = createAndroidTestConfig(androidArgs) - executeAndroidTests(listOf(config to type)) + executeAndroidTests(listOf(TestMatrixAndroid.TestSetup(config, type))) } }