diff --git a/.github/workflows/server.yml b/.github/workflows/server.yml index 9ed90e31..780e4701 100644 --- a/.github/workflows/server.yml +++ b/.github/workflows/server.yml @@ -49,7 +49,7 @@ jobs: cache: maven - name: Test with Maven - run: cd dhfs-parent && TESTCONTAINERS_USER="$(id -u):$(id -g)" mvn -T $(nproc) --batch-mode --update-snapshots package verify + run: cd dhfs-parent && mvn -T $(nproc) --batch-mode --update-snapshots package verify # - name: Build with Maven # run: cd dhfs-parent && mvn --batch-mode --update-snapshots package # -Dquarkus.log.category.\"com.usatiuk.dhfs\".min-level=DEBUG diff --git a/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfs/TestDataCleaner.java b/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfs/TestDataCleaner.java index b3659d01..8ca6292d 100644 --- a/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfs/TestDataCleaner.java +++ b/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfs/TestDataCleaner.java @@ -30,11 +30,15 @@ public class TestDataCleaner { purgeDirectory(Path.of(tempDirectory).toFile()); } - void purgeDirectory(File dir) { - for (File file : Objects.requireNonNull(dir.listFiles())) { - if (file.isDirectory()) - purgeDirectory(file); - file.delete(); + public static void purgeDirectory(File dir) { + try { + for (File file : Objects.requireNonNull(dir.listFiles())) { + if (file.isDirectory()) + purgeDirectory(file); + file.delete(); + } + } catch (Exception e) { + Log.error("Couldn't purge directory " + dir, e); } } } diff --git a/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfs/integration/KillIT.java b/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfs/integration/KillIT.java index 4802f725..55e9babd 100644 --- a/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfs/integration/KillIT.java +++ b/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfs/integration/KillIT.java @@ -1,9 +1,9 @@ package com.usatiuk.dhfs.integration; import com.github.dockerjava.api.model.Device; +import com.usatiuk.dhfs.TestDataCleaner; import io.quarkus.logging.Log; import org.junit.jupiter.api.*; -import org.junit.jupiter.api.io.TempDir; import org.slf4j.LoggerFactory; import org.testcontainers.DockerClientFactory; import org.testcontainers.containers.GenericContainer; @@ -14,6 +14,7 @@ import org.testcontainers.containers.wait.strategy.Wait; import java.io.File; import java.io.IOException; +import java.nio.file.Files; import java.time.Duration; import java.util.Objects; import java.util.UUID; @@ -35,33 +36,26 @@ public class KillIT { String c1uuid; String c2uuid; - @TempDir File data1; - @TempDir File data2; @BeforeEach void setup(TestInfo testInfo) throws IOException, InterruptedException, TimeoutException { - Network network = Network.newNetwork(); + data1 = Files.createTempDirectory("").toFile(); + data2 = Files.createTempDirectory("").toFile(); - String testcontainersUser = System.getenv("TESTCONTAINERS_USER"); + Network network = Network.newNetwork(); container1 = new GenericContainer<>(DhfsImage.getInstance()) .withPrivilegedMode(true) .withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse"))) .waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network) .withFileSystemBind(data1.getAbsolutePath(), "/dhfs_test/data"); - if (testcontainersUser != null) { - container1.withCreateContainerCmdModifier(cmd -> cmd.withUser(testcontainersUser)); - } container2 = new GenericContainer<>(DhfsImage.getInstance()) .withPrivilegedMode(true) .withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse"))) .waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network) .withFileSystemBind(data2.getAbsolutePath(), "/dhfs_test/data"); - if (testcontainersUser != null) { - container2.withCreateContainerCmdModifier(cmd -> cmd.withUser(testcontainersUser)); - } Stream.of(container1, container2).parallel().forEach(GenericContainer::start); @@ -100,6 +94,8 @@ public class KillIT { @AfterEach void stop() { Stream.of(container1, container2).parallel().forEach(GenericContainer::stop); + TestDataCleaner.purgeDirectory(data1); + TestDataCleaner.purgeDirectory(data2); } @Test