diff --git a/release_notes.md b/release_notes.md index 85d9aa6eca..f21510da90 100644 --- a/release_notes.md +++ b/release_notes.md @@ -1,4 +1,5 @@ ## next (unreleased) +- [#772](https://github.com/Flank/flank/pull/772) Fail fast when results-dir is incorrect. ([jan-gogo](https://github.com/jan-gogo)) - [#757](https://github.com/Flank/flank/pull/767) Reduce memory usage by using Reader and Writer instead of ByteArrays. ([jan-gogo](https://github.com/jan-gogo)) - [#763](https://github.com/Flank/flank/pull/763) Use "localhost" as default for hostname to fix backward compatibility. ([jan-gogo](https://github.com/jan-gogo)) - [#757](https://github.com/Flank/flank/pull/757) Print version and revision before each command. ([jan-gogo](https://github.com/jan-gogo)) diff --git a/test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt b/test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt index dfb93ddb1a..27452176aa 100644 --- a/test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt +++ b/test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt @@ -45,7 +45,7 @@ class AndroidArgs( ) : IArgs { private val gcloud = gcloudYml.gcloud override val resultsBucket: String - override val resultsDir = cli?.resultsDir ?: gcloud.resultsDir + override val resultsDir = (cli?.resultsDir ?: gcloud.resultsDir)?.also { assertFileExists(it, "from results-dir") } override val recordVideo = cli?.recordVideo ?: cli?.noRecordVideo?.not() ?: gcloud.recordVideo override val testTimeout = cli?.timeout ?: gcloud.timeout override val async = cli?.async ?: gcloud.async diff --git a/test_runner/src/main/kotlin/ftl/run/platform/common/BeforeRunTests.kt b/test_runner/src/main/kotlin/ftl/run/platform/common/BeforeRunTests.kt index 2006f2e95c..ece234abb7 100644 --- a/test_runner/src/main/kotlin/ftl/run/platform/common/BeforeRunTests.kt +++ b/test_runner/src/main/kotlin/ftl/run/platform/common/BeforeRunTests.kt @@ -18,7 +18,7 @@ internal fun beforeRunTests(args: IArgs): Pair { // Avoid spamming the results/ dir with temporary files from running the test suite. if (FtlConstants.useMock) - deleteMockResultDirOnShotDown(args, runGcsPath) + deleteMockResultDirOnShutDown(args, runGcsPath) if (args.useLocalResultDir()) { // Only one result is stored when using --local-result-dir @@ -36,7 +36,7 @@ private fun assertMockUrl() { if (!GcToolResults.service.rootUrl.contains(FtlConstants.localhost)) throw RuntimeException("expected localhost in GcToolResults") } -private fun deleteMockResultDirOnShotDown(args: IArgs, runGcsPath: String) { +private fun deleteMockResultDirOnShutDown(args: IArgs, runGcsPath: String) { Runtime.getRuntime().addShutdownHook(Thread { File(args.localResultDir, runGcsPath).deleteRecursively() }) diff --git a/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt b/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt index d07981606d..34a73e6bcd 100644 --- a/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt @@ -969,20 +969,30 @@ AndroidArgs assertThat(AndroidArgs.load(yaml, cli).testTargetsAlwaysRun).isEqualTo(arrayListOf("com.A", "com.B")) } + @Test(expected = FlankFatalError::class) + fun `cli resultsDir fail if not exist`() { + val yaml = """ + gcloud: + app: $appApk + test: $testApk + results-dir: not_exist + """ + AndroidArgs.load(yaml) + } @Test fun `cli resultsDir`() { val cli = AndroidRunCommand() - CommandLine(cli).parseArgs("--results-dir=b") + CommandLine(cli).parseArgs("--results-dir=build") val yaml = """ gcloud: app: $appApk test: $testApk - results-dir: a + results-dir: results """ - assertThat(AndroidArgs.load(yaml).resultsDir).isEqualTo("a") - assertThat(AndroidArgs.load(yaml, cli).resultsDir).isEqualTo("b") + assertThat(AndroidArgs.load(yaml).resultsDir).isEqualTo("results") + assertThat(AndroidArgs.load(yaml, cli).resultsDir).isEqualTo("build") } @Test