Skip to content

Commit c031577

Browse files
committed
test: use sql.test.dialects parameter to filter the tests
1 parent df95ce3 commit c031577

File tree

2 files changed

+54
-2
lines changed

2 files changed

+54
-2
lines changed

core/target-systems/sql-target-system/build.gradle.kts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import org.jetbrains.kotlin.gradle.utils.extendsFrom
2+
import java.time.Duration
23

34
dependencies {
45
//Flamingock
@@ -36,3 +37,25 @@ java {
3637
configurations.testImplementation {
3738
extendsFrom(configurations.compileOnly.get())
3839
}
40+
41+
42+
tasks.test {
43+
// CI-specific configuration
44+
val isCI = System.getenv("CI")?.toBoolean() ?: false
45+
val enabledDialects = System.getProperty("sql.test.dialects") ?: if (isCI) "mysql,oracle" else "mysql,oracle,sqlserver"
46+
47+
systemProperty("sql.test.dialects", enabledDialects)
48+
49+
// Parallel execution control
50+
maxParallelForks = if (isCI) 1 else (Runtime.getRuntime().availableProcessors() / 2).coerceAtLeast(1)
51+
52+
// Timeout for long-running database tests
53+
if (isCI) {
54+
timeout.set(Duration.ofMinutes(30))
55+
}
56+
57+
testLogging {
58+
events("passed", "skipped", "failed")
59+
showStandardStreams = false
60+
}
61+
}

core/target-systems/sql-target-system/src/test/java/io/flamingock/targetsystem/sql/SqlAuditMarkerDialectHelperTest.java

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222
import io.flamingock.internal.core.transaction.TransactionManager;
2323
import org.junit.jupiter.api.*;
2424
import org.junit.jupiter.params.ParameterizedTest;
25+
import org.junit.jupiter.params.provider.Arguments;
2526
import org.junit.jupiter.params.provider.EnumSource;
27+
import org.junit.jupiter.params.provider.MethodSource;
2628
import org.testcontainers.containers.JdbcDatabaseContainer;
2729
import org.testcontainers.containers.MySQLContainer;
2830
import org.testcontainers.containers.PostgreSQLContainer;
@@ -32,7 +34,10 @@
3234

3335
import javax.sql.DataSource;
3436
import java.sql.*;
37+
import java.util.Arrays;
3538
import java.util.Set;
39+
import java.util.stream.Collectors;
40+
import java.util.stream.Stream;
3641

3742
@TestInstance(TestInstance.Lifecycle.PER_METHOD)
3843
public class SqlAuditMarkerDialectHelperTest {
@@ -132,8 +137,32 @@ private void dropTable() throws SQLException {
132137
}
133138
}
134139

140+
static Stream<Arguments> dialectProvider() {
141+
String enabledDialects = System.getProperty("sql.test.dialects", "mysql");
142+
Set<String> enabled = Arrays.stream(enabledDialects.split(","))
143+
.map(String::trim)
144+
.collect(Collectors.toSet());
145+
146+
Stream<Arguments> allDialects = Stream.of(
147+
Arguments.of(SqlDialect.MYSQL, "mysql"),
148+
Arguments.of(SqlDialect.SQLSERVER, "sqlserver"),
149+
Arguments.of(SqlDialect.ORACLE, "oracle"),
150+
Arguments.of(SqlDialect.POSTGRESQL, "postgresql"),
151+
Arguments.of(SqlDialect.MARIADB, "mariadb"),
152+
Arguments.of(SqlDialect.H2, "h2"),
153+
Arguments.of(SqlDialect.SQLITE, "sqlite"),
154+
Arguments.of(SqlDialect.INFORMIX, "informix"),
155+
Arguments.of(SqlDialect.FIREBIRD, "firebird")
156+
);
157+
158+
return allDialects.filter(args -> {
159+
String dialectName = (String) args.get()[1];
160+
return enabled.contains(dialectName);
161+
});
162+
}
163+
135164
@ParameterizedTest(name = "[{index}] dialect={0} - Should add and list two marks successfully")
136-
@EnumSource(SqlDialect.class)
165+
@MethodSource("dialectProvider")
137166
void addOngoingTaskMark(SqlDialect dialect) {
138167
JdbcDatabaseContainer<?> container = createContainerForDialect(dialect);
139168
Assumptions.assumeTrue(container != null ||
@@ -179,7 +208,7 @@ void addOngoingTaskMark(SqlDialect dialect) {
179208
}
180209

181210
@ParameterizedTest(name = "[{index}] dialect={0} - Should remove all marks successfully")
182-
@EnumSource(SqlDialect.class)
211+
@MethodSource("dialectProvider")
183212
void removeOngoingTaskMark(SqlDialect dialect) {
184213
JdbcDatabaseContainer<?> container = createContainerForDialect(dialect);
185214
Assumptions.assumeTrue(container != null ||

0 commit comments

Comments
 (0)