From 1545197e1f5fbdc372193bcf6c6829211474ecc3 Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 29 May 2020 13:37:06 +0200 Subject: [PATCH 1/6] Update AndroidArgsTest.kt --- .../src/test/kotlin/ftl/args/AndroidArgsTest.kt | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt b/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt index d628bfb03d..bf50e2a59e 100644 --- a/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt @@ -1,6 +1,5 @@ package ftl.args -import com.google.api.services.testing.model.TestSpecification import com.google.common.truth.Truth.assertThat import ftl.args.yml.AppTestPair import ftl.cli.firebase.test.android.AndroidRunCommand @@ -29,7 +28,6 @@ import org.junit.After import org.junit.Assert import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse -import org.junit.Assert.assertTrue import org.junit.Rule import org.junit.Test import org.junit.rules.ExpectedException @@ -1414,6 +1412,19 @@ AndroidArgs val testSpecification = TestSpecification().setupAndroidTest(androidTestConfig) assertTrue(testSpecification.androidInstrumentationTest.testTargets.isNotEmpty()) } + + @Test + fun `if set max-test-shards to -1 should give maximum amount`() { + val yaml = """ + gcloud: + app: $appApk + test: $testApk + flank: + max-test-shards: -1 + """.trimIndent() + val args = AndroidArgs.load(yaml) + assertEquals(50, args.maxTestShards) + } } private fun AndroidArgs.Companion.load(yamlData: String, cli: AndroidRunCommand? = null): AndroidArgs = load(StringReader(yamlData), cli) From 9cf8c4d020bf3d691ee345a57aa9858d6472c885 Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 29 May 2020 14:24:49 +0200 Subject: [PATCH 2/6] update release_notes, add tests and solution --- release_notes.md | 3 +-- .../src/main/kotlin/ftl/args/AndroidArgs.kt | 2 +- test_runner/src/main/kotlin/ftl/args/IArgs.kt | 6 ++++++ test_runner/src/main/kotlin/ftl/args/IosArgs.kt | 2 +- .../src/test/kotlin/ftl/args/AndroidArgsTest.kt | 5 +++-- .../src/test/kotlin/ftl/args/IosArgsTest.kt | 15 ++++++++++++++- .../test_app_cases/flank-single-errorFlaky.yml | 2 +- 7 files changed, 27 insertions(+), 8 deletions(-) diff --git a/release_notes.md b/release_notes.md index 8e14f5b238..91766b9c37 100644 --- a/release_notes.md +++ b/release_notes.md @@ -13,9 +13,8 @@ - [#798](https://github.com/Flank/flank/pull/798) Remove failure nodes from tests that passed on retry so that Jenkins JUnit plugin marks them as successful. ([adamfilipow92](https://github.com/adamfilipow92)) - [#822](https://github.com/Flank/flank/pull/822) Allow runtime test discovery when sharding is disabled by not setting test-targets. This unblocks cucumber testing. ([adamfilipow92](https://github.com/adamfilipow92)) - [#819](https://github.com/Flank/flank/pull/819) Display matrix results in a table format. ([piotradamczyk5](https://github.com/piotradamczyk5)) +- [#825](https://github.com/Flank/flank/pull/825) Automatically convert -1 in maximum-test-shards to the maximum shard amount. ([adamfilipow92](https://github.com/adamfilipow92)) - -- -- ## v20.05.2 diff --git a/test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt b/test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt index b66bd23475..0d9196d420 100644 --- a/test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt +++ b/test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt @@ -78,7 +78,7 @@ class AndroidArgs( val devices = cli?.device ?: androidGcloud.device private val flank = flankYml.flank - override val maxTestShards = cli?.maxTestShards ?: flank.maxTestShards + override val maxTestShards = fixMaxTestShardsValue(cli?.maxTestShards ?: flank.maxTestShards) override val shardTime = cli?.shardTime ?: flank.shardTime override val repeatTests = cli?.repeatTests ?: flank.repeatTests override val smartFlankGcsPath = cli?.smartFlankGcsPath ?: flank.smartFlankGcsPath diff --git a/test_runner/src/main/kotlin/ftl/args/IArgs.kt b/test_runner/src/main/kotlin/ftl/args/IArgs.kt index 9a3d2e4d2e..1dd1050574 100644 --- a/test_runner/src/main/kotlin/ftl/args/IArgs.kt +++ b/test_runner/src/main/kotlin/ftl/args/IArgs.kt @@ -51,6 +51,12 @@ interface IArgs { fun useLocalResultDir() = localResultDir != FlankYmlParams.defaultLocalResultsDir + fun fixMaxTestShardsValue(inputValue: Int): Int = if (inputValue == -1) { + AVAILABLE_SHARD_COUNT_RANGE.last + } else { + inputValue + } + companion object { // num_shards must be >= 1, and <= 50 val AVAILABLE_SHARD_COUNT_RANGE = 1..50 diff --git a/test_runner/src/main/kotlin/ftl/args/IosArgs.kt b/test_runner/src/main/kotlin/ftl/args/IosArgs.kt index 367b9b7d3f..7eade47916 100644 --- a/test_runner/src/main/kotlin/ftl/args/IosArgs.kt +++ b/test_runner/src/main/kotlin/ftl/args/IosArgs.kt @@ -56,7 +56,7 @@ class IosArgs( val devices = cli?.device ?: iosGcloud.device private val flank = flankYml.flank - override val maxTestShards = cli?.maxTestShards ?: flank.maxTestShards + override val maxTestShards = fixMaxTestShardsValue(cli?.maxTestShards ?: flank.maxTestShards) override val shardTime = cli?.shardTime ?: flank.shardTime override val repeatTests = cli?.repeatTests ?: flank.repeatTests override val smartFlankGcsPath = cli?.smartFlankGcsPath ?: flank.smartFlankGcsPath diff --git a/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt b/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt index bf50e2a59e..d64c271741 100644 --- a/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt @@ -1,6 +1,7 @@ package ftl.args import com.google.common.truth.Truth.assertThat +import ftl.args.IArgs.Companion.AVAILABLE_SHARD_COUNT_RANGE import ftl.args.yml.AppTestPair import ftl.cli.firebase.test.android.AndroidRunCommand import ftl.config.Device @@ -460,7 +461,7 @@ AndroidArgs val testShardChunks = getAndroidShardChunks(androidArgs) with(androidArgs) { - assert(maxTestShards, -1) + assert(maxTestShards, AVAILABLE_SHARD_COUNT_RANGE.last) assert(testShardChunks.size, 2) testShardChunks.forEach { chunk -> assert(chunk.size, 1) } } @@ -1423,7 +1424,7 @@ AndroidArgs max-test-shards: -1 """.trimIndent() val args = AndroidArgs.load(yaml) - assertEquals(50, args.maxTestShards) + assertEquals(AVAILABLE_SHARD_COUNT_RANGE.last, args.maxTestShards) } } diff --git a/test_runner/src/test/kotlin/ftl/args/IosArgsTest.kt b/test_runner/src/test/kotlin/ftl/args/IosArgsTest.kt index 82135c2a09..7e4f09512e 100644 --- a/test_runner/src/test/kotlin/ftl/args/IosArgsTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/IosArgsTest.kt @@ -345,7 +345,7 @@ IosArgs ) with(args) { - assert(maxTestShards, -1) + assert(maxTestShards, IArgs.AVAILABLE_SHARD_COUNT_RANGE.last) assert(testShardChunks.size, 17) testShardChunks.forEach { chunk -> assert(chunk.size, 1) } } @@ -904,6 +904,19 @@ IosArgs val iosArgs = IosArgs.load(simpleFlankPath) assertFalse(iosArgs.keepFilePath) } + + @Test + fun `if set max-test-shards to -1 should give maximum amount`() { + val yaml = """ + gcloud: + test: $testPath + xctestrun-file: $testPath + flank: + max-test-shards: -1 + """.trimIndent() + val args = IosArgs.load(yaml) + assertEquals(IArgs.AVAILABLE_SHARD_COUNT_RANGE.last, args.maxTestShards) + } } private fun IosArgs.Companion.load(yamlData: String, cli: IosRunCommand? = null): IosArgs = load(StringReader(yamlData), cli) diff --git a/test_runner/src/test/kotlin/ftl/fixtures/test_app_cases/flank-single-errorFlaky.yml b/test_runner/src/test/kotlin/ftl/fixtures/test_app_cases/flank-single-errorFlaky.yml index 8455b90fa3..044d04afbb 100644 --- a/test_runner/src/test/kotlin/ftl/fixtures/test_app_cases/flank-single-errorFlaky.yml +++ b/test_runner/src/test/kotlin/ftl/fixtures/test_app_cases/flank-single-errorFlaky.yml @@ -5,4 +5,4 @@ gcloud: flank: disable-sharding: false - max-test-shards: 1 + max-test-shards: -1 From 1e675348b09d3b3091bf7c4a2b9f1d89f50f48e6 Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 29 May 2020 16:05:46 +0200 Subject: [PATCH 3/6] Refractor magic number Set 1..50 range to use AVAILABLE_SHARD_COUNT_RANGE to avoid test fails on incerase range --- test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt | 5 +++-- test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt | 8 ++++---- test_runner/src/test/kotlin/ftl/args/ArgsHelperTest.kt | 2 +- .../gc/android/CreateAndroidInstrumentationTestTest.kt | 4 ++-- test_runner/src/test/kotlin/ftl/shard/ShardTest.kt | 3 ++- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt b/test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt index 1b93ea5237..b3ba955b61 100644 --- a/test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt +++ b/test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt @@ -10,6 +10,7 @@ import com.google.cloud.storage.BucketInfo import com.google.cloud.storage.Storage import com.google.cloud.storage.StorageClass import com.google.cloud.storage.StorageOptions +import ftl.args.IArgs.Companion.AVAILABLE_SHARD_COUNT_RANGE import ftl.args.yml.IYmlMap import ftl.args.yml.YamlObjectMapper import ftl.config.FtlConstants @@ -64,8 +65,8 @@ object ArgsHelper { " See https://github.com/GoogleCloudPlatform/google-cloud-java#specifying-a-project-id" ) - if (args.maxTestShards !in IArgs.AVAILABLE_SHARD_COUNT_RANGE && args.maxTestShards != -1) - throw FlankFatalError("max-test-shards must be >= 1 and <= 50, or -1. But current is ${args.maxTestShards}") + if (args.maxTestShards !in AVAILABLE_SHARD_COUNT_RANGE && args.maxTestShards != -1) + throw FlankFatalError("max-test-shards must be >= ${AVAILABLE_SHARD_COUNT_RANGE.first} and <= ${AVAILABLE_SHARD_COUNT_RANGE.last}, or -1. But current is ${args.maxTestShards}") if (args.shardTime <= 0 && args.shardTime != -1) throw FlankFatalError("shard-time must be >= 1 or -1") if (args.repeatTests < 1) throw FlankFatalError("num-test-runs must be >= 1") diff --git a/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt b/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt index d64c271741..0ce3fbd3c0 100644 --- a/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt @@ -669,7 +669,7 @@ AndroidArgs @Test fun `cli numUniformShards`() { - val expected = 50 + val expected = AVAILABLE_SHARD_COUNT_RANGE.last val cli = AndroidRunCommand() CommandLine(cli).parseArgs("--num-uniform-shards=$expected") @@ -690,9 +690,9 @@ AndroidArgs gcloud: app: $appApk test: $testApk - num-uniform-shards: 50 + num-uniform-shards: ${AVAILABLE_SHARD_COUNT_RANGE.last} flank: - max-test-shards: 50 + max-test-shards: ${AVAILABLE_SHARD_COUNT_RANGE.last} """ AndroidArgs.load(yaml) } @@ -1345,7 +1345,7 @@ AndroidArgs " num-flaky-test-attempts: 3", """ flank: - max-test-shards: 50 + max-test-shards: ${AVAILABLE_SHARD_COUNT_RANGE.last} """.trimIndent(), """ flank: diff --git a/test_runner/src/test/kotlin/ftl/args/ArgsHelperTest.kt b/test_runner/src/test/kotlin/ftl/args/ArgsHelperTest.kt index 43828351c5..5d0eba31d9 100644 --- a/test_runner/src/test/kotlin/ftl/args/ArgsHelperTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/ArgsHelperTest.kt @@ -189,7 +189,7 @@ class ArgsHelperTest { @Test fun testInvalidTestShards() { val maxTestShards = -2 - exceptionRule.expectMessage("max-test-shards must be >= 1 and <= 50, or -1. But current is $maxTestShards") + exceptionRule.expectMessage("max-test-shards must be >= ${IArgs.AVAILABLE_SHARD_COUNT_RANGE.first} and <= ${IArgs.AVAILABLE_SHARD_COUNT_RANGE.last}, or -1. But current is $maxTestShards") val args = spyk(AndroidArgs.default()) every { args.maxTestShards } returns maxTestShards diff --git a/test_runner/src/test/kotlin/ftl/gc/android/CreateAndroidInstrumentationTestTest.kt b/test_runner/src/test/kotlin/ftl/gc/android/CreateAndroidInstrumentationTestTest.kt index fa22149cc9..45357d7be7 100644 --- a/test_runner/src/test/kotlin/ftl/gc/android/CreateAndroidInstrumentationTestTest.kt +++ b/test_runner/src/test/kotlin/ftl/gc/android/CreateAndroidInstrumentationTestTest.kt @@ -2,6 +2,7 @@ package ftl.gc.android import com.google.api.services.testing.model.AndroidInstrumentationTest import com.google.api.services.testing.model.FileReference +import ftl.args.IArgs import ftl.args.ShardChunks import org.junit.Assert.assertEquals import org.junit.Assert.assertNotNull @@ -40,8 +41,7 @@ class UtilsKtTest { .setupTestTargets( disableSharding = false, testShards = testShards, - numUniformShards = 50, - keepTestTargetsEmpty = false + numUniformShards = IArgs.AVAILABLE_SHARD_COUNT_RANGE.last ) // then diff --git a/test_runner/src/test/kotlin/ftl/shard/ShardTest.kt b/test_runner/src/test/kotlin/ftl/shard/ShardTest.kt index fc5bc59523..d0659f8cb7 100644 --- a/test_runner/src/test/kotlin/ftl/shard/ShardTest.kt +++ b/test_runner/src/test/kotlin/ftl/shard/ShardTest.kt @@ -1,6 +1,7 @@ package ftl.shard import com.google.common.truth.Truth.assertThat +import ftl.args.IArgs import ftl.args.IosArgs import ftl.reports.xml.model.JUnitTestCase import ftl.reports.xml.model.JUnitTestResult @@ -211,7 +212,7 @@ class ShardTest { @Test fun `tests annotated with @Ignore should not produce additional shards`() { val androidMockedArgs = mockk() - every { androidMockedArgs.maxTestShards } returns 50 + every { androidMockedArgs.maxTestShards } returns IArgs.AVAILABLE_SHARD_COUNT_RANGE.last every { androidMockedArgs.shardTime } returns -1 val testsToRun = listOf( From ba4ad9648d67fada0cc08fa719b33824197ff6e1 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 1 Jun 2020 13:40:22 +0200 Subject: [PATCH 4/6] After rebase - build fix --- test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt | 2 ++ .../ftl/gc/android/CreateAndroidInstrumentationTestTest.kt | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt b/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt index 0ce3fbd3c0..3f37c1b462 100644 --- a/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt @@ -1,5 +1,6 @@ package ftl.args +import com.google.api.services.testing.model.TestSpecification import com.google.common.truth.Truth.assertThat import ftl.args.IArgs.Companion.AVAILABLE_SHARD_COUNT_RANGE import ftl.args.yml.AppTestPair @@ -29,6 +30,7 @@ import org.junit.After import org.junit.Assert import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue import org.junit.Rule import org.junit.Test import org.junit.rules.ExpectedException diff --git a/test_runner/src/test/kotlin/ftl/gc/android/CreateAndroidInstrumentationTestTest.kt b/test_runner/src/test/kotlin/ftl/gc/android/CreateAndroidInstrumentationTestTest.kt index 45357d7be7..f67db49ae7 100644 --- a/test_runner/src/test/kotlin/ftl/gc/android/CreateAndroidInstrumentationTestTest.kt +++ b/test_runner/src/test/kotlin/ftl/gc/android/CreateAndroidInstrumentationTestTest.kt @@ -41,7 +41,8 @@ class UtilsKtTest { .setupTestTargets( disableSharding = false, testShards = testShards, - numUniformShards = IArgs.AVAILABLE_SHARD_COUNT_RANGE.last + numUniformShards = IArgs.AVAILABLE_SHARD_COUNT_RANGE.last, + keepTestTargetsEmpty = false ) // then From 5b1ca8ca326f14f14383fb00891fdf0e15f8c5ed Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 1 Jun 2020 15:26:06 +0200 Subject: [PATCH 5/6] Revert changes in flank-single-errorFlaky --- .../ftl/fixtures/test_app_cases/flank-single-errorFlaky.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_runner/src/test/kotlin/ftl/fixtures/test_app_cases/flank-single-errorFlaky.yml b/test_runner/src/test/kotlin/ftl/fixtures/test_app_cases/flank-single-errorFlaky.yml index 044d04afbb..8455b90fa3 100644 --- a/test_runner/src/test/kotlin/ftl/fixtures/test_app_cases/flank-single-errorFlaky.yml +++ b/test_runner/src/test/kotlin/ftl/fixtures/test_app_cases/flank-single-errorFlaky.yml @@ -5,4 +5,4 @@ gcloud: flank: disable-sharding: false - max-test-shards: -1 + max-test-shards: 1 From 966bec7c2062185a33360a2bf3777098027ccda1 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 2 Jun 2020 15:12:21 +0200 Subject: [PATCH 6/6] Change messages on fast fail and change function fixMaxTestShardsValue name to convertToShardCount --- test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt | 2 +- test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt | 2 +- test_runner/src/main/kotlin/ftl/args/IArgs.kt | 2 +- test_runner/src/main/kotlin/ftl/args/IosArgs.kt | 2 +- test_runner/src/test/kotlin/ftl/args/ArgsHelperTest.kt | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt b/test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt index 0d9196d420..7ed26d848b 100644 --- a/test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt +++ b/test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt @@ -78,7 +78,7 @@ class AndroidArgs( val devices = cli?.device ?: androidGcloud.device private val flank = flankYml.flank - override val maxTestShards = fixMaxTestShardsValue(cli?.maxTestShards ?: flank.maxTestShards) + override val maxTestShards = convertToShardCount(cli?.maxTestShards ?: flank.maxTestShards) override val shardTime = cli?.shardTime ?: flank.shardTime override val repeatTests = cli?.repeatTests ?: flank.repeatTests override val smartFlankGcsPath = cli?.smartFlankGcsPath ?: flank.smartFlankGcsPath diff --git a/test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt b/test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt index b3ba955b61..d3163a4d57 100644 --- a/test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt +++ b/test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt @@ -66,7 +66,7 @@ object ArgsHelper { ) if (args.maxTestShards !in AVAILABLE_SHARD_COUNT_RANGE && args.maxTestShards != -1) - throw FlankFatalError("max-test-shards must be >= ${AVAILABLE_SHARD_COUNT_RANGE.first} and <= ${AVAILABLE_SHARD_COUNT_RANGE.last}, or -1. But current is ${args.maxTestShards}") + throw FlankFatalError("max-test-shards must be >= ${AVAILABLE_SHARD_COUNT_RANGE.first} and <= ${AVAILABLE_SHARD_COUNT_RANGE.last}. But current is ${args.maxTestShards}") if (args.shardTime <= 0 && args.shardTime != -1) throw FlankFatalError("shard-time must be >= 1 or -1") if (args.repeatTests < 1) throw FlankFatalError("num-test-runs must be >= 1") diff --git a/test_runner/src/main/kotlin/ftl/args/IArgs.kt b/test_runner/src/main/kotlin/ftl/args/IArgs.kt index 1dd1050574..0bd8a3a732 100644 --- a/test_runner/src/main/kotlin/ftl/args/IArgs.kt +++ b/test_runner/src/main/kotlin/ftl/args/IArgs.kt @@ -51,7 +51,7 @@ interface IArgs { fun useLocalResultDir() = localResultDir != FlankYmlParams.defaultLocalResultsDir - fun fixMaxTestShardsValue(inputValue: Int): Int = if (inputValue == -1) { + fun convertToShardCount(inputValue: Int): Int = if (inputValue == -1) { AVAILABLE_SHARD_COUNT_RANGE.last } else { inputValue diff --git a/test_runner/src/main/kotlin/ftl/args/IosArgs.kt b/test_runner/src/main/kotlin/ftl/args/IosArgs.kt index 7eade47916..8d87d34597 100644 --- a/test_runner/src/main/kotlin/ftl/args/IosArgs.kt +++ b/test_runner/src/main/kotlin/ftl/args/IosArgs.kt @@ -56,7 +56,7 @@ class IosArgs( val devices = cli?.device ?: iosGcloud.device private val flank = flankYml.flank - override val maxTestShards = fixMaxTestShardsValue(cli?.maxTestShards ?: flank.maxTestShards) + override val maxTestShards = convertToShardCount(cli?.maxTestShards ?: flank.maxTestShards) override val shardTime = cli?.shardTime ?: flank.shardTime override val repeatTests = cli?.repeatTests ?: flank.repeatTests override val smartFlankGcsPath = cli?.smartFlankGcsPath ?: flank.smartFlankGcsPath diff --git a/test_runner/src/test/kotlin/ftl/args/ArgsHelperTest.kt b/test_runner/src/test/kotlin/ftl/args/ArgsHelperTest.kt index 5d0eba31d9..6585d9a1e2 100644 --- a/test_runner/src/test/kotlin/ftl/args/ArgsHelperTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/ArgsHelperTest.kt @@ -189,7 +189,7 @@ class ArgsHelperTest { @Test fun testInvalidTestShards() { val maxTestShards = -2 - exceptionRule.expectMessage("max-test-shards must be >= ${IArgs.AVAILABLE_SHARD_COUNT_RANGE.first} and <= ${IArgs.AVAILABLE_SHARD_COUNT_RANGE.last}, or -1. But current is $maxTestShards") + exceptionRule.expectMessage("max-test-shards must be >= ${IArgs.AVAILABLE_SHARD_COUNT_RANGE.first} and <= ${IArgs.AVAILABLE_SHARD_COUNT_RANGE.last}. But current is $maxTestShards") val args = spyk(AndroidArgs.default()) every { args.maxTestShards } returns maxTestShards