Skip to content

Commit 0d53890

Browse files
rayudu3745beikov
authored andcommitted
HHH-19983: Config for running tests on Spanner emulator
1 parent 2659cfb commit 0d53890

File tree

4 files changed

+47
-0
lines changed

4 files changed

+47
-0
lines changed

docker_db.sh

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1370,6 +1370,38 @@ informix_12_10() {
13701370
fi
13711371
}
13721372

1373+
spanner() {
1374+
spanner_emulator
1375+
}
1376+
1377+
spanner_emulator() {
1378+
1379+
$CONTAINER_CLI rm -f spanner || true
1380+
# Run emulator (gRPC on 9010, REST on 9020)
1381+
$CONTAINER_CLI run --name spanner -d \
1382+
-p 9010:9010 \
1383+
-p 9020:9020 \
1384+
${SPANNER_EMULATOR:-gcr.io/cloud-spanner-emulator/emulator:1.5.45}
1385+
1386+
# Wait for emulator to be ready (check logs for known messages)
1387+
n=0
1388+
until [ "$n" -ge 20 ]; do
1389+
OUTPUT="$($CONTAINER_CLI logs spanner 2>&1 || true)"
1390+
if [[ "$OUTPUT" == *"gRPC server listening"* ]] || [[ "$OUTPUT" == *"Cloud Spanner emulator running"* ]]; then
1391+
echo "Cloud Spanner emulator started."
1392+
break
1393+
fi
1394+
echo "Waiting for Cloud Spanner emulator to start..."
1395+
n=$((n+1))
1396+
sleep 3
1397+
done
1398+
1399+
if [ "$n" -ge 20 ]; then
1400+
echo "Cloud Spanner emulator failed to start after 1 minute"
1401+
exit 1
1402+
fi
1403+
}
1404+
13731405
if [ -z ${1} ]; then
13741406
echo "No db name provided"
13751407
echo "Provide one of:"
@@ -1417,6 +1449,8 @@ if [ -z ${1} ]; then
14171449
echo -e "\informix"
14181450
echo -e "\informix_14_10"
14191451
echo -e "\informix_12_10"
1452+
echo -e "\tspanner"
1453+
echo -e "\tspanner_emulator"
14201454
else
14211455
${1}
14221456
fi

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,5 +406,15 @@ ext {
406406
'jdbc.url' : 'jdbc:Altibase://' + dbHost + ':20300/mydb?force_clob_bind=true',
407407
'jdbc.datasource' : 'Altibase.jdbc.driver.AltibaseDriver'
408408
],
409+
spanner : [
410+
'db.dialect' : 'org.hibernate.dialect.SpannerDialect',
411+
'jdbc.driver' : 'com.google.cloud.spanner.jdbc.JdbcDriver',
412+
'jdbc.user' : '', // Not used by Spanner
413+
'jdbc.pass' : '', // Not used by Spanner
414+
'connection.init_sql' : '',
415+
// autoConfigEmulator=true creates the necessary instances and DBs if they don't exist already
416+
'jdbc.url' : 'jdbc:cloudspanner:/projects/orm-test-project/instances/orm-test-instance/databases/orm-test-db?autoConfigEmulator=true;lenient=true',
417+
'jdbc.datasource' : 'com.google.cloud.spanner.jdbc.JdbcDriver'
418+
],
409419
]
410420
}

local-build-plugins/src/main/groovy/local.java-module.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ dependencies {
7777
testRuntimeOnly jdbcLibs.gaussdb
7878
testRuntimeOnly jdbcLibs.sybase
7979
testRuntimeOnly jdbcLibs.teradata
80+
testRuntimeOnly jdbcLibs.spanner
8081
testRuntimeOnly rootProject.fileTree(dir: 'drivers', include: '*.jar')
8182

8283
// Since both the DB2 driver and HANA have a package "net.jpountz" we have to add dependencies conditionally

settings.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ dependencyResolutionManagement {
239239
def teradataVersion = version "teradata", "20.00.00.51"
240240
def tidbVersion = version "tidb", mysqlVersion
241241
def altibaseVersion = version "altibase", "7.3.0.1.1"
242+
def spannerVersion = version "spanner", "2.34.0"
242243

243244
library( "h2", "com.h2database", "h2" ).versionRef( h2Version )
244245
library( "h2gis", "org.orbisgis", "h2gis" ).versionRef( h2gisVersion )
@@ -264,6 +265,7 @@ dependencyResolutionManagement {
264265
library( "informix", "com.ibm.informix", "jdbc" ).versionRef( informixVersion )
265266
library( "firebird", "org.firebirdsql.jdbc", "jaybird" ).versionRef( firebirdVersion )
266267
library( "altibase", "com.altibase", "altibase-jdbc" ).versionRef( altibaseVersion )
268+
library( "spanner", "com.google.cloud", "google-cloud-spanner-jdbc" ).versionRef( spannerVersion )
267269
}
268270
mavenLibs {
269271
def mavenCoreVersion = version "mavenCore", "3.9.9"

0 commit comments

Comments
 (0)