diff --git a/release_notes.md b/release_notes.md index 7915796415..6518689d27 100644 --- a/release_notes.md +++ b/release_notes.md @@ -1,5 +1,6 @@ ## next (unreleased) +- [#781](https://github.com/Flank/flank/pull/781) Remove local exists check on cloud results-dir. Fixes crash when results-dir is set by the user. ([adamfilipow92](https://github.com/adamfilipow92)) - [#656](https://github.com/Flank/flank/issues/656) Improve error message reporting. ([adamfilipow92](https://github.com/adamfilipow92)) - [#783](https://github.com/Flank/flank/pull/783) Use legacy results for iOS by default. ([pawelpasterz](https://github.com/pawelpasterz)) diff --git a/test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt b/test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt index 0c599bea18..485de4c3a0 100644 --- a/test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt +++ b/test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt @@ -46,7 +46,7 @@ class AndroidArgs( private val gcloud = gcloudYml.gcloud override val resultsBucket: String - override val resultsDir = (cli?.resultsDir ?: gcloud.resultsDir)?.also { assertFileExists(it, "from results-dir") } + override val resultsDir = (cli?.resultsDir ?: gcloud.resultsDir) 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/test/kotlin/Debug.kt b/test_runner/src/test/kotlin/Debug.kt index c0c8288396..6d12980a56 100644 --- a/test_runner/src/test/kotlin/Debug.kt +++ b/test_runner/src/test/kotlin/Debug.kt @@ -10,8 +10,8 @@ fun main() { // run "gradle check" to generate required fixtures val projectId = System.getenv("GOOGLE_CLOUD_PROJECT") ?: "YOUR PROJECT ID" - val quantity = "multiple" - val type = "parse-error" + val quantity = "single" + val type = "success" // Bugsnag keeps the process alive so we must call exitProcess // https://github.com/bugsnag/bugsnag-java/issues/151 diff --git a/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt b/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt index 34a73e6bcd..17bd6c434e 100644 --- a/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt @@ -19,6 +19,7 @@ import io.mockk.mockkObject import io.mockk.unmockkAll import kotlinx.coroutines.runBlocking import org.junit.After +import org.junit.Assert import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Rule @@ -27,6 +28,9 @@ import org.junit.rules.ExpectedException import org.junit.runner.RunWith import picocli.CommandLine import java.io.StringReader +import java.nio.file.Files +import java.nio.file.Paths +import java.util.UUID @Suppress("TooManyFunctions") @RunWith(FlankTestRunner::class) @@ -969,16 +973,6 @@ 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() @@ -1252,6 +1246,25 @@ AndroidArgs val parsedYml = AndroidArgs.load(yaml) runBlocking { runAndroidTests(parsedYml) } } + + @Test + fun `results-dir (cloud directory) should not throw if it doesn't exist locally`() { + val resultsDir = UUID.randomUUID().toString() + val directoryPath = Paths.get(resultsDir) + if (Files.exists(directoryPath)) { + Assert.fail("Test directory ($resultsDir) shouldn't exists! It's a remote directory.") + } + val yaml = """ + gcloud: + app: $appApk + test: $testApk + results-dir: $resultsDir + """.trimIndent() + AndroidArgs.load(yaml) + if (Files.exists(directoryPath)) { + Assert.fail("Test directory ($resultsDir) shouldn't be created! It's a remote directory on the cloud!") + } + } } private fun AndroidArgs.Companion.load(yamlData: String, cli: AndroidRunCommand? = null): AndroidArgs = load(StringReader(yamlData), cli)