diff --git a/api/test_utils/integration_setup.go b/api/test_utils/integration_setup.go index 18aff8ce..45b30c82 100644 --- a/api/test_utils/integration_setup.go +++ b/api/test_utils/integration_setup.go @@ -16,11 +16,22 @@ import ( var test_dbm TestDBManager = TestDBManager{} func UnitTestRun(m *testing.M) { + exitCode := 1 + defer func() { + os.Exit(exitCode) + }() + flag.Parse() - os.Exit(m.Run()) + + exitCode = m.Run() } func IntegrationTestRun(m *testing.M) { + exitCode := 1 + defer func() { + os.Exit(exitCode) + }() + flag.Parse() if flags.Database { @@ -38,7 +49,7 @@ func IntegrationTestRun(m *testing.M) { terminateWorkers := executable_worker.Initialize() defer terminateWorkers() - os.Exit(m.Run()) + exitCode = m.Run() } func FilesystemTest(t *testing.T) { diff --git a/api/utils/endpoints.go b/api/utils/endpoints.go index 47846246..ca6f745d 100644 --- a/api/utils/endpoints.go +++ b/api/utils/endpoints.go @@ -32,12 +32,12 @@ func ApiListenUrl() *url.URL { listenPort, err := strconv.Atoi(listenPortStr) if err != nil { - log.Fatalf("%s must be a number: '%s'\n%s", EnvListenPort.GetName(), listenPortStr, err) + log.Panicf("%q must be a number %q: %v", EnvListenPort.GetName(), listenPortStr, err) } apiUrl, err := url.Parse(fmt.Sprintf("http://%s:%d", listenAddr, listenPort)) if err != nil { - log.Fatalf("Could not format api url: %s", err) + log.Panicf("Could not format api url: %v", err) } apiUrl.Path = apiPrefix @@ -56,8 +56,8 @@ func ApiEndpointUrl() *url.URL { apiEndpointURL, err := url.Parse(apiEndpointStr) if err != nil { - log.Fatalf("ERROR: Environment variable %s is not a proper url (%s)", - EnvAPIEndpoint.GetName(), EnvAPIEndpoint.GetValue()) + log.Panicf("ERROR: Environment variable %s is not a proper url (%s): %v", + EnvAPIEndpoint.GetName(), EnvAPIEndpoint.GetValue(), err) } if shouldServeUI { @@ -75,8 +75,8 @@ func UiEndpointUrl() *url.URL { uiEndpointURL, err := url.Parse(EnvUIEndpoint.GetValue()) if err != nil { - log.Fatalf("ERROR: Environment variable %s is not a proper url (%s)", - EnvUIEndpoint.GetName(), EnvUIEndpoint.GetValue()) + log.Panicf("ERROR: Environment variable %s is not a proper url (%s): %v", + EnvUIEndpoint.GetName(), EnvUIEndpoint.GetValue(), err) } return uiEndpointURL diff --git a/api/utils/utils.go b/api/utils/utils.go index 88c0b743..42648546 100644 --- a/api/utils/utils.go +++ b/api/utils/utils.go @@ -23,7 +23,7 @@ func GenerateToken() string { n, err := rand.Int(rand.Reader, charLen) if err != nil { - log.Fatalf("Could not generate random number: %s\n", err) + log.Panicf("Could not generate random number: %v", err) } b[i] = charset[n.Int64()] }