@@ -13,11 +13,10 @@ import (
1313	"github.com/cockroachdb/cockroach/pkg/cmd/roachtest/option" 
1414	"github.com/cockroachdb/cockroach/pkg/cmd/roachtest/registry" 
1515	"github.com/cockroachdb/cockroach/pkg/cmd/roachtest/test" 
16- 	"github.com/cockroachdb/cockroach/pkg/roachprod/config" 
1716	"github.com/cockroachdb/cockroach/pkg/roachprod/install" 
1817)
1918
20- var  supportedLiquibaseHarnessCommit  =  "1790ddef2d0339c5c96839ac60ac424c130dadd8 " 
19+ var  supportedLiquibaseHarnessCommit  =  "f43b967d60aa4ce7056a6d6ee0bc6d9f144c62d5 " 
2120
2221// This test runs the Liquibase test harness against a single cockroach node. 
2322func  registerLiquibase (r  registry.Registry ) {
@@ -32,7 +31,8 @@ func registerLiquibase(r registry.Registry) {
3231		node  :=  c .Node (1 )
3332		t .Status ("setting up cockroach" )
3433		startOpts  :=  option .DefaultStartOpts ()
35- 		startOpts .RoachprodOpts .SQLPort  =  config .DefaultSQLPort 
34+ 		// The liquibase-test-harness expects CockroachDB to be on port 26263. 
35+ 		startOpts .RoachprodOpts .SQLPort  =  26263 
3636		// TODO(darrylwong): if https://github.com/liquibase/liquibase-test-harness/pull/724 is merged, enable secure mode 
3737		c .Start (ctx , t .L (), startOpts , install .MakeClusterSettings (install .SecureOption (false )), c .All ())
3838
@@ -58,14 +58,13 @@ func registerLiquibase(r registry.Registry) {
5858			t .Fatal (err )
5959		}
6060
61- 		// TODO(rafi): use openjdk-11-jdk-headless once we are off of Ubuntu 16. 
6261		if  err  :=  repeatRunE (
6362			ctx ,
6463			t ,
6564			c ,
6665			node ,
6766			"install dependencies" ,
68- 			`sudo apt-get -qq install default-jre openjdk-8 -jdk-headless maven` ,
67+ 			`sudo apt-get -qq install default-jre openjdk-17 -jdk-headless maven` ,
6968		); err  !=  nil  {
7069			t .Fatal (err )
7170		}
@@ -77,8 +76,8 @@ func registerLiquibase(r registry.Registry) {
7776			t .Fatal (err )
7877		}
7978
80- 		// TODO(richardjcai ): When liquibase-test-harness 1.0.3  is released and tagged,  
81- 		//    use the tag version instead of the commit. 
79+ 		// TODO(sql-foundations ): When liquibase-test-harness 1.0.12  is released and 
80+ 		//   tagged,  use the tag version instead of the commit. 
8281		if  err  =  c .RunE (ctx , option .WithNodes (node ), "cd /mnt/data1/ && git clone https://github.com/liquibase/liquibase-test-harness.git" ); err  !=  nil  {
8382			t .Fatal (err )
8483		}
@@ -98,7 +97,11 @@ sudo ln -sf /home/ubuntu/cockroach /cockroach/cockroach.sh`); err != nil {
9897			t .Fatal (err )
9998		}
10099		// TODO(darrylwong): once secure mode is enabled, add --certs-dir=install.CockroachNodeCertsDir 
101- 		if  err  =  c .RunE (ctx , option .WithNodes (node ), `/mnt/data1/liquibase-test-harness/src/test/resources/docker/setup_db.sh localhost` ); err  !=  nil  {
100+ 		if  err  =  c .RunE (
101+ 			ctx ,
102+ 			option .WithNodes (node ),
103+ 			fmt .Sprintf (`/mnt/data1/liquibase-test-harness/src/test/resources/docker/setup_db.sh localhost:%d` , startOpts .RoachprodOpts .SQLPort ),
104+ 		); err  !=  nil  {
102105			t .Fatal (err )
103106		}
104107
@@ -109,21 +112,40 @@ sudo ln -sf /home/ubuntu/cockroach /cockroach/cockroach.sh`); err != nil {
109112
110113		const  (
111114			repoDir      =  "/mnt/data1/liquibase-test-harness" 
112- 			resultsPath  =  repoDir  +  "/target/surefire-reports/TEST-liquibase.harness.LiquibaseHarnessSuiteTest.xml " 
115+ 			resultsPath  =  repoDir  +  "/target/surefire-reports/" 
113116		)
114117
118+ 		// The Liquibase test harness currently has fixtures for 23.1, 23.2, 
119+ 		// and 24.1. We use the 24.1 here since its the most recent one. 
115120		// TODO(darrylwong): once secure mode is enabled, add -DdbUsername=roach -DdbPassword=system 
116121		cmd  :=  fmt .Sprintf ("cd /mnt/data1/liquibase-test-harness/ && " + 
117122			"mvn surefire-report:report-only test -Dtest=LiquibaseHarnessSuiteTest " + 
118- 			"-DdbName=cockroachdb -DdbVersion=20.2  -DoutputDirectory=%s" , repoDir )
123+ 			"-DdbName=cockroachdb -DdbVersion=24.1  -DoutputDirectory=%s" , repoDir )
119124
120125		err  =  c .RunE (ctx , option .WithNodes (node ), cmd )
121126		if  err  !=  nil  {
122127			t .L ().Printf ("error whilst running tests (may be expected): %#v" , err )
123128		}
124129
130+ 		// Load the list of all test results files and parse them individually. 
131+ 		result , err  :=  repeatRunWithDetailsSingleNode (
132+ 			ctx ,
133+ 			c ,
134+ 			t ,
135+ 			node ,
136+ 			"get list of test files" ,
137+ 			`ls ` + resultsPath + `*.xml` ,
138+ 		)
139+ 		if  err  !=  nil  {
140+ 			t .Fatal (err )
141+ 		}
142+ 
143+ 		if  len (result .Stdout ) ==  0  {
144+ 			t .Fatal ("could not find any test result files" )
145+ 		}
146+ 
125147		parseAndSummarizeJavaORMTestsResults (
126- 			ctx , t , c , node , "liquibase"  /* ormName */ , []byte (resultsPath ),
148+ 			ctx , t , c , node , "liquibase"  /* ormName */ , []byte (result . Stdout ),
127149			blocklistName ,
128150			expectedFailures ,
129151			ignoreList ,
0 commit comments