From d2b2e49a45cf385a3fd37931bd63c5685d7fb3b8 Mon Sep 17 00:00:00 2001 From: Pawel Pasterz Date: Sat, 22 Aug 2020 21:33:13 +0200 Subject: [PATCH 1/2] Add missing messages --- test_runner/src/main/kotlin/ftl/Main.kt | 2 +- .../main/kotlin/ftl/args/ArgsFileVisitor.kt | 2 +- .../src/main/kotlin/ftl/args/ArgsHelper.kt | 4 +- .../src/main/kotlin/ftl/args/IosArgs.kt | 2 +- .../kotlin/ftl/args/ValidateAndroidArgs.kt | 4 +- .../kotlin/ftl/args/ValidateCommonArgs.kt | 4 +- .../main/kotlin/ftl/args/ValidateIosArgs.kt | 4 +- .../kotlin/ftl/args/yml/YamlDeprecated.kt | 4 +- .../kotlin/ftl/args/yml/YamlErrorConverter.kt | 2 +- .../ftl/cli/firebase/test/CommandUtil.kt | 2 +- .../AndroidLocalesDescribeCommand.kt | 2 +- .../models/AndroidModelDescribeCommand.kt | 2 +- .../AndroidVersionsDescribeCommand.kt | 2 +- .../IosLocalesDescribeCommand.kt | 2 +- .../ios/models/IosModelDescribeCommand.kt | 2 +- .../versions/IosVersionsDescribeCommand.kt | 2 +- .../NetworkProfilesDescribeCommand.kt | 2 +- .../main/kotlin/ftl/config/FtlConstants.kt | 4 +- .../src/main/kotlin/ftl/doctor/Doctor.kt | 2 +- .../ftl/environment/LocalesDescription.kt | 2 +- .../android/AndroidModelDescription.kt | 2 +- .../AndroidSoftwareVersionDescription.kt | 2 +- .../environment/ios/IosModelDescription.kt | 2 +- .../ios/IosSoftwareVersionDescription.kt | 2 +- .../src/main/kotlin/ftl/filter/TestFilters.kt | 4 +- .../main/kotlin/ftl/gc/GcAndroidTestMatrix.kt | 2 +- .../src/main/kotlin/ftl/gc/GcIosTestMatrix.kt | 2 +- .../src/main/kotlin/ftl/gc/GcStorage.kt | 2 +- .../src/main/kotlin/ftl/gc/GcTestMatrix.kt | 2 +- .../src/main/kotlin/ftl/gc/GcToolResults.kt | 8 +- .../main/kotlin/ftl/http/ExecuteWithRetry.kt | 4 +- test_runner/src/main/kotlin/ftl/ios/Parse.kt | 2 +- .../src/main/kotlin/ftl/ios/Xctestrun.kt | 2 +- .../src/main/kotlin/ftl/json/MatrixMap.kt | 10 +-- .../src/main/kotlin/ftl/mock/MockServer.kt | 2 +- .../src/main/kotlin/ftl/mock/TestArtifact.kt | 3 +- .../ftl/reports/outcome/TestOutcomeContext.kt | 2 +- .../main/kotlin/ftl/reports/xml/JUnitXml.kt | 2 +- .../ftl/reports/xml/model/JUnitTestSuite.kt | 2 +- .../src/main/kotlin/ftl/run/DumpShards.kt | 2 +- .../src/main/kotlin/ftl/run/NewTestRun.kt | 4 +- .../main/kotlin/ftl/run/common/GetLastArgs.kt | 2 +- .../kotlin/ftl/run/common/GetLastMatrices.kt | 2 +- .../ftl/run/exception/ExceptionHandler.kt | 80 +++++++++++++++++++ .../{util => run/exception}/FlankException.kt | 2 +- .../{util => run/exception}/FlankExitCodes.kt | 2 +- .../ftl/run/platform/RunAndroidTests.kt | 2 +- .../ftl/run/platform/android/ResolveApks.kt | 2 +- .../ftl/run/platform/common/BeforeRunTests.kt | 2 +- .../main/kotlin/ftl/run/status/OutputStyle.kt | 2 +- .../src/main/kotlin/ftl/shard/Shard.kt | 2 +- .../src/main/kotlin/ftl/shard/ShardCount.kt | 2 +- test_runner/src/main/kotlin/ftl/util/Bash.kt | 1 + .../src/main/kotlin/ftl/util/FileLoader.kt | 1 + .../src/main/kotlin/ftl/util/FileReference.kt | 1 + .../src/main/kotlin/ftl/util/StopWatch.kt | 1 + test_runner/src/main/kotlin/ftl/util/Utils.kt | 66 +-------------- test_runner/src/test/kotlin/Debug.kt | 2 +- .../kotlin/ftl/args/AndroidArgsFileTest.kt | 2 +- .../test/kotlin/ftl/args/AndroidArgsTest.kt | 6 +- .../kotlin/ftl/args/ArgsHelperFilePathTest.kt | 2 +- .../test/kotlin/ftl/args/ArgsHelperTest.kt | 4 +- .../test/kotlin/ftl/args/IosArgsFileTest.kt | 2 +- .../src/test/kotlin/ftl/args/IosArgsTest.kt | 2 +- .../kotlin/ftl/args/yml/ErrorParserTest.kt | 2 +- .../kotlin/ftl/args/yml/FileLoaderTest.kt | 2 +- .../kotlin/ftl/args/yml/YamlDeprecatedTest.kt | 2 +- .../test/android/AndroidDoctorCommandTest.kt | 2 +- .../AndroidLocalesDescribeCommandTest.kt | 2 +- .../AndroidVersionsDescribeCommandTest.kt | 2 +- .../firebase/test/ios/IosDoctorCommandTest.kt | 2 +- .../IosLocalesDescribeCommandTest.kt | 2 +- .../IosVersionsDescribeCommandTest.kt | 2 +- .../NetworkProfileDescribeTest.kt | 2 +- .../android/AndroidModelDescriptionTest.kt | 2 +- .../ios/IosModelDescriptionTest.kt | 2 +- .../test/kotlin/ftl/filter/TestFiltersTest.kt | 2 +- .../test/kotlin/ftl/gc/GcToolResultsTest.kt | 6 +- .../src/test/kotlin/ftl/ios/ParseTest.kt | 2 +- .../src/test/kotlin/ftl/ios/XctestrunTest.kt | 2 +- .../ftl/reports/utils/ReportManagerTest.kt | 2 +- .../kotlin/ftl/reports/xml/JUnitXmlTest.kt | 2 +- .../run/platform/android/ResolveApksKtTest.kt | 2 +- .../src/test/kotlin/ftl/shard/ShardTest.kt | 2 +- .../src/test/kotlin/ftl/test/util/LocalGcs.kt | 2 +- .../src/test/kotlin/ftl/util/BashTest.kt | 1 + .../src/test/kotlin/ftl/util/StopWatchTest.kt | 1 + .../src/test/kotlin/ftl/util/UtilsTest.kt | 13 +++ 88 files changed, 201 insertions(+), 165 deletions(-) create mode 100644 test_runner/src/main/kotlin/ftl/run/exception/ExceptionHandler.kt rename test_runner/src/main/kotlin/ftl/{util => run/exception}/FlankException.kt (99%) rename test_runner/src/main/kotlin/ftl/{util => run/exception}/FlankExitCodes.kt (90%) diff --git a/test_runner/src/main/kotlin/ftl/Main.kt b/test_runner/src/main/kotlin/ftl/Main.kt index dfa191bea1..4380dd8ff4 100644 --- a/test_runner/src/main/kotlin/ftl/Main.kt +++ b/test_runner/src/main/kotlin/ftl/Main.kt @@ -12,7 +12,7 @@ import ftl.cli.firebase.test.ProvidedSoftwareCommand import ftl.log.setDebugLogging import ftl.util.readRevision import ftl.util.readVersion -import ftl.util.withGlobalExceptionHandling +import ftl.run.exception.withGlobalExceptionHandling import picocli.CommandLine @CommandLine.Command( diff --git a/test_runner/src/main/kotlin/ftl/args/ArgsFileVisitor.kt b/test_runner/src/main/kotlin/ftl/args/ArgsFileVisitor.kt index a5c400daf8..05ff50d253 100644 --- a/test_runner/src/main/kotlin/ftl/args/ArgsFileVisitor.kt +++ b/test_runner/src/main/kotlin/ftl/args/ArgsFileVisitor.kt @@ -1,6 +1,6 @@ package ftl.args -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import java.io.IOException import java.nio.file.FileSystems import java.nio.file.FileVisitOption diff --git a/test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt b/test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt index efaa5ff9de..6f636766b7 100644 --- a/test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt +++ b/test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt @@ -24,8 +24,8 @@ import ftl.shard.StringShards import ftl.shard.createShardsByShardCount import ftl.shard.shardCountByTime import ftl.shard.stringShards -import ftl.util.FlankConfigurationError -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankConfigurationError +import ftl.run.exception.FlankGeneralError import ftl.util.FlankTestMethod import ftl.util.assertNotEmpty import java.io.File diff --git a/test_runner/src/main/kotlin/ftl/args/IosArgs.kt b/test_runner/src/main/kotlin/ftl/args/IosArgs.kt index 98449288b3..701da27cf1 100644 --- a/test_runner/src/main/kotlin/ftl/args/IosArgs.kt +++ b/test_runner/src/main/kotlin/ftl/args/IosArgs.kt @@ -2,7 +2,7 @@ package ftl.args import com.google.common.annotations.VisibleForTesting import ftl.ios.Xctestrun.findTestNames -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import ftl.util.FlankTestMethod data class IosArgs( diff --git a/test_runner/src/main/kotlin/ftl/args/ValidateAndroidArgs.kt b/test_runner/src/main/kotlin/ftl/args/ValidateAndroidArgs.kt index 1810c0ac61..02455300f5 100644 --- a/test_runner/src/main/kotlin/ftl/args/ValidateAndroidArgs.kt +++ b/test_runner/src/main/kotlin/ftl/args/ValidateAndroidArgs.kt @@ -7,8 +7,8 @@ import ftl.android.UnsupportedModelId import ftl.android.UnsupportedVersionId import ftl.config.containsPhysicalDevices import ftl.config.containsVirtualDevices -import ftl.util.FlankConfigurationError -import ftl.util.IncompatibleTestDimensionError +import ftl.run.exception.FlankConfigurationError +import ftl.run.exception.IncompatibleTestDimensionError import java.io.File fun AndroidArgs.validate() { diff --git a/test_runner/src/main/kotlin/ftl/args/ValidateCommonArgs.kt b/test_runner/src/main/kotlin/ftl/args/ValidateCommonArgs.kt index 656220d4d9..2af477f600 100644 --- a/test_runner/src/main/kotlin/ftl/args/ValidateCommonArgs.kt +++ b/test_runner/src/main/kotlin/ftl/args/ValidateCommonArgs.kt @@ -2,8 +2,8 @@ package ftl.args import ftl.config.Device import ftl.config.FtlConstants -import ftl.util.FlankConfigurationError -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankConfigurationError +import ftl.run.exception.FlankGeneralError fun CommonArgs.validate() { assertProjectId() diff --git a/test_runner/src/main/kotlin/ftl/args/ValidateIosArgs.kt b/test_runner/src/main/kotlin/ftl/args/ValidateIosArgs.kt index 561c1f9c92..fffdd91c30 100644 --- a/test_runner/src/main/kotlin/ftl/args/ValidateIosArgs.kt +++ b/test_runner/src/main/kotlin/ftl/args/ValidateIosArgs.kt @@ -1,8 +1,8 @@ package ftl.args import ftl.ios.IosCatalog -import ftl.util.FlankConfigurationError -import ftl.util.IncompatibleTestDimensionError +import ftl.run.exception.FlankConfigurationError +import ftl.run.exception.IncompatibleTestDimensionError fun IosArgs.validate() { assertXcodeSupported() diff --git a/test_runner/src/main/kotlin/ftl/args/yml/YamlDeprecated.kt b/test_runner/src/main/kotlin/ftl/args/yml/YamlDeprecated.kt index 4c4683129a..c8bac5b930 100644 --- a/test_runner/src/main/kotlin/ftl/args/yml/YamlDeprecated.kt +++ b/test_runner/src/main/kotlin/ftl/args/yml/YamlDeprecated.kt @@ -9,8 +9,8 @@ import com.fasterxml.jackson.databind.node.ObjectNode import com.google.common.annotations.VisibleForTesting import ftl.args.ArgsHelper.yamlMapper import ftl.util.loadFile -import ftl.util.FlankConfigurationError -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankConfigurationError +import ftl.run.exception.FlankGeneralError import java.io.Reader import java.nio.file.Files import java.nio.file.Path diff --git a/test_runner/src/main/kotlin/ftl/args/yml/YamlErrorConverter.kt b/test_runner/src/main/kotlin/ftl/args/yml/YamlErrorConverter.kt index c96273828e..060065f06d 100644 --- a/test_runner/src/main/kotlin/ftl/args/yml/YamlErrorConverter.kt +++ b/test_runner/src/main/kotlin/ftl/args/yml/YamlErrorConverter.kt @@ -5,7 +5,7 @@ package ftl.args.yml import com.fasterxml.jackson.databind.JsonNode import com.fasterxml.jackson.dataformat.yaml.snakeyaml.error.MarkedYAMLException import ftl.args.yml.errors.ConfigurationErrorMessageBuilder -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError fun convertConfigurationErrorExceptions(missingParameterError: Exception, yaml: JsonNode?): Throwable { val errorMessageBuilder = ConfigurationErrorMessageBuilder diff --git a/test_runner/src/main/kotlin/ftl/cli/firebase/test/CommandUtil.kt b/test_runner/src/main/kotlin/ftl/cli/firebase/test/CommandUtil.kt index c886d2ca69..84cd441483 100644 --- a/test_runner/src/main/kotlin/ftl/cli/firebase/test/CommandUtil.kt +++ b/test_runner/src/main/kotlin/ftl/cli/firebase/test/CommandUtil.kt @@ -1,7 +1,7 @@ package ftl.cli.firebase.test import ftl.args.yml.YamlDeprecated -import ftl.util.YmlValidationError +import ftl.run.exception.YmlValidationError import java.nio.file.Path fun processValidation(validationResult: String, shouldFix: Boolean, ymlPath: Path) { diff --git a/test_runner/src/main/kotlin/ftl/cli/firebase/test/android/configuration/AndroidLocalesDescribeCommand.kt b/test_runner/src/main/kotlin/ftl/cli/firebase/test/android/configuration/AndroidLocalesDescribeCommand.kt index cad4e9ee72..9c588d3add 100644 --- a/test_runner/src/main/kotlin/ftl/cli/firebase/test/android/configuration/AndroidLocalesDescribeCommand.kt +++ b/test_runner/src/main/kotlin/ftl/cli/firebase/test/android/configuration/AndroidLocalesDescribeCommand.kt @@ -3,7 +3,7 @@ package ftl.cli.firebase.test.android.configuration import ftl.android.AndroidCatalog.getLocaleDescription import ftl.args.AndroidArgs import ftl.config.FtlConstants -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import picocli.CommandLine import java.nio.file.Paths diff --git a/test_runner/src/main/kotlin/ftl/cli/firebase/test/android/models/AndroidModelDescribeCommand.kt b/test_runner/src/main/kotlin/ftl/cli/firebase/test/android/models/AndroidModelDescribeCommand.kt index a47b144170..b036af4f25 100644 --- a/test_runner/src/main/kotlin/ftl/cli/firebase/test/android/models/AndroidModelDescribeCommand.kt +++ b/test_runner/src/main/kotlin/ftl/cli/firebase/test/android/models/AndroidModelDescribeCommand.kt @@ -3,7 +3,7 @@ package ftl.cli.firebase.test.android.models import ftl.android.AndroidCatalog import ftl.args.AndroidArgs import ftl.config.FtlConstants -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import picocli.CommandLine import java.nio.file.Paths diff --git a/test_runner/src/main/kotlin/ftl/cli/firebase/test/android/versions/AndroidVersionsDescribeCommand.kt b/test_runner/src/main/kotlin/ftl/cli/firebase/test/android/versions/AndroidVersionsDescribeCommand.kt index 238efda430..6d27d74009 100644 --- a/test_runner/src/main/kotlin/ftl/cli/firebase/test/android/versions/AndroidVersionsDescribeCommand.kt +++ b/test_runner/src/main/kotlin/ftl/cli/firebase/test/android/versions/AndroidVersionsDescribeCommand.kt @@ -3,7 +3,7 @@ package ftl.cli.firebase.test.android.versions import ftl.android.AndroidCatalog import ftl.args.AndroidArgs import ftl.config.FtlConstants -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import picocli.CommandLine import java.nio.file.Paths diff --git a/test_runner/src/main/kotlin/ftl/cli/firebase/test/ios/configuration/IosLocalesDescribeCommand.kt b/test_runner/src/main/kotlin/ftl/cli/firebase/test/ios/configuration/IosLocalesDescribeCommand.kt index 07f1184d20..0becec25c6 100644 --- a/test_runner/src/main/kotlin/ftl/cli/firebase/test/ios/configuration/IosLocalesDescribeCommand.kt +++ b/test_runner/src/main/kotlin/ftl/cli/firebase/test/ios/configuration/IosLocalesDescribeCommand.kt @@ -3,7 +3,7 @@ package ftl.cli.firebase.test.ios.configuration import ftl.args.IosArgs import ftl.config.FtlConstants import ftl.ios.IosCatalog.getLocaleDescription -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import picocli.CommandLine import java.nio.file.Paths diff --git a/test_runner/src/main/kotlin/ftl/cli/firebase/test/ios/models/IosModelDescribeCommand.kt b/test_runner/src/main/kotlin/ftl/cli/firebase/test/ios/models/IosModelDescribeCommand.kt index 7da5630219..721d438a1f 100644 --- a/test_runner/src/main/kotlin/ftl/cli/firebase/test/ios/models/IosModelDescribeCommand.kt +++ b/test_runner/src/main/kotlin/ftl/cli/firebase/test/ios/models/IosModelDescribeCommand.kt @@ -3,7 +3,7 @@ package ftl.cli.firebase.test.ios.models import ftl.args.IosArgs import ftl.config.FtlConstants import ftl.ios.IosCatalog -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import picocli.CommandLine import java.nio.file.Paths diff --git a/test_runner/src/main/kotlin/ftl/cli/firebase/test/ios/versions/IosVersionsDescribeCommand.kt b/test_runner/src/main/kotlin/ftl/cli/firebase/test/ios/versions/IosVersionsDescribeCommand.kt index 205d0c4403..29dae3ff8c 100644 --- a/test_runner/src/main/kotlin/ftl/cli/firebase/test/ios/versions/IosVersionsDescribeCommand.kt +++ b/test_runner/src/main/kotlin/ftl/cli/firebase/test/ios/versions/IosVersionsDescribeCommand.kt @@ -3,7 +3,7 @@ package ftl.cli.firebase.test.ios.versions import ftl.args.IosArgs import ftl.config.FtlConstants import ftl.ios.IosCatalog -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import picocli.CommandLine import java.nio.file.Paths diff --git a/test_runner/src/main/kotlin/ftl/cli/firebase/test/networkprofiles/NetworkProfilesDescribeCommand.kt b/test_runner/src/main/kotlin/ftl/cli/firebase/test/networkprofiles/NetworkProfilesDescribeCommand.kt index a05a7668ee..68758f618b 100644 --- a/test_runner/src/main/kotlin/ftl/cli/firebase/test/networkprofiles/NetworkProfilesDescribeCommand.kt +++ b/test_runner/src/main/kotlin/ftl/cli/firebase/test/networkprofiles/NetworkProfilesDescribeCommand.kt @@ -1,7 +1,7 @@ package ftl.cli.firebase.test.networkprofiles import ftl.environment.networkProfileDescription -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import picocli.CommandLine @CommandLine.Command( diff --git a/test_runner/src/main/kotlin/ftl/config/FtlConstants.kt b/test_runner/src/main/kotlin/ftl/config/FtlConstants.kt index db0e84e03f..a801b89d6b 100644 --- a/test_runner/src/main/kotlin/ftl/config/FtlConstants.kt +++ b/test_runner/src/main/kotlin/ftl/config/FtlConstants.kt @@ -16,8 +16,8 @@ import ftl.args.IosArgs import ftl.gc.UserAuth import ftl.http.HttpTimeoutIncrease import ftl.util.BugsnagInitHelper.initBugsnag -import ftl.util.FlankConfigurationError -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankConfigurationError +import ftl.run.exception.FlankGeneralError import ftl.util.readRevision import java.io.IOException import java.nio.file.Path diff --git a/test_runner/src/main/kotlin/ftl/doctor/Doctor.kt b/test_runner/src/main/kotlin/ftl/doctor/Doctor.kt index f8fc65be04..96d2ea3f92 100644 --- a/test_runner/src/main/kotlin/ftl/doctor/Doctor.kt +++ b/test_runner/src/main/kotlin/ftl/doctor/Doctor.kt @@ -7,7 +7,7 @@ import ftl.args.ArgsHelper import ftl.args.IArgs import ftl.config.loadAndroidConfig import ftl.config.loadIosConfig -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import ftl.util.loadFile import java.io.Reader import java.lang.StringBuilder diff --git a/test_runner/src/main/kotlin/ftl/environment/LocalesDescription.kt b/test_runner/src/main/kotlin/ftl/environment/LocalesDescription.kt index dec88999d0..9fb5e71cbe 100644 --- a/test_runner/src/main/kotlin/ftl/environment/LocalesDescription.kt +++ b/test_runner/src/main/kotlin/ftl/environment/LocalesDescription.kt @@ -1,7 +1,7 @@ package ftl.environment import com.google.api.services.testing.model.Locale -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError fun List.getLocaleDescription(localeId: String) = findLocales(localeId)?.prepareDescription().orErrorMessage(localeId).plus("\n") diff --git a/test_runner/src/main/kotlin/ftl/environment/android/AndroidModelDescription.kt b/test_runner/src/main/kotlin/ftl/environment/android/AndroidModelDescription.kt index fd2ece6d06..fd8d0bbc9d 100644 --- a/test_runner/src/main/kotlin/ftl/environment/android/AndroidModelDescription.kt +++ b/test_runner/src/main/kotlin/ftl/environment/android/AndroidModelDescription.kt @@ -1,7 +1,7 @@ package ftl.environment.android import com.google.api.services.testing.model.AndroidModel -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError fun List.getDescription(modelId: String) = findModel(modelId)?.prepareDescription().orErrorMessage(modelId) diff --git a/test_runner/src/main/kotlin/ftl/environment/android/AndroidSoftwareVersionDescription.kt b/test_runner/src/main/kotlin/ftl/environment/android/AndroidSoftwareVersionDescription.kt index 6317628e62..54980c2e6a 100644 --- a/test_runner/src/main/kotlin/ftl/environment/android/AndroidSoftwareVersionDescription.kt +++ b/test_runner/src/main/kotlin/ftl/environment/android/AndroidSoftwareVersionDescription.kt @@ -1,7 +1,7 @@ package ftl.environment.android import com.google.api.services.testing.model.AndroidVersion -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError fun List.getDescription(versionId: String) = findVersion(versionId)?.prepareDescription().orErrorMessage(versionId) diff --git a/test_runner/src/main/kotlin/ftl/environment/ios/IosModelDescription.kt b/test_runner/src/main/kotlin/ftl/environment/ios/IosModelDescription.kt index b0b2f88869..18f3e1b1a4 100644 --- a/test_runner/src/main/kotlin/ftl/environment/ios/IosModelDescription.kt +++ b/test_runner/src/main/kotlin/ftl/environment/ios/IosModelDescription.kt @@ -1,7 +1,7 @@ package ftl.environment.ios import com.google.api.services.testing.model.IosModel -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError fun List.getDescription(modelId: String) = findModel(modelId)?.prepareDescription().orErrorMessage(modelId) diff --git a/test_runner/src/main/kotlin/ftl/environment/ios/IosSoftwareVersionDescription.kt b/test_runner/src/main/kotlin/ftl/environment/ios/IosSoftwareVersionDescription.kt index 507597c54b..c1a06585be 100644 --- a/test_runner/src/main/kotlin/ftl/environment/ios/IosSoftwareVersionDescription.kt +++ b/test_runner/src/main/kotlin/ftl/environment/ios/IosSoftwareVersionDescription.kt @@ -1,7 +1,7 @@ package ftl.environment.ios import com.google.api.services.testing.model.IosVersion -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError fun List.getDescription(versionId: String) = findVersion(versionId)?.prepareDescription().orErrorMessage(versionId) diff --git a/test_runner/src/main/kotlin/ftl/filter/TestFilters.kt b/test_runner/src/main/kotlin/ftl/filter/TestFilters.kt index a80cabca76..772f316d70 100644 --- a/test_runner/src/main/kotlin/ftl/filter/TestFilters.kt +++ b/test_runner/src/main/kotlin/ftl/filter/TestFilters.kt @@ -2,8 +2,8 @@ package ftl.filter import com.linkedin.dex.parser.TestMethod import ftl.config.FtlConstants -import ftl.util.FlankConfigurationError -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankConfigurationError +import ftl.run.exception.FlankGeneralError import java.io.IOException import java.nio.file.Files import java.nio.file.Paths diff --git a/test_runner/src/main/kotlin/ftl/gc/GcAndroidTestMatrix.kt b/test_runner/src/main/kotlin/ftl/gc/GcAndroidTestMatrix.kt index 9939e0fe7d..767326c154 100644 --- a/test_runner/src/main/kotlin/ftl/gc/GcAndroidTestMatrix.kt +++ b/test_runner/src/main/kotlin/ftl/gc/GcAndroidTestMatrix.kt @@ -18,7 +18,7 @@ import ftl.gc.android.mapToDeviceFiles import ftl.gc.android.setEnvironmentVariables import ftl.gc.android.setupAndroidTest import ftl.run.platform.android.AndroidTestConfig -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import ftl.util.join import ftl.util.timeoutToSeconds diff --git a/test_runner/src/main/kotlin/ftl/gc/GcIosTestMatrix.kt b/test_runner/src/main/kotlin/ftl/gc/GcIosTestMatrix.kt index 8030bb268c..76f7504a86 100644 --- a/test_runner/src/main/kotlin/ftl/gc/GcIosTestMatrix.kt +++ b/test_runner/src/main/kotlin/ftl/gc/GcIosTestMatrix.kt @@ -16,7 +16,7 @@ import com.google.api.services.testing.model.ToolResultsHistory import ftl.args.IosArgs import ftl.ios.Xctestrun import ftl.ios.Xctestrun.toByteArray -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import ftl.util.ShardCounter import ftl.util.join import ftl.util.timeoutToSeconds diff --git a/test_runner/src/main/kotlin/ftl/gc/GcStorage.kt b/test_runner/src/main/kotlin/ftl/gc/GcStorage.kt index 32a76e2877..e9fa5c1278 100644 --- a/test_runner/src/main/kotlin/ftl/gc/GcStorage.kt +++ b/test_runner/src/main/kotlin/ftl/gc/GcStorage.kt @@ -13,7 +13,7 @@ import ftl.config.FtlConstants.GCS_PREFIX import ftl.reports.xml.model.JUnitTestResult import ftl.reports.xml.parseAllSuitesXml import ftl.reports.xml.xmlToString -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import ftl.util.ProgressBar import ftl.util.join import java.io.File diff --git a/test_runner/src/main/kotlin/ftl/gc/GcTestMatrix.kt b/test_runner/src/main/kotlin/ftl/gc/GcTestMatrix.kt index b16e3daa27..845d708ee3 100644 --- a/test_runner/src/main/kotlin/ftl/gc/GcTestMatrix.kt +++ b/test_runner/src/main/kotlin/ftl/gc/GcTestMatrix.kt @@ -3,7 +3,7 @@ package ftl.gc import com.google.api.services.testing.model.CancelTestMatrixResponse import com.google.api.services.testing.model.TestMatrix import ftl.http.executeWithRetry -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.withContext diff --git a/test_runner/src/main/kotlin/ftl/gc/GcToolResults.kt b/test_runner/src/main/kotlin/ftl/gc/GcToolResults.kt index 76871878a5..4bcf946173 100644 --- a/test_runner/src/main/kotlin/ftl/gc/GcToolResults.kt +++ b/test_runner/src/main/kotlin/ftl/gc/GcToolResults.kt @@ -19,10 +19,10 @@ import ftl.config.FtlConstants.applicationName import ftl.config.FtlConstants.httpCredential import ftl.config.FtlConstants.httpTransport import ftl.http.executeWithRetry -import ftl.util.FTLProjectError -import ftl.util.FlankGeneralError -import ftl.util.PermissionDenied -import ftl.util.ProjectNotFound +import ftl.run.exception.FTLProjectError +import ftl.run.exception.FlankGeneralError +import ftl.run.exception.PermissionDenied +import ftl.run.exception.ProjectNotFound object GcToolResults { diff --git a/test_runner/src/main/kotlin/ftl/http/ExecuteWithRetry.kt b/test_runner/src/main/kotlin/ftl/http/ExecuteWithRetry.kt index 64f699b609..171d00c7cc 100644 --- a/test_runner/src/main/kotlin/ftl/http/ExecuteWithRetry.kt +++ b/test_runner/src/main/kotlin/ftl/http/ExecuteWithRetry.kt @@ -3,8 +3,8 @@ package ftl.http import com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest import com.google.api.client.http.HttpResponseException import ftl.config.FtlConstants -import ftl.util.PermissionDenied -import ftl.util.ProjectNotFound +import ftl.run.exception.PermissionDenied +import ftl.run.exception.ProjectNotFound import kotlinx.coroutines.delay import kotlinx.coroutines.runBlocking import java.io.IOException diff --git a/test_runner/src/main/kotlin/ftl/ios/Parse.kt b/test_runner/src/main/kotlin/ftl/ios/Parse.kt index e20894096e..7b1a16c6d9 100644 --- a/test_runner/src/main/kotlin/ftl/ios/Parse.kt +++ b/test_runner/src/main/kotlin/ftl/ios/Parse.kt @@ -1,8 +1,8 @@ package ftl.ios import ftl.config.FtlConstants.isMacOS +import ftl.run.exception.FlankGeneralError import ftl.util.Bash -import ftl.util.FlankGeneralError import ftl.util.copyBinaryResource import java.io.File diff --git a/test_runner/src/main/kotlin/ftl/ios/Xctestrun.kt b/test_runner/src/main/kotlin/ftl/ios/Xctestrun.kt index fd9bb17d31..31b7ec66dd 100644 --- a/test_runner/src/main/kotlin/ftl/ios/Xctestrun.kt +++ b/test_runner/src/main/kotlin/ftl/ios/Xctestrun.kt @@ -4,7 +4,7 @@ import com.dd.plist.NSArray import com.dd.plist.NSDictionary import com.dd.plist.NSString import com.dd.plist.PropertyListParser -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import java.io.ByteArrayOutputStream import java.io.File import java.nio.file.Paths diff --git a/test_runner/src/main/kotlin/ftl/json/MatrixMap.kt b/test_runner/src/main/kotlin/ftl/json/MatrixMap.kt index 52b868b16a..49c35fe397 100644 --- a/test_runner/src/main/kotlin/ftl/json/MatrixMap.kt +++ b/test_runner/src/main/kotlin/ftl/json/MatrixMap.kt @@ -1,11 +1,11 @@ package ftl.json import com.google.api.services.testing.model.TestMatrix -import ftl.util.FTLError -import ftl.util.FailedMatrixError -import ftl.util.IncompatibleTestDimensionError -import ftl.util.InfrastructureError -import ftl.util.MatrixCanceledError +import ftl.run.exception.FTLError +import ftl.run.exception.FailedMatrixError +import ftl.run.exception.IncompatibleTestDimensionError +import ftl.run.exception.InfrastructureError +import ftl.run.exception.MatrixCanceledError import ftl.util.MatrixState class MatrixMap( diff --git a/test_runner/src/main/kotlin/ftl/mock/MockServer.kt b/test_runner/src/main/kotlin/ftl/mock/MockServer.kt index 779726ed42..592d804bea 100644 --- a/test_runner/src/main/kotlin/ftl/mock/MockServer.kt +++ b/test_runner/src/main/kotlin/ftl/mock/MockServer.kt @@ -35,7 +35,7 @@ import ftl.config.FtlConstants import ftl.config.FtlConstants.JSON_FACTORY import ftl.log.LogbackLogger import ftl.util.Bash -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import ftl.util.StepOutcome.failure import ftl.util.StepOutcome.flaky import ftl.util.StepOutcome.inconclusive diff --git a/test_runner/src/main/kotlin/ftl/mock/TestArtifact.kt b/test_runner/src/main/kotlin/ftl/mock/TestArtifact.kt index 72498655c2..72473986d7 100644 --- a/test_runner/src/main/kotlin/ftl/mock/TestArtifact.kt +++ b/test_runner/src/main/kotlin/ftl/mock/TestArtifact.kt @@ -1,6 +1,6 @@ package ftl.mock -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.ResponseBody @@ -14,6 +14,7 @@ import java.net.Socket import java.nio.file.Files import java.nio.file.Paths import java.util.concurrent.TimeUnit +import kotlin.math.pow import java.util.zip.ZipFile import kotlin.math.pow diff --git a/test_runner/src/main/kotlin/ftl/reports/outcome/TestOutcomeContext.kt b/test_runner/src/main/kotlin/ftl/reports/outcome/TestOutcomeContext.kt index c7fbdc01f9..3d63a4477a 100644 --- a/test_runner/src/main/kotlin/ftl/reports/outcome/TestOutcomeContext.kt +++ b/test_runner/src/main/kotlin/ftl/reports/outcome/TestOutcomeContext.kt @@ -7,7 +7,7 @@ import com.google.api.services.toolresults.model.Step import ftl.gc.GcToolResults import ftl.json.SavedMatrix import ftl.json.createSavedMatrix -import ftl.util.FTLError +import ftl.run.exception.FTLError import ftl.util.timeoutToSeconds data class TestOutcomeContext( diff --git a/test_runner/src/main/kotlin/ftl/reports/xml/JUnitXml.kt b/test_runner/src/main/kotlin/ftl/reports/xml/JUnitXml.kt index d010eed83c..a1657e0a34 100644 --- a/test_runner/src/main/kotlin/ftl/reports/xml/JUnitXml.kt +++ b/test_runner/src/main/kotlin/ftl/reports/xml/JUnitXml.kt @@ -7,7 +7,7 @@ import com.fasterxml.jackson.module.kotlin.KotlinModule import ftl.reports.xml.model.JUnitTestResult import ftl.reports.xml.model.JUnitTestSuite import ftl.reports.xml.preprocesor.fixHtmlCodes -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import java.io.File import java.nio.file.Files import java.nio.file.Path diff --git a/test_runner/src/main/kotlin/ftl/reports/xml/model/JUnitTestSuite.kt b/test_runner/src/main/kotlin/ftl/reports/xml/model/JUnitTestSuite.kt index a37860b5e5..74f19878f5 100644 --- a/test_runner/src/main/kotlin/ftl/reports/xml/model/JUnitTestSuite.kt +++ b/test_runner/src/main/kotlin/ftl/reports/xml/model/JUnitTestSuite.kt @@ -2,7 +2,7 @@ package ftl.reports.xml.model import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import java.util.Locale data class JUnitTestSuite( diff --git a/test_runner/src/main/kotlin/ftl/run/DumpShards.kt b/test_runner/src/main/kotlin/ftl/run/DumpShards.kt index 1a3b95a4fc..5fa60b1758 100644 --- a/test_runner/src/main/kotlin/ftl/run/DumpShards.kt +++ b/test_runner/src/main/kotlin/ftl/run/DumpShards.kt @@ -4,9 +4,9 @@ import ftl.args.AndroidArgs import ftl.args.IosArgs import ftl.args.isInstrumentationTest import ftl.run.common.prettyPrint +import ftl.run.exception.FlankConfigurationError import ftl.run.model.AndroidMatrixTestShards import ftl.run.platform.android.getAndroidMatrixShards -import ftl.util.FlankConfigurationError import ftl.util.obfuscatePrettyPrinter import java.nio.file.Files import java.nio.file.Paths diff --git a/test_runner/src/main/kotlin/ftl/run/NewTestRun.kt b/test_runner/src/main/kotlin/ftl/run/NewTestRun.kt index 7e5abf92bb..bc9b27820b 100644 --- a/test_runner/src/main/kotlin/ftl/run/NewTestRun.kt +++ b/test_runner/src/main/kotlin/ftl/run/NewTestRun.kt @@ -8,11 +8,11 @@ import ftl.json.update import ftl.reports.util.ReportManager import ftl.run.common.fetchArtifacts import ftl.run.common.pollMatrices +import ftl.run.exception.FlankGeneralError +import ftl.run.exception.FlankTimeoutError import ftl.run.model.TestResult import ftl.run.platform.runAndroidTests import ftl.run.platform.runIosTests -import ftl.util.FlankGeneralError -import ftl.util.FlankTimeoutError import kotlinx.coroutines.TimeoutCancellationException import kotlinx.coroutines.withTimeoutOrNull diff --git a/test_runner/src/main/kotlin/ftl/run/common/GetLastArgs.kt b/test_runner/src/main/kotlin/ftl/run/common/GetLastArgs.kt index 7acd0a6075..11ecdf0d5a 100644 --- a/test_runner/src/main/kotlin/ftl/run/common/GetLastArgs.kt +++ b/test_runner/src/main/kotlin/ftl/run/common/GetLastArgs.kt @@ -4,7 +4,7 @@ import ftl.args.AndroidArgs import ftl.args.IArgs import ftl.args.IosArgs import ftl.config.FtlConstants -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import java.nio.file.Paths /** Reads in the last matrices from the localResultDir folder **/ diff --git a/test_runner/src/main/kotlin/ftl/run/common/GetLastMatrices.kt b/test_runner/src/main/kotlin/ftl/run/common/GetLastMatrices.kt index a110676505..50f8d58fd2 100644 --- a/test_runner/src/main/kotlin/ftl/run/common/GetLastMatrices.kt +++ b/test_runner/src/main/kotlin/ftl/run/common/GetLastMatrices.kt @@ -4,7 +4,7 @@ import ftl.args.IArgs import ftl.config.FtlConstants import ftl.json.MatrixMap import ftl.json.SavedMatrix -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import java.nio.file.Paths /** Reads in the last matrices from the localResultDir folder **/ diff --git a/test_runner/src/main/kotlin/ftl/run/exception/ExceptionHandler.kt b/test_runner/src/main/kotlin/ftl/run/exception/ExceptionHandler.kt new file mode 100644 index 0000000000..0e9f4b6105 --- /dev/null +++ b/test_runner/src/main/kotlin/ftl/run/exception/ExceptionHandler.kt @@ -0,0 +1,80 @@ +package ftl.run.exception + +import ftl.config.FtlConstants +import ftl.json.SavedMatrix +import ftl.run.cancelMatrices +import kotlinx.coroutines.runBlocking +import kotlin.system.exitProcess + +fun withGlobalExceptionHandling(block: () -> Int) { + try { + exitProcess(block()) + } catch (t: Throwable) { + when (t) { + is FlankGeneralError -> { + err("\n${t.message}") + exitProcess(GENERAL_FAILURE) + } + + is FlankTimeoutError -> { + println("\nCanceling flank due to timeout") + runBlocking { + t.map?.run { + cancelMatrices(t.map, t.projectId) + } + } + exitProcess(GENERAL_FAILURE) + } + + is IncompatibleTestDimensionError -> { + err("\n${t.message}") + exitProcess(INCOMPATIBLE_TEST_DIMENSION) + } + + is MatrixCanceledError -> { + err("The matrix was cancelled by the user.") + err("Details: ${t.messageOrUnavailable}") + exitProcess(CANCELED_BY_USER) + } + + is InfrastructureError -> { + err("An infrastructure error occurred.") + err("Details: ${t.messageOrUnavailable}") + exitProcess(INFRASTRUCTURE_ERROR) + } + + is FailedMatrixError -> { + if (t.ignoreFailed) exitProcess(SUCCESS) + else exitProcess(NOT_PASSED) + } + + is FTLError -> { + t.matrix.logError() + exitProcess(UNEXPECTED_ERROR) + } + + is YmlValidationError, + is FlankConfigurationError -> { + err(t.message) + exitProcess(CONFIGURATION_FAIL) + } + + // We need to cover the case where some component in the call stack starts a non-daemon + // thread, and then throws an Error that kills the main thread. This is extra safe implementation + else -> { + FtlConstants.bugsnag?.notify(t) + t.printStackTrace() + exitProcess(UNEXPECTED_ERROR) + } + } + } +} + +private val FlankException.messageOrUnavailable: String + get() = if (message.isNullOrBlank()) "[Unavailable]" else message as String + +private fun err(string: String?) = System.err.println(string) + +private fun SavedMatrix.logError() { + println("Matrix is $state") +} diff --git a/test_runner/src/main/kotlin/ftl/util/FlankException.kt b/test_runner/src/main/kotlin/ftl/run/exception/FlankException.kt similarity index 99% rename from test_runner/src/main/kotlin/ftl/util/FlankException.kt rename to test_runner/src/main/kotlin/ftl/run/exception/FlankException.kt index 3280ed06f3..98aced2f41 100644 --- a/test_runner/src/main/kotlin/ftl/util/FlankException.kt +++ b/test_runner/src/main/kotlin/ftl/run/exception/FlankException.kt @@ -1,4 +1,4 @@ -package ftl.util +package ftl.run.exception import ftl.json.SavedMatrix import java.io.IOException diff --git a/test_runner/src/main/kotlin/ftl/util/FlankExitCodes.kt b/test_runner/src/main/kotlin/ftl/run/exception/FlankExitCodes.kt similarity index 90% rename from test_runner/src/main/kotlin/ftl/util/FlankExitCodes.kt rename to test_runner/src/main/kotlin/ftl/run/exception/FlankExitCodes.kt index 04d3a08182..549d79df8f 100644 --- a/test_runner/src/main/kotlin/ftl/util/FlankExitCodes.kt +++ b/test_runner/src/main/kotlin/ftl/run/exception/FlankExitCodes.kt @@ -1,4 +1,4 @@ -package ftl.util +package ftl.run.exception const val SUCCESS = 0 const val GENERAL_FAILURE = 1 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 bacba1ba62..2359176e95 100644 --- a/test_runner/src/main/kotlin/ftl/run/platform/RunAndroidTests.kt +++ b/test_runner/src/main/kotlin/ftl/run/platform/RunAndroidTests.kt @@ -17,7 +17,7 @@ import ftl.run.platform.android.uploadOtherFiles import ftl.run.platform.common.afterRunTests import ftl.run.platform.common.beforeRunMessage import ftl.run.platform.common.beforeRunTests -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import kotlinx.coroutines.Deferred import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.async diff --git a/test_runner/src/main/kotlin/ftl/run/platform/android/ResolveApks.kt b/test_runner/src/main/kotlin/ftl/run/platform/android/ResolveApks.kt index 9e3adcb190..97b1eaacc8 100644 --- a/test_runner/src/main/kotlin/ftl/run/platform/android/ResolveApks.kt +++ b/test_runner/src/main/kotlin/ftl/run/platform/android/ResolveApks.kt @@ -5,7 +5,7 @@ import ftl.args.AndroidArgs import ftl.run.model.AndroidTestContext import ftl.run.model.InstrumentationTestContext import ftl.run.model.RoboTestContext -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import ftl.util.asFileReference @VisibleForTesting 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 f13a62da23..5660d2cde7 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 @@ -5,7 +5,7 @@ import ftl.config.FtlConstants import ftl.gc.GcStorage import ftl.gc.GcTesting import ftl.gc.GcToolResults -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import ftl.util.StopWatch import java.io.File diff --git a/test_runner/src/main/kotlin/ftl/run/status/OutputStyle.kt b/test_runner/src/main/kotlin/ftl/run/status/OutputStyle.kt index 946f8398c2..b23e4b3320 100644 --- a/test_runner/src/main/kotlin/ftl/run/status/OutputStyle.kt +++ b/test_runner/src/main/kotlin/ftl/run/status/OutputStyle.kt @@ -1,6 +1,6 @@ package ftl.run.status -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError enum class OutputStyle { Verbose, Single, Multi } diff --git a/test_runner/src/main/kotlin/ftl/shard/Shard.kt b/test_runner/src/main/kotlin/ftl/shard/Shard.kt index 76b1a77433..9fb5ff3cbe 100644 --- a/test_runner/src/main/kotlin/ftl/shard/Shard.kt +++ b/test_runner/src/main/kotlin/ftl/shard/Shard.kt @@ -3,7 +3,7 @@ package ftl.shard import ftl.args.IArgs import ftl.args.IosArgs import ftl.reports.xml.model.JUnitTestResult -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import ftl.util.FlankTestMethod import kotlin.math.roundToInt diff --git a/test_runner/src/main/kotlin/ftl/shard/ShardCount.kt b/test_runner/src/main/kotlin/ftl/shard/ShardCount.kt index 914ec5dd8a..3e12129862 100644 --- a/test_runner/src/main/kotlin/ftl/shard/ShardCount.kt +++ b/test_runner/src/main/kotlin/ftl/shard/ShardCount.kt @@ -3,7 +3,7 @@ package ftl.shard import ftl.args.IArgs import ftl.args.IArgs.Companion.AVAILABLE_PHYSICAL_SHARD_COUNT_RANGE import ftl.reports.xml.model.JUnitTestResult -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import ftl.util.FlankTestMethod import kotlin.math.ceil import kotlin.math.min diff --git a/test_runner/src/main/kotlin/ftl/util/Bash.kt b/test_runner/src/main/kotlin/ftl/util/Bash.kt index 947744c92d..e51a35eb03 100644 --- a/test_runner/src/main/kotlin/ftl/util/Bash.kt +++ b/test_runner/src/main/kotlin/ftl/util/Bash.kt @@ -1,6 +1,7 @@ package ftl.util import ftl.config.FtlConstants +import ftl.run.exception.FlankGeneralError import java.lang.ProcessBuilder.Redirect.PIPE object Bash { diff --git a/test_runner/src/main/kotlin/ftl/util/FileLoader.kt b/test_runner/src/main/kotlin/ftl/util/FileLoader.kt index dae089658a..3d334b83bd 100644 --- a/test_runner/src/main/kotlin/ftl/util/FileLoader.kt +++ b/test_runner/src/main/kotlin/ftl/util/FileLoader.kt @@ -1,5 +1,6 @@ package ftl.util +import ftl.run.exception.FlankGeneralError import java.io.Reader import java.nio.file.Files import java.nio.file.NoSuchFileException diff --git a/test_runner/src/main/kotlin/ftl/util/FileReference.kt b/test_runner/src/main/kotlin/ftl/util/FileReference.kt index 1a0e68919d..2cd5a77e73 100644 --- a/test_runner/src/main/kotlin/ftl/util/FileReference.kt +++ b/test_runner/src/main/kotlin/ftl/util/FileReference.kt @@ -2,6 +2,7 @@ package ftl.util import ftl.config.FtlConstants import ftl.gc.GcStorage +import ftl.run.exception.FlankGeneralError data class FileReference( val local: String = "", diff --git a/test_runner/src/main/kotlin/ftl/util/StopWatch.kt b/test_runner/src/main/kotlin/ftl/util/StopWatch.kt index f6e54bdee3..55a082fafc 100644 --- a/test_runner/src/main/kotlin/ftl/util/StopWatch.kt +++ b/test_runner/src/main/kotlin/ftl/util/StopWatch.kt @@ -1,5 +1,6 @@ package ftl.util +import ftl.run.exception.FlankGeneralError import java.util.concurrent.TimeUnit.MILLISECONDS class StopWatch { diff --git a/test_runner/src/main/kotlin/ftl/util/Utils.kt b/test_runner/src/main/kotlin/ftl/util/Utils.kt index 09acb7c1c1..b90b683e75 100644 --- a/test_runner/src/main/kotlin/ftl/util/Utils.kt +++ b/test_runner/src/main/kotlin/ftl/util/Utils.kt @@ -2,10 +2,7 @@ package ftl.util -import ftl.config.FtlConstants -import ftl.json.SavedMatrix -import ftl.run.cancelMatrices -import kotlinx.coroutines.runBlocking +import ftl.run.exception.FlankGeneralError import java.io.InputStream import java.io.StringWriter import java.nio.file.Files @@ -16,7 +13,6 @@ import java.time.format.DateTimeFormatter import java.util.Random import kotlin.properties.ReadWriteProperty import kotlin.reflect.KProperty -import kotlin.system.exitProcess fun String.trimStartLine(): String { return this.split("\n").drop(1).joinToString("\n") @@ -125,66 +121,6 @@ fun copyBinaryResource(name: String) { destinationFile.setExecutable(true) } -fun withGlobalExceptionHandling(block: () -> Int) { - try { - exitProcess(block()) - } catch (t: Throwable) { - when (t) { - is FlankGeneralError -> { - System.err.println("\n${t.message}") - exitProcess(GENERAL_FAILURE) - } - - is FlankTimeoutError -> { - println("\nCanceling flank due to timeout") - runBlocking { - t.map?.run { - cancelMatrices(t.map, t.projectId) - } - } - exitProcess(GENERAL_FAILURE) - } - - is IncompatibleTestDimensionError -> { - System.err.println("\n${t.message}") - exitProcess(INCOMPATIBLE_TEST_DIMENSION) - } - - is MatrixCanceledError -> exitProcess(CANCELED_BY_USER) - - is InfrastructureError -> exitProcess(INFRASTRUCTURE_ERROR) - - is FailedMatrixError -> { - if (t.ignoreFailed) exitProcess(SUCCESS) - else exitProcess(NOT_PASSED) - } - - is FTLError -> { - t.matrix.logError() - exitProcess(UNEXPECTED_ERROR) - } - - is YmlValidationError, - is FlankConfigurationError -> { - System.err.println(t.message) - exitProcess(CONFIGURATION_FAIL) - } - - // We need to cover the case where some component in the call stack starts a non-daemon - // thread, and then throws an Error that kills the main thread. This is extra safe implementation - else -> { - FtlConstants.bugsnag?.notify(t) - t.printStackTrace() - exitProcess(UNEXPECTED_ERROR) - } - } - } -} - -private fun SavedMatrix.logError() { - println("Matrix is $state") -} - fun , T> mutableMapProperty( name: String? = null, defaultValue: () -> T diff --git a/test_runner/src/test/kotlin/Debug.kt b/test_runner/src/test/kotlin/Debug.kt index c456643e79..10fc18edf0 100644 --- a/test_runner/src/test/kotlin/Debug.kt +++ b/test_runner/src/test/kotlin/Debug.kt @@ -1,5 +1,5 @@ import ftl.Main -import ftl.util.withGlobalExceptionHandling +import ftl.run.exception.withGlobalExceptionHandling import picocli.CommandLine fun main() { diff --git a/test_runner/src/test/kotlin/ftl/args/AndroidArgsFileTest.kt b/test_runner/src/test/kotlin/ftl/args/AndroidArgsFileTest.kt index 1333f7fc39..45be2353bc 100644 --- a/test_runner/src/test/kotlin/ftl/args/AndroidArgsFileTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/AndroidArgsFileTest.kt @@ -12,7 +12,7 @@ import ftl.test.util.TestHelper.absolutePath import ftl.test.util.TestHelper.assert import ftl.test.util.TestHelper.getPath import ftl.test.util.TestHelper.getString -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import kotlinx.coroutines.runBlocking import org.junit.Assert.assertEquals import org.junit.Rule diff --git a/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt b/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt index 7a1f601bd1..2e8f58bdde 100644 --- a/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt @@ -20,9 +20,9 @@ import ftl.test.util.TestHelper.absolutePath import ftl.test.util.TestHelper.assert import ftl.test.util.TestHelper.getPath import ftl.test.util.assertThrowsWithMessage -import ftl.util.FlankConfigurationError -import ftl.util.FlankGeneralError -import ftl.util.IncompatibleTestDimensionError +import ftl.run.exception.FlankGeneralError +import ftl.run.exception.FlankConfigurationError +import ftl.run.exception.IncompatibleTestDimensionError import ftl.util.asFileReference import io.mockk.every import io.mockk.mockkStatic diff --git a/test_runner/src/test/kotlin/ftl/args/ArgsHelperFilePathTest.kt b/test_runner/src/test/kotlin/ftl/args/ArgsHelperFilePathTest.kt index 8de5701e70..0b284392f0 100644 --- a/test_runner/src/test/kotlin/ftl/args/ArgsHelperFilePathTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/ArgsHelperFilePathTest.kt @@ -4,7 +4,7 @@ import com.google.common.truth.Truth import ftl.config.FtlConstants.isWindows import ftl.test.util.FlankTestRunner import ftl.test.util.TestHelper.absolutePath -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import org.junit.Assume.assumeFalse import org.junit.Rule import org.junit.Test diff --git a/test_runner/src/test/kotlin/ftl/args/ArgsHelperTest.kt b/test_runner/src/test/kotlin/ftl/args/ArgsHelperTest.kt index 286d46d062..37d925c8eb 100644 --- a/test_runner/src/test/kotlin/ftl/args/ArgsHelperTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/ArgsHelperTest.kt @@ -16,8 +16,8 @@ import ftl.shard.stringShards import ftl.test.util.FlankTestRunner import ftl.test.util.TestHelper.absolutePath import ftl.test.util.assertThrowsWithMessage -import ftl.util.FlankConfigurationError -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError +import ftl.run.exception.FlankConfigurationError import io.mockk.every import io.mockk.spyk import io.mockk.unmockkAll diff --git a/test_runner/src/test/kotlin/ftl/args/IosArgsFileTest.kt b/test_runner/src/test/kotlin/ftl/args/IosArgsFileTest.kt index 643d8bdedd..5fa6c1b11a 100644 --- a/test_runner/src/test/kotlin/ftl/args/IosArgsFileTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/IosArgsFileTest.kt @@ -7,7 +7,7 @@ import ftl.run.status.OutputStyle import ftl.test.util.FlankTestRunner import ftl.test.util.TestHelper.assert import ftl.test.util.TestHelper.getPath -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import org.junit.Assert.assertEquals import org.junit.Assume import org.junit.Rule diff --git a/test_runner/src/test/kotlin/ftl/args/IosArgsTest.kt b/test_runner/src/test/kotlin/ftl/args/IosArgsTest.kt index 0dab070d92..8ec95219f6 100644 --- a/test_runner/src/test/kotlin/ftl/args/IosArgsTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/IosArgsTest.kt @@ -13,7 +13,7 @@ import ftl.test.util.TestHelper.absolutePath import ftl.test.util.TestHelper.assert import ftl.test.util.TestHelper.getPath import ftl.test.util.assertThrowsWithMessage -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import org.junit.Assert import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse diff --git a/test_runner/src/test/kotlin/ftl/args/yml/ErrorParserTest.kt b/test_runner/src/test/kotlin/ftl/args/yml/ErrorParserTest.kt index 9ecb7157c4..bb4a53e047 100644 --- a/test_runner/src/test/kotlin/ftl/args/yml/ErrorParserTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/yml/ErrorParserTest.kt @@ -9,7 +9,7 @@ import ftl.args.AndroidArgs import ftl.args.yml.errors.ConfigurationErrorMessageBuilder import ftl.test.util.TestHelper import ftl.test.util.TestHelper.getThrowable -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import org.junit.Assert import org.junit.Test diff --git a/test_runner/src/test/kotlin/ftl/args/yml/FileLoaderTest.kt b/test_runner/src/test/kotlin/ftl/args/yml/FileLoaderTest.kt index 973a452122..60f1e251a3 100644 --- a/test_runner/src/test/kotlin/ftl/args/yml/FileLoaderTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/yml/FileLoaderTest.kt @@ -1,7 +1,7 @@ package ftl.args.yml import ftl.test.util.TestHelper.getThrowable -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import ftl.util.loadFile import org.junit.Assert import org.junit.Test diff --git a/test_runner/src/test/kotlin/ftl/args/yml/YamlDeprecatedTest.kt b/test_runner/src/test/kotlin/ftl/args/yml/YamlDeprecatedTest.kt index bee151b93d..c1c2cd7d07 100644 --- a/test_runner/src/test/kotlin/ftl/args/yml/YamlDeprecatedTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/yml/YamlDeprecatedTest.kt @@ -3,7 +3,7 @@ package ftl.args.yml import com.google.common.truth.Truth.assertThat import ftl.test.util.FlankTestRunner import ftl.test.util.TestHelper -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import org.junit.Rule import org.junit.Test import org.junit.contrib.java.lang.system.SystemOutRule diff --git a/test_runner/src/test/kotlin/ftl/cli/firebase/test/android/AndroidDoctorCommandTest.kt b/test_runner/src/test/kotlin/ftl/cli/firebase/test/android/AndroidDoctorCommandTest.kt index 34620b525c..7e29d07249 100644 --- a/test_runner/src/test/kotlin/ftl/cli/firebase/test/android/AndroidDoctorCommandTest.kt +++ b/test_runner/src/test/kotlin/ftl/cli/firebase/test/android/AndroidDoctorCommandTest.kt @@ -6,7 +6,7 @@ import ftl.cli.firebase.test.SUCCESS_VALIDATION_MESSAGE import ftl.config.FtlConstants import ftl.test.util.FlankTestRunner import ftl.test.util.TestHelper.normalizeLineEnding -import ftl.util.YmlValidationError +import ftl.run.exception.YmlValidationError import org.junit.Rule import org.junit.Test import org.junit.contrib.java.lang.system.SystemOutRule diff --git a/test_runner/src/test/kotlin/ftl/cli/firebase/test/android/configuration/AndroidLocalesDescribeCommandTest.kt b/test_runner/src/test/kotlin/ftl/cli/firebase/test/android/configuration/AndroidLocalesDescribeCommandTest.kt index 3829b97115..02d9af0de7 100644 --- a/test_runner/src/test/kotlin/ftl/cli/firebase/test/android/configuration/AndroidLocalesDescribeCommandTest.kt +++ b/test_runner/src/test/kotlin/ftl/cli/firebase/test/android/configuration/AndroidLocalesDescribeCommandTest.kt @@ -1,8 +1,8 @@ package ftl.cli.firebase.test.android.configuration import ftl.android.AndroidCatalog +import ftl.run.exception.FlankConfigurationError import ftl.test.util.TestHelper.getThrowable -import ftl.util.FlankConfigurationError import io.mockk.mockkObject import io.mockk.verify import org.junit.Assert.assertEquals diff --git a/test_runner/src/test/kotlin/ftl/cli/firebase/test/android/versions/AndroidVersionsDescribeCommandTest.kt b/test_runner/src/test/kotlin/ftl/cli/firebase/test/android/versions/AndroidVersionsDescribeCommandTest.kt index e81802a6c8..930067d317 100644 --- a/test_runner/src/test/kotlin/ftl/cli/firebase/test/android/versions/AndroidVersionsDescribeCommandTest.kt +++ b/test_runner/src/test/kotlin/ftl/cli/firebase/test/android/versions/AndroidVersionsDescribeCommandTest.kt @@ -3,7 +3,7 @@ package ftl.cli.firebase.test.android.versions import ftl.android.AndroidCatalog import ftl.cli.firebase.test.ios.versions.IosVersionsDescribeCommand import ftl.test.util.TestHelper -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import io.mockk.mockkObject import io.mockk.verify import org.junit.Assert.assertEquals diff --git a/test_runner/src/test/kotlin/ftl/cli/firebase/test/ios/IosDoctorCommandTest.kt b/test_runner/src/test/kotlin/ftl/cli/firebase/test/ios/IosDoctorCommandTest.kt index 60117764e7..b22c5e6084 100644 --- a/test_runner/src/test/kotlin/ftl/cli/firebase/test/ios/IosDoctorCommandTest.kt +++ b/test_runner/src/test/kotlin/ftl/cli/firebase/test/ios/IosDoctorCommandTest.kt @@ -7,7 +7,7 @@ import ftl.cli.firebase.test.android.AndroidDoctorCommand import ftl.config.FtlConstants import ftl.test.util.FlankTestRunner import ftl.test.util.TestHelper.normalizeLineEnding -import ftl.util.YmlValidationError +import ftl.run.exception.YmlValidationError import org.junit.Rule import org.junit.Test import org.junit.contrib.java.lang.system.SystemOutRule diff --git a/test_runner/src/test/kotlin/ftl/cli/firebase/test/ios/configuration/IosLocalesDescribeCommandTest.kt b/test_runner/src/test/kotlin/ftl/cli/firebase/test/ios/configuration/IosLocalesDescribeCommandTest.kt index 68a49ab9fb..cbab4e6db0 100644 --- a/test_runner/src/test/kotlin/ftl/cli/firebase/test/ios/configuration/IosLocalesDescribeCommandTest.kt +++ b/test_runner/src/test/kotlin/ftl/cli/firebase/test/ios/configuration/IosLocalesDescribeCommandTest.kt @@ -3,7 +3,7 @@ package ftl.cli.firebase.test.ios.configuration import ftl.ios.IosCatalog import ftl.test.util.TestHelper import ftl.test.util.TestHelper.getThrowable -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import io.mockk.mockkObject import io.mockk.verify import org.junit.Assert.assertEquals diff --git a/test_runner/src/test/kotlin/ftl/cli/firebase/test/ios/versions/IosVersionsDescribeCommandTest.kt b/test_runner/src/test/kotlin/ftl/cli/firebase/test/ios/versions/IosVersionsDescribeCommandTest.kt index dd9fe619a5..dd758c757a 100644 --- a/test_runner/src/test/kotlin/ftl/cli/firebase/test/ios/versions/IosVersionsDescribeCommandTest.kt +++ b/test_runner/src/test/kotlin/ftl/cli/firebase/test/ios/versions/IosVersionsDescribeCommandTest.kt @@ -2,7 +2,7 @@ package ftl.cli.firebase.test.ios.versions import ftl.ios.IosCatalog import ftl.test.util.TestHelper.getThrowable -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import io.mockk.mockkObject import io.mockk.verify import org.junit.Assert.assertEquals diff --git a/test_runner/src/test/kotlin/ftl/cli/firebase/test/networkprofiles/NetworkProfileDescribeTest.kt b/test_runner/src/test/kotlin/ftl/cli/firebase/test/networkprofiles/NetworkProfileDescribeTest.kt index 0bf6a90cb0..2013c545f4 100644 --- a/test_runner/src/test/kotlin/ftl/cli/firebase/test/networkprofiles/NetworkProfileDescribeTest.kt +++ b/test_runner/src/test/kotlin/ftl/cli/firebase/test/networkprofiles/NetworkProfileDescribeTest.kt @@ -3,9 +3,9 @@ package ftl.cli.firebase.test.networkprofiles import com.google.api.services.testing.model.NetworkConfiguration import com.google.api.services.testing.model.TrafficRule import ftl.environment.getNetworkConfiguration +import ftl.run.exception.FlankConfigurationError import ftl.test.util.assertThrowsWithMessage import ftl.test.util.runMainCommand -import ftl.util.FlankConfigurationError import io.mockk.every import io.mockk.mockkStatic import io.mockk.unmockkAll diff --git a/test_runner/src/test/kotlin/ftl/environment/android/AndroidModelDescriptionTest.kt b/test_runner/src/test/kotlin/ftl/environment/android/AndroidModelDescriptionTest.kt index d1902b0948..90bf031185 100644 --- a/test_runner/src/test/kotlin/ftl/environment/android/AndroidModelDescriptionTest.kt +++ b/test_runner/src/test/kotlin/ftl/environment/android/AndroidModelDescriptionTest.kt @@ -2,7 +2,7 @@ package ftl.environment.android import com.google.api.services.testing.model.AndroidModel import ftl.test.util.TestHelper.getThrowable -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import org.junit.Assert import org.junit.Test diff --git a/test_runner/src/test/kotlin/ftl/environment/ios/IosModelDescriptionTest.kt b/test_runner/src/test/kotlin/ftl/environment/ios/IosModelDescriptionTest.kt index c1aff3f33b..39b5522dce 100644 --- a/test_runner/src/test/kotlin/ftl/environment/ios/IosModelDescriptionTest.kt +++ b/test_runner/src/test/kotlin/ftl/environment/ios/IosModelDescriptionTest.kt @@ -2,7 +2,7 @@ package ftl.environment.ios import com.google.api.services.testing.model.IosModel import ftl.test.util.TestHelper.getThrowable -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import org.junit.Assert import org.junit.Test diff --git a/test_runner/src/test/kotlin/ftl/filter/TestFiltersTest.kt b/test_runner/src/test/kotlin/ftl/filter/TestFiltersTest.kt index d76420a16d..019e18f2c5 100644 --- a/test_runner/src/test/kotlin/ftl/filter/TestFiltersTest.kt +++ b/test_runner/src/test/kotlin/ftl/filter/TestFiltersTest.kt @@ -6,7 +6,7 @@ import com.linkedin.dex.parser.TestMethod import ftl.filter.TestFilters.fromTestTargets import ftl.test.util.FlankTestRunner import ftl.test.util.TestHelper -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import org.junit.Assert.assertEquals import org.junit.Test import org.junit.runner.RunWith diff --git a/test_runner/src/test/kotlin/ftl/gc/GcToolResultsTest.kt b/test_runner/src/test/kotlin/ftl/gc/GcToolResultsTest.kt index cb1b579b90..f687733719 100644 --- a/test_runner/src/test/kotlin/ftl/gc/GcToolResultsTest.kt +++ b/test_runner/src/test/kotlin/ftl/gc/GcToolResultsTest.kt @@ -8,9 +8,9 @@ import ftl.args.AndroidArgs import ftl.config.FtlConstants import ftl.test.util.FlankTestRunner import ftl.test.util.TestHelper.getThrowable -import ftl.util.FlankGeneralError -import ftl.util.PermissionDenied -import ftl.util.ProjectNotFound +import ftl.run.exception.FlankGeneralError +import ftl.run.exception.PermissionDenied +import ftl.run.exception.ProjectNotFound import io.mockk.every import io.mockk.mockk import io.mockk.mockkObject diff --git a/test_runner/src/test/kotlin/ftl/ios/ParseTest.kt b/test_runner/src/test/kotlin/ftl/ios/ParseTest.kt index 72341b4fc8..3fe0817b42 100644 --- a/test_runner/src/test/kotlin/ftl/ios/ParseTest.kt +++ b/test_runner/src/test/kotlin/ftl/ios/ParseTest.kt @@ -4,7 +4,7 @@ import com.google.common.truth.Truth.assertThat import ftl.config.FtlConstants.isWindows import ftl.mock.TestArtifact.fixturesPath import ftl.test.util.FlankTestRunner -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import org.junit.Assume.assumeFalse import org.junit.Test import org.junit.runner.RunWith diff --git a/test_runner/src/test/kotlin/ftl/ios/XctestrunTest.kt b/test_runner/src/test/kotlin/ftl/ios/XctestrunTest.kt index be50dbac9e..54c02cbb67 100644 --- a/test_runner/src/test/kotlin/ftl/ios/XctestrunTest.kt +++ b/test_runner/src/test/kotlin/ftl/ios/XctestrunTest.kt @@ -6,7 +6,7 @@ import ftl.config.FtlConstants.isWindows import ftl.mock.TestArtifact.fixturesPath import ftl.test.util.FlankTestRunner import ftl.test.util.TestHelper.normalizeLineEnding -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import org.junit.Assume.assumeFalse import org.junit.Test import org.junit.runner.RunWith diff --git a/test_runner/src/test/kotlin/ftl/reports/utils/ReportManagerTest.kt b/test_runner/src/test/kotlin/ftl/reports/utils/ReportManagerTest.kt index 7e097135dd..2807a71fba 100644 --- a/test_runner/src/test/kotlin/ftl/reports/utils/ReportManagerTest.kt +++ b/test_runner/src/test/kotlin/ftl/reports/utils/ReportManagerTest.kt @@ -15,7 +15,7 @@ import ftl.reports.xml.model.JUnitTestSuite import ftl.reports.xml.parseOneSuiteXml import ftl.run.common.matrixPathToObj import ftl.test.util.FlankTestRunner -import ftl.util.FTLError +import ftl.run.exception.FTLError import io.mockk.every import io.mockk.mockk import io.mockk.mockkObject diff --git a/test_runner/src/test/kotlin/ftl/reports/xml/JUnitXmlTest.kt b/test_runner/src/test/kotlin/ftl/reports/xml/JUnitXmlTest.kt index 51a865d439..28a3169c31 100644 --- a/test_runner/src/test/kotlin/ftl/reports/xml/JUnitXmlTest.kt +++ b/test_runner/src/test/kotlin/ftl/reports/xml/JUnitXmlTest.kt @@ -2,7 +2,7 @@ package ftl.reports.xml import com.google.common.truth.Truth.assertThat import ftl.test.util.TestHelper.normalizeLineEnding -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import org.junit.Assert import org.junit.Test import java.nio.file.Paths diff --git a/test_runner/src/test/kotlin/ftl/run/platform/android/ResolveApksKtTest.kt b/test_runner/src/test/kotlin/ftl/run/platform/android/ResolveApksKtTest.kt index 2050a5c9f8..994c716da1 100644 --- a/test_runner/src/test/kotlin/ftl/run/platform/android/ResolveApksKtTest.kt +++ b/test_runner/src/test/kotlin/ftl/run/platform/android/ResolveApksKtTest.kt @@ -3,7 +3,7 @@ package ftl.run.platform.android import ftl.args.AndroidArgs import ftl.args.yml.AppTestPair import ftl.run.model.InstrumentationTestContext -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import ftl.util.asFileReference import io.mockk.every import io.mockk.mockk diff --git a/test_runner/src/test/kotlin/ftl/shard/ShardTest.kt b/test_runner/src/test/kotlin/ftl/shard/ShardTest.kt index 1db0f0f58a..20a8a478f7 100644 --- a/test_runner/src/test/kotlin/ftl/shard/ShardTest.kt +++ b/test_runner/src/test/kotlin/ftl/shard/ShardTest.kt @@ -7,7 +7,7 @@ import ftl.reports.xml.model.JUnitTestCase import ftl.reports.xml.model.JUnitTestResult import ftl.reports.xml.model.JUnitTestSuite import ftl.test.util.FlankTestRunner -import ftl.util.FlankConfigurationError +import ftl.run.exception.FlankConfigurationError import ftl.util.FlankTestMethod import io.mockk.every import io.mockk.mockk diff --git a/test_runner/src/test/kotlin/ftl/test/util/LocalGcs.kt b/test_runner/src/test/kotlin/ftl/test/util/LocalGcs.kt index 7a404efd46..ac09b9c38b 100644 --- a/test_runner/src/test/kotlin/ftl/test/util/LocalGcs.kt +++ b/test_runner/src/test/kotlin/ftl/test/util/LocalGcs.kt @@ -2,7 +2,7 @@ package ftl.test.util import com.google.cloud.storage.BlobInfo import ftl.gc.GcStorage -import ftl.util.FlankGeneralError +import ftl.run.exception.FlankGeneralError import org.junit.Assert import java.nio.file.Files import java.nio.file.Path diff --git a/test_runner/src/test/kotlin/ftl/util/BashTest.kt b/test_runner/src/test/kotlin/ftl/util/BashTest.kt index 12f64b44c0..65b57473ab 100644 --- a/test_runner/src/test/kotlin/ftl/util/BashTest.kt +++ b/test_runner/src/test/kotlin/ftl/util/BashTest.kt @@ -2,6 +2,7 @@ package ftl.util import com.google.common.truth.Truth.assertThat import ftl.config.FtlConstants.isMacOS +import ftl.run.exception.FlankGeneralError import ftl.test.util.FlankTestRunner import org.junit.Test import org.junit.runner.RunWith diff --git a/test_runner/src/test/kotlin/ftl/util/StopWatchTest.kt b/test_runner/src/test/kotlin/ftl/util/StopWatchTest.kt index 269a7ab6c4..e369ed10c9 100644 --- a/test_runner/src/test/kotlin/ftl/util/StopWatchTest.kt +++ b/test_runner/src/test/kotlin/ftl/util/StopWatchTest.kt @@ -1,6 +1,7 @@ package ftl.util import com.google.common.truth.Truth.assertThat +import ftl.run.exception.FlankGeneralError import org.junit.Test class StopWatchTest { diff --git a/test_runner/src/test/kotlin/ftl/util/UtilsTest.kt b/test_runner/src/test/kotlin/ftl/util/UtilsTest.kt index dcb76b7f6c..2d48f8a107 100644 --- a/test_runner/src/test/kotlin/ftl/util/UtilsTest.kt +++ b/test_runner/src/test/kotlin/ftl/util/UtilsTest.kt @@ -9,6 +9,19 @@ import ftl.json.SavedMatrixTest.Companion.createStepExecution import ftl.json.SavedMatrixTest.Companion.testMatrix import ftl.json.createSavedMatrix import ftl.run.cancelMatrices +import ftl.run.exception.CONFIGURATION_FAIL +import ftl.run.exception.FTLError +import ftl.run.exception.FailedMatrixError +import ftl.run.exception.FlankConfigurationError +import ftl.run.exception.FlankGeneralError +import ftl.run.exception.FlankTimeoutError +import ftl.run.exception.GENERAL_FAILURE +import ftl.run.exception.MatrixCanceledError +import ftl.run.exception.NOT_PASSED +import ftl.run.exception.SUCCESS +import ftl.run.exception.UNEXPECTED_ERROR +import ftl.run.exception.YmlValidationError +import ftl.run.exception.withGlobalExceptionHandling import ftl.test.util.FlankTestRunner import io.mockk.coEvery import io.mockk.coVerify From 47d724c83a7c1ff992165e1fa544d3ee7b075716 Mon Sep 17 00:00:00 2001 From: Pawel Pasterz Date: Mon, 24 Aug 2020 16:33:39 +0200 Subject: [PATCH 2/2] Change wording --- .../kotlin/ftl/run/exception/ExceptionHandler.kt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test_runner/src/main/kotlin/ftl/run/exception/ExceptionHandler.kt b/test_runner/src/main/kotlin/ftl/run/exception/ExceptionHandler.kt index 0e9f4b6105..b3f5984284 100644 --- a/test_runner/src/main/kotlin/ftl/run/exception/ExceptionHandler.kt +++ b/test_runner/src/main/kotlin/ftl/run/exception/ExceptionHandler.kt @@ -12,7 +12,7 @@ fun withGlobalExceptionHandling(block: () -> Int) { } catch (t: Throwable) { when (t) { is FlankGeneralError -> { - err("\n${t.message}") + printError("\n${t.message}") exitProcess(GENERAL_FAILURE) } @@ -27,19 +27,19 @@ fun withGlobalExceptionHandling(block: () -> Int) { } is IncompatibleTestDimensionError -> { - err("\n${t.message}") + printError("\n${t.message}") exitProcess(INCOMPATIBLE_TEST_DIMENSION) } is MatrixCanceledError -> { - err("The matrix was cancelled by the user.") - err("Details: ${t.messageOrUnavailable}") + printError("The matrix was cancelled by the user.") + printError("Details: ${t.messageOrUnavailable}") exitProcess(CANCELED_BY_USER) } is InfrastructureError -> { - err("An infrastructure error occurred.") - err("Details: ${t.messageOrUnavailable}") + printError("An infrastructure error occurred.") + printError("Details: ${t.messageOrUnavailable}") exitProcess(INFRASTRUCTURE_ERROR) } @@ -55,7 +55,7 @@ fun withGlobalExceptionHandling(block: () -> Int) { is YmlValidationError, is FlankConfigurationError -> { - err(t.message) + printError(t.message) exitProcess(CONFIGURATION_FAIL) } @@ -73,7 +73,7 @@ fun withGlobalExceptionHandling(block: () -> Int) { private val FlankException.messageOrUnavailable: String get() = if (message.isNullOrBlank()) "[Unavailable]" else message as String -private fun err(string: String?) = System.err.println(string) +private fun printError(string: String?) = System.err.println(string) private fun SavedMatrix.logError() { println("Matrix is $state")