Skip to content

Commit ecafe45

Browse files
committed
HHH-14892 Enable parallel testing for MariaDB
1 parent 6b132d7 commit ecafe45

File tree

5 files changed

+35
-16
lines changed

5 files changed

+35
-16
lines changed

docker_db.sh

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -165,38 +165,54 @@ mariadb_wait_until_start()
165165

166166
mariadb_10_6() {
167167
$CONTAINER_CLI rm -f mariadb || true
168-
$CONTAINER_CLI run --name mariadb -e MARIADB_USER=hibernate_orm_test -e MARIADB_PASSWORD=hibernate_orm_test -e MARIADB_DATABASE=hibernate_orm_test -e MARIADB_ROOT_PASSWORD=hibernate_orm_test -p3306:3306 -d ${DB_IMAGE_MARIADB_10_6:-docker.io/mariadb:10.6.23} --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --skip-character-set-client-handshake --lower_case_table_names=2
169-
mariadb_wait_until_start
168+
$CONTAINER_CLI run --name mariadb -e MARIADB_USER=hibernate_orm_test -e MARIADB_PASSWORD=hibernate_orm_test -e MARIADB_DATABASE=hibernate_orm_test -e MARIADB_ROOT_PASSWORD=hibernate_orm_test -p3306:3306 --tmpfs /var/lib/mysql -d ${DB_IMAGE_MARIADB_10_6:-docker.io/mariadb:10.6.23} --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --skip-character-set-client-handshake --lower_case_table_names=2
169+
mariadb_setup
170170
}
171171

172172
mariadb_10_11() {
173173
$CONTAINER_CLI rm -f mariadb || true
174-
$CONTAINER_CLI run --name mariadb -e MARIADB_USER=hibernate_orm_test -e MARIADB_PASSWORD=hibernate_orm_test -e MARIADB_DATABASE=hibernate_orm_test -e MARIADB_ROOT_PASSWORD=hibernate_orm_test -p3306:3306 -d ${DB_IMAGE_MARIADB_10_11:-docker.io/mariadb:10.11.14} --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --skip-character-set-client-handshake --lower_case_table_names=2
175-
mariadb_wait_until_start
174+
$CONTAINER_CLI run --name mariadb -e MARIADB_USER=hibernate_orm_test -e MARIADB_PASSWORD=hibernate_orm_test -e MARIADB_DATABASE=hibernate_orm_test -e MARIADB_ROOT_PASSWORD=hibernate_orm_test -p3306:3306 --tmpfs /var/lib/mysql -d ${DB_IMAGE_MARIADB_10_11:-docker.io/mariadb:10.11.14} --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --skip-character-set-client-handshake --lower_case_table_names=2
175+
mariadb_setup
176176
}
177177

178178
mariadb_11_4() {
179179
$CONTAINER_CLI rm -f mariadb || true
180-
$CONTAINER_CLI run --name mariadb -e MARIADB_USER=hibernate_orm_test -e MARIADB_PASSWORD=hibernate_orm_test -e MARIADB_DATABASE=hibernate_orm_test -e MARIADB_ROOT_PASSWORD=hibernate_orm_test -p3306:3306 -d ${DB_IMAGE_MARIADB_11_4:-docker.io/mariadb:11.4.8} --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --skip-character-set-client-handshake --lower_case_table_names=2
181-
mariadb_wait_until_start
180+
$CONTAINER_CLI run --name mariadb -e MARIADB_USER=hibernate_orm_test -e MARIADB_PASSWORD=hibernate_orm_test -e MARIADB_DATABASE=hibernate_orm_test -e MARIADB_ROOT_PASSWORD=hibernate_orm_test -p3306:3306 --tmpfs /var/lib/mysql -d ${DB_IMAGE_MARIADB_11_4:-docker.io/mariadb:11.4.8} --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --skip-character-set-client-handshake --lower_case_table_names=2
181+
mariadb_setup
182182
}
183183

184184
mariadb_11_8() {
185185
$CONTAINER_CLI rm -f mariadb || true
186-
$CONTAINER_CLI run --name mariadb -e MARIADB_USER=hibernate_orm_test -e MARIADB_PASSWORD=hibernate_orm_test -e MARIADB_DATABASE=hibernate_orm_test -e MARIADB_ROOT_PASSWORD=hibernate_orm_test -p3306:3306 -d ${DB_IMAGE_MARIADB_11_8:-docker.io/mariadb:11.8.3} --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --skip-character-set-client-handshake --lower_case_table_names=2
187-
mariadb_wait_until_start
186+
$CONTAINER_CLI run --name mariadb -e MARIADB_USER=hibernate_orm_test -e MARIADB_PASSWORD=hibernate_orm_test -e MARIADB_DATABASE=hibernate_orm_test -e MARIADB_ROOT_PASSWORD=hibernate_orm_test -p3306:3306 --tmpfs /var/lib/mysql -d ${DB_IMAGE_MARIADB_11_8:-docker.io/mariadb:11.8.3} --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --skip-character-set-client-handshake --lower_case_table_names=2
187+
mariadb_setup
188188
}
189189

190190
mariadb_12_0() {
191191
$CONTAINER_CLI rm -f mariadb || true
192-
$CONTAINER_CLI run --name mariadb -e MARIADB_USER=hibernate_orm_test -e MARIADB_PASSWORD=hibernate_orm_test -e MARIADB_DATABASE=hibernate_orm_test -e MARIADB_ROOT_PASSWORD=hibernate_orm_test -p3306:3306 -d ${DB_IMAGE_MARIADB_12_0:-docker.io/mariadb:12.0.2} --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --skip-character-set-client-handshake --lower_case_table_names=2
193-
mariadb_wait_until_start
192+
$CONTAINER_CLI run --name mariadb -e MARIADB_USER=hibernate_orm_test -e MARIADB_PASSWORD=hibernate_orm_test -e MARIADB_DATABASE=hibernate_orm_test -e MARIADB_ROOT_PASSWORD=hibernate_orm_test -p3306:3306 --tmpfs /var/lib/mysql -d ${DB_IMAGE_MARIADB_12_0:-docker.io/mariadb:12.0.2} --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --skip-character-set-client-handshake --lower_case_table_names=2
193+
mariadb_setup
194194
}
195195

196196
mariadb_verylatest() {
197197
$CONTAINER_CLI rm -f mariadb || true
198-
$CONTAINER_CLI run --name mariadb -e MARIADB_USER=hibernate_orm_test -e MARIADB_PASSWORD=hibernate_orm_test -e MARIADB_DATABASE=hibernate_orm_test -e MARIADB_ROOT_PASSWORD=hibernate_orm_test -p3306:3306 -d ${DB_IMAGE_MARIADB_VERYLATEST:-quay.io/mariadb-foundation/mariadb-devel:verylatest} --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --skip-character-set-client-handshake --lower_case_table_names=2
198+
$CONTAINER_CLI run --name mariadb -e MARIADB_USER=hibernate_orm_test -e MARIADB_PASSWORD=hibernate_orm_test -e MARIADB_DATABASE=hibernate_orm_test -e MARIADB_ROOT_PASSWORD=hibernate_orm_test -p3306:3306 --tmpfs /var/lib/mysql -d ${DB_IMAGE_MARIADB_VERYLATEST:-quay.io/mariadb-foundation/mariadb-devel:verylatest} --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --skip-character-set-client-handshake --lower_case_table_names=2
199+
mariadb_setup
200+
}
201+
202+
mariadb_setup() {
199203
mariadb_wait_until_start
204+
205+
databases=()
206+
for n in $(seq 1 $(($(nproc)/2)))
207+
do
208+
databases+=("hibernate_orm_test_${n}")
209+
done
210+
create_cmd=
211+
for i in "${!databases[@]}";do
212+
create_cmd+="create database ${databases[i]}; grant all privileges on ${databases[i]}.* to 'hibernate_orm_test'@'%';"
213+
done
214+
$CONTAINER_CLI exec mariadb bash -c "mariadb -u root -phibernate_orm_test -e \"${create_cmd}\"" 2>/dev/null
215+
echo "MySQL databases were successfully setup"
200216
}
201217

202218
postgresql() {

hibernate-core/hibernate-core.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ tasks.withType( Test.class ).each { test ->
261261

262262
// see GradleParallelTestingResolver for how the test worker id is resolved in JDBC configs
263263
if ( project.db == "h2" || project.db == "hsqldb" || project.db == "pgsql_ci" || project.db == "edb_ci"
264-
|| project.db == "oracle_ci" || project.db == "oracle_xe_ci" || project.db == "mysql_ci" ) {
264+
|| project.db == "oracle_ci" || project.db == "oracle_xe_ci" || project.db == "mysql_ci" || project.db == "mariadb_ci" ) {
265265
// Most systems have multi-threading and maxing out a core on both threads will hurt performance
266266
// Also, as soon as we hit 16+ threads, the returns are diminishing, so divide by 4
267267
def threadCount = Runtime.runtime.availableProcessors()

hibernate-core/src/test/java/org/hibernate/orm/test/dialect/functional/MariaDBExtractSequenceMetadataTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
import org.junit.jupiter.api.BeforeAll;
2323
import org.junit.jupiter.api.Test;
2424

25+
import static org.hibernate.testing.jdbc.GradleParallelTestingResolver.resolveUrl;
26+
import static org.hibernate.testing.jdbc.GradleParallelTestingResolver.resolveUsername;
27+
2528
/**
2629
* @author Nathan Xu
2730
*/
@@ -80,8 +83,8 @@ public static void tearDownDBs() throws SQLException {
8083
}
8184

8285
private static Connection getConnection() throws SQLException {
83-
String url = Environment.getProperties().getProperty( Environment.URL );
84-
String user = Environment.getProperties().getProperty( Environment.USER );
86+
String url = resolveUrl( Environment.getProperties().getProperty( Environment.URL ) );
87+
String user = resolveUsername( Environment.getProperties().getProperty( Environment.USER ) );
8588
String password = Environment.getProperties().getProperty( Environment.PASS );
8689
return DriverManager.getConnection( url, user, password );
8790
}

hibernate-envers/hibernate-envers.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ configurations {
5757
tasks.withType( Test.class ).each { test ->
5858
// see GradleParallelTestingResolver for how the test worker id is resolved in JDBC configs
5959
if ( project.db == "h2" || project.db == "hsqldb" || project.db == "pgsql_ci" || project.db == "edb_ci"
60-
|| project.db == "oracle_ci" || project.db == "oracle_xe_ci" || project.db == "mysql_ci" ) {
60+
|| project.db == "oracle_ci" || project.db == "oracle_xe_ci" || project.db == "mysql_ci" || project.db == "mariadb_ci" ) {
6161
// Most systems have multi-threading and maxing out a core on both threads will hurt performance
6262
// Also, as soon as we hit 16+ threads, the returns are diminishing, so divide by 4
6363
def threadCount = Runtime.runtime.availableProcessors()

local-build-plugins/src/main/groovy/local.databases.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ ext {
165165
'jdbc.driver': 'org.mariadb.jdbc.Driver',
166166
'jdbc.user' : 'root',
167167
'jdbc.pass' : 'hibernate_orm_test',
168-
'jdbc.url' : 'jdbc:mariadb://' + dbHost + '/hibernate_orm_test',
168+
'jdbc.url' : 'jdbc:mariadb://' + dbHost + '/hibernate_orm_test_$worker',
169169
'jdbc.datasource' : 'org.mariadb.jdbc.Driver',
170170
// 'jdbc.datasource' : 'org.mariadb.jdbc.MariaDbDataSource',
171171
'connection.init_sql' : ''

0 commit comments

Comments
 (0)