Skip to content

Commit 62e4f5b

Browse files
#430: Split runTest to runTimeZoneTests and runAllTests
1 parent 1d0ff83 commit 62e4f5b

File tree

4 files changed

+49
-28
lines changed

4 files changed

+49
-28
lines changed

core/jvm/test/testcontainers/TimeZoneConfigurationTest.kt

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,40 @@ package testcontainers
88
import org.junit.jupiter.api.BeforeAll
99
import org.testcontainers.junit.jupiter.Container
1010
import org.testcontainers.junit.jupiter.Testcontainers
11-
import org.junit.jupiter.params.ParameterizedTest
12-
import org.junit.jupiter.params.provider.MethodSource
11+
import org.junit.jupiter.api.Test
1312
import org.slf4j.LoggerFactory
13+
import org.testcontainers.containers.Container.ExecResult
1414

1515
@Testcontainers
1616
class TimeZoneConfigurationTest {
1717

18-
@ParameterizedTest
19-
@MethodSource("containers")
20-
fun test(container: TimezoneTestContainer) {
21-
val execResult = container.runTest()
18+
@Container
19+
private val defaultTimeZoneContainer = createTimezoneTestContainer("default")
2220

21+
@Container
22+
private val customTimeZoneContainer = createTimezoneTestContainer("custom")
23+
24+
@Test
25+
fun testDefaultContainerTimeZoneTests() {
26+
logExecResult(defaultTimeZoneContainer.runTimeZoneTests())
27+
}
28+
29+
@Test
30+
fun testCustomContainerTimeZoneTests() {
31+
logExecResult(customTimeZoneContainer.runTimeZoneTests())
32+
}
33+
34+
@Test
35+
fun testDefaultContainerAllTests() {
36+
logExecResult(defaultTimeZoneContainer.runAllTests())
37+
}
38+
39+
@Test
40+
fun testCustomContainerAllTests() {
41+
logExecResult(customTimeZoneContainer.runAllTests())
42+
}
43+
44+
private fun logExecResult(execResult: ExecResult) {
2345
logger.info("Container stdout:\n${execResult.stdout}")
2446
logger.info("Container stderr:\n${execResult.stderr}")
2547
logger.info("Container exit code: ${execResult.exitCode}")
@@ -28,19 +50,6 @@ class TimeZoneConfigurationTest {
2850
companion object {
2951
private val logger = LoggerFactory.getLogger(TimeZoneConfigurationTest::class.java)
3052

31-
@JvmStatic
32-
@Container
33-
val originalContainer = createTimezoneTestContainer("original")
34-
35-
@JvmStatic
36-
@Container
37-
val modifiedContainer = createTimezoneTestContainer("modified")
38-
39-
@JvmStatic
40-
fun containers(): List<TimezoneTestContainer> {
41-
return listOf(originalContainer, modifiedContainer)
42-
}
43-
4453
@JvmStatic
4554
@BeforeAll
4655
fun buildTestBinary() {

core/jvm/test/testcontainers/TimezoneTestContainer.kt

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,31 @@ class TimezoneTestContainer(dockerfilePath: Path, binaryDir: String, imageName:
2020
withFileSystemBind(binaryDir, "/app", BindMode.READ_WRITE)
2121
}
2222

23-
fun runTest(): ExecResult {
24-
return execInContainer(
25-
"bash",
26-
"-c",
27-
"chmod +x /app/test.kexe && /app/test.kexe --ktest_filter=kotlinx.datetime.test.TimeZoneLinuxNativeTest.*"
28-
)
23+
fun runTimeZoneTests(): ExecResult {
24+
return executeTest("--ktest_filter=kotlinx.datetime.test.TimeZoneLinuxNativeTest.*")
25+
}
26+
27+
fun runAllTests(): ExecResult {
28+
return executeTest()
29+
}
30+
31+
private fun executeTest(testFilter: String? = null): ExecResult {
32+
val command = buildString {
33+
append("chmod +x /app/test.kexe && /app/test.kexe")
34+
testFilter?.also {
35+
append(" ")
36+
append(it)
37+
}
38+
}
39+
40+
return execInContainer("bash", "-c", command)
2941
}
3042
}
3143

32-
fun createTimezoneTestContainer(typeName: String): TimezoneTestContainer {
44+
fun createTimezoneTestContainer(configType: String): TimezoneTestContainer {
3345
return TimezoneTestContainer(
34-
Paths.get("./jvm/test/testcontainers/$typeName/Dockerfile"),
46+
Paths.get("./jvm/test/testcontainers/$configType/Dockerfile"),
3547
"./build/bin/linuxArm64/debugTest/",
36-
"ubuntu-arctic-longyearbyen-$typeName"
48+
"ubuntu-arctic-longyearbyen-$configType"
3749
)
3850
}

0 commit comments

Comments
 (0)