From 4c19a329fd790586278baa43bfac6caea7b36af0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Wa=C5=9B?= Date: Tue, 30 Apr 2024 11:37:25 +0200 Subject: [PATCH] Start a stopped test container and fail quickly when it fails to start --- trino/integration_test.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/trino/integration_test.go b/trino/integration_test.go index 4353a24..ff80be7 100644 --- a/trino/integration_test.go +++ b/trino/integration_test.go @@ -112,20 +112,25 @@ func TestMain(m *testing.M) { if err != nil { log.Fatalf("Could not start resource: %s", err) } + } else if !resource.Container.State.Running { + pool.Client.StartContainer(resource.Container.ID, nil) } if err := pool.Retry(func() error { c, err := pool.Client.InspectContainer(resource.Container.ID) if err != nil { - return err + log.Fatalf("Failed to inspect container %s: %s", resource.Container.ID, err) } + if !c.State.Running { + log.Fatalf("Container %s is not running: %s\nContainer logs:\n%s", resource.Container.ID, c.State.String(), getLogs(resource.Container.ID)) + } + log.Printf("Waiting for Trino container: %s\n", c.State.String()) if c.State.Health.Status != "healthy" { return errors.New("Not ready") } return nil }); err != nil { - logs := getLogs(resource.Container.ID) - log.Fatalf("Timed out waiting for container to get ready: %s\nContainer logs:\n%s", err, logs) + log.Fatalf("Timed out waiting for container to get ready: %s\nContainer logs:\n%s", err, getLogs(resource.Container.ID)) } *integrationServerFlag = "http://test@localhost:" + resource.GetPort("8080/tcp") tlsServer = "https://admin:admin@localhost:" + resource.GetPort("8443/tcp")