Skip to content

Commit 8cfd36d

Browse files
#430: Run tests inside containers
1 parent 5facbfa commit 8cfd36d

File tree

4 files changed

+17
-15
lines changed

4 files changed

+17
-15
lines changed

core/jvm/test/testcontainers/TimeZoneTest.kt

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ package testcontainers
77

88
import org.testcontainers.junit.jupiter.Container
99
import org.testcontainers.junit.jupiter.Testcontainers
10-
import java.nio.file.Paths
1110
import org.junit.jupiter.api.Test
1211
import org.slf4j.LoggerFactory
1312

@@ -16,19 +15,11 @@ class TimeZoneTest {
1615

1716
private val logger = LoggerFactory.getLogger(javaClass)
1817

19-
private val dockerfilePath = "./jvm/test/testcontainers/%s/Dockerfile"
20-
2118
@Container
22-
val originalContainer = TimezoneTestContainer(
23-
Paths.get(String.format(dockerfilePath, "original")),
24-
"ubuntu-arctic-longyearbyen"
25-
)
19+
val originalContainer = createTimezoneTestContainer("original")
2620

2721
@Container
28-
val modifiedContainer = TimezoneTestContainer(
29-
Paths.get(String.format(dockerfilePath, "modified")),
30-
"ubuntu-new-longyearbyen-modified"
31-
)
22+
val modifiedContainer = createTimezoneTestContainer("modified")
3223

3324
@Test
3425
fun test() {

core/jvm/test/testcontainers/TimezoneTestContainer.kt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,30 @@
55

66
package testcontainers
77

8+
import org.testcontainers.containers.BindMode
89
import org.testcontainers.containers.Container.ExecResult
910
import org.testcontainers.containers.GenericContainer
1011
import org.testcontainers.images.builder.ImageFromDockerfile
1112
import java.nio.file.Path
13+
import java.nio.file.Paths
1214

13-
class TimezoneTestContainer(dockerfilePath: Path, val imageName: String) :
15+
class TimezoneTestContainer(dockerfilePath: Path, binaryDir: String, imageName: String) :
1416
GenericContainer<TimezoneTestContainer>(ImageFromDockerfile(imageName).withDockerfile(dockerfilePath)) {
1517

1618
init {
1719
withCommand("tail -f /dev/null")
20+
withFileSystemBind(binaryDir, "/app", BindMode.READ_WRITE)
1821
}
1922

2023
fun runTest(): ExecResult {
21-
return execInContainer("bash", "-c", "echo Inside container $imageName, system time zone: $(date -R)")
24+
return execInContainer("bash", "-c", "chmod +x /app/test.kexe && /app/test.kexe")
2225
}
26+
}
27+
28+
fun createTimezoneTestContainer(typeName: String): TimezoneTestContainer {
29+
return TimezoneTestContainer(
30+
Paths.get("./jvm/test/testcontainers/$typeName/Dockerfile"),
31+
"./build/bin/linuxArm64/debugTest/",
32+
"ubuntu-arctic-longyearbyen-$typeName"
33+
)
2334
}

core/jvm/test/testcontainers/modified/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM --platform=linux/amd64 ubuntu:24.04
1+
FROM --platform=linux/arm64 ubuntu:24.04
22

33
RUN apt-get update && apt-get install -y tzdata
44

core/jvm/test/testcontainers/original/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM --platform=linux/amd64 ubuntu:24.04
1+
FROM --platform=linux/arm64 ubuntu:24.04
22

33
RUN apt-get update && apt-get install -y tzdata
44

0 commit comments

Comments
 (0)