From 8e279a2d2ac6499a6d147e69e0fe8c30823aa6e7 Mon Sep 17 00:00:00 2001 From: Sid Date: Sun, 1 Sep 2019 18:01:53 +1000 Subject: [PATCH] Fix to clean up docker instance on RunTimeException in Integration Tests Signed-off-by: Sid Signed-off-by: Andrew DeMaria --- .../test/cucumber_hooks/docker/DynamicDockerHook.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/integration-test/src/test/java/org/airsonic/test/cucumber_hooks/docker/DynamicDockerHook.java b/integration-test/src/test/java/org/airsonic/test/cucumber_hooks/docker/DynamicDockerHook.java index 4c08de5d..579a1f1a 100644 --- a/integration-test/src/test/java/org/airsonic/test/cucumber_hooks/docker/DynamicDockerHook.java +++ b/integration-test/src/test/java/org/airsonic/test/cucumber_hooks/docker/DynamicDockerHook.java @@ -81,6 +81,7 @@ public class DynamicDockerHook implements AirsonicServer, EnvironmentAware, Init .build(); final String name = "airsonic-it-" + RandomStringUtils.randomAlphabetic(10); + boolean isException = false; try { final ContainerCreation containerCreate = docker.createContainer(config, name); containerId = containerCreate.id(); @@ -109,6 +110,7 @@ public class DynamicDockerHook implements AirsonicServer, EnvironmentAware, Init break; } else { logger.trace("Container ("+name+") never became ready within max wait time"); + isException = true; throw new RuntimeException("Container ("+name+") not ready"); } } @@ -118,10 +120,16 @@ public class DynamicDockerHook implements AirsonicServer, EnvironmentAware, Init String ipAddress = next.getValue().ipAddress(); serverUri = "http://" + ipAddress + ":" + dockerPort; } catch(Exception e) { + isException = true; throw new RuntimeException("Could not determine container ("+name+") address", e); } } catch (DockerException | InterruptedException e) { + isException = true; throw new RuntimeException(e); + } finally { + if(isException){ + stopServer(); + } } }