Skip to content

Commit fc6ea2b

Browse files
committed
MLE-24523 Getting reverse proxy tests running again
1 parent 2760447 commit fc6ea2b

File tree

6 files changed

+54
-44
lines changed

6 files changed

+54
-44
lines changed

.copyrightconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ startyear: 2010
1111
# - Dotfiles already skipped automatically
1212
# Enable by removing the leading '# ' from the next line and editing values.
1313
# filesexcluded: third_party/*, docs/generated/*.md, assets/*.png, scripts/temp_*.py, vendor/lib.js
14-
filesexcluded: .github/*, README.md, Jenkinsfile, gradle/*, docker-compose.yml, *.gradle, gradle.properties, gradlew, gradlew.bat, **/test/resources/**, *.md, pom.xml
14+
filesexcluded: .github/*, README.md, Jenkinsfile, gradle/*, docker-compose.yaml, docker-compose.yml, *.gradle, gradle.properties, gradlew, gradlew.bat, **/test/resources/**, *.md, pom.xml

Jenkinsfile

Lines changed: 44 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
@Library('shared-libraries') _
22

3-
def getJava() {
3+
def getJavaHomePath() {
44
if (env.JAVA_VERSION == "JAVA21") {
55
return "/home/builder/java/jdk-21.0.1"
66
} else {
@@ -84,28 +84,37 @@ def runTests(String image) {
8484
def runTestsWithReverseProxy(String image) {
8585
setupDockerMarkLogic(image)
8686

87+
sh label: 'run marklogic-client-api tests with reverse proxy', script: '''#!/bin/bash
88+
export JAVA_HOME=$JAVA_HOME_DIR
89+
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
90+
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
91+
cd java-client-api
92+
./gradlew clean build -x test
93+
./gradlew -PtestUseReverseProxyServer=true runReverseProxyServer marklogic-client-api:test || true
94+
'''
95+
8796
sh label: 'run fragile functional tests with reverse proxy', script: '''#!/bin/bash
8897
export JAVA_HOME=$JAVA_HOME_DIR
8998
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
9099
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
91100
cd java-client-api
92-
./gradlew -PtestUseReverseProxyServer=true test-app:runReverseProxyServer marklogic-client-api-functionaltests:runFragileTests || true
101+
./gradlew -PtestUseReverseProxyServer=true runReverseProxyServer marklogic-client-api-functionaltests:runFragileTests || true
93102
'''
94103

95104
sh label: 'run fast functional tests with reverse proxy', script: '''#!/bin/bash
96105
export JAVA_HOME=$JAVA_HOME_DIR
97106
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
98107
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
99108
cd java-client-api
100-
./gradlew -PtestUseReverseProxyServer=true test-app:runReverseProxyServer marklogic-client-api-functionaltests:runFastFunctionalTests || true
109+
./gradlew -PtestUseReverseProxyServer=true runReverseProxyServer marklogic-client-api-functionaltests:runFastFunctionalTests || true
101110
'''
102111

103112
sh label: 'run slow functional tests with reverse proxy', script: '''#!/bin/bash
104113
export JAVA_HOME=$JAVA_HOME_DIR
105114
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
106115
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
107116
cd java-client-api
108-
./gradlew -PtestUseReverseProxyServer=true test-app:runReverseProxyServer marklogic-client-api-functionaltests:runSlowFunctionalTests || true
117+
./gradlew -PtestUseReverseProxyServer=true runReverseProxyServer marklogic-client-api-functionaltests:runSlowFunctionalTests || true
109118
'''
110119

111120
postProcessTestResults()
@@ -149,39 +158,40 @@ pipeline {
149158

150159
parameters {
151160
booleanParam(name: 'regressions', defaultValue: false, description: 'indicator if build is for regressions')
152-
string(name: 'Email', defaultValue: '', description: 'Who should I say send the email to?')
153-
string(name: 'JAVA_VERSION', defaultValue: 'JAVA8', description: 'Who should I say send the email to?')
161+
string(name: 'JAVA_VERSION', defaultValue: 'JAVA17', description: 'Either JAVA17 or JAVA21')
154162
}
155163

156164
environment {
157-
JAVA_HOME_DIR = getJava()
165+
JAVA_HOME_DIR = getJavaHomePath()
158166
GRADLE_DIR = ".gradle"
159167
DMC_USER = credentials('MLBUILD_USER')
160168
DMC_PASSWORD = credentials('MLBUILD_PASSWORD')
161169
}
162170

163171
stages {
172+
164173
stage('pull-request-tests') {
165174
when {
166175
not {
167176
expression { return params.regressions }
168177
}
169178
}
170179
steps {
171-
setupDockerMarkLogic("ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi-rootless:11.3.2-ubi-rootless-2.2.2")
180+
setupDockerMarkLogic("ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi:latest-12")
172181
sh label: 'run marklogic-client-api tests', script: '''#!/bin/bash
173182
export JAVA_HOME=$JAVA_HOME_DIR
174183
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
175184
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
176185
cd java-client-api
177-
// Ensure all modules can be built first.
186+
echo "Ensure all subprojects can be built first."
178187
./gradlew clean build -x test
179188
180-
// Run a sufficient number of tests to verify the PR.
181-
./gradlew cleanTest marklogic-client-api:test || true
189+
echo "Run a sufficient number of tests to verify the PR."
190+
./gradlew marklogic-client-api:test --tests ReadDocumentPageTest || true
191+
192+
# Run a test with the reverse proxy server to ensure it's fine.
193+
#./gradlew -PtestUseReverseProxyServer=true clean runReverseProxyServer marklogic-client-api:test --tests ReadDocumentPageTest || true
182194
'''
183-
// Omitting this until MLE-24523 can be addressed
184-
// ./gradlew -PtestUseReverseProxyServer=true test-app:runReverseProxyServer marklogic-client-api-functionaltests:runFastFunctionalTests || true
185195
junit '**/build/**/TEST*.xml'
186196
}
187197
post {
@@ -218,7 +228,7 @@ pipeline {
218228
}
219229
}
220230
steps {
221-
runTests("ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi-rootless:11.3.2-ubi-rootless-2.2.2")
231+
runTests("ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi:latest-11")
222232
junit '**/build/**/TEST*.xml'
223233
}
224234
post {
@@ -229,25 +239,24 @@ pipeline {
229239
}
230240
}
231241

232-
// Omitting this until MLE-24523 can be addressed
233-
// stage('regressions-11-reverseProxy') {
234-
// when {
235-
// allOf {
236-
// branch 'develop'
237-
// expression {return params.regressions}
238-
// }
239-
// }
240-
// steps {
241-
// runTestsWithReverseProxy("ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi:latest-11")
242-
// junit '**/build/**/TEST*.xml'
243-
// }
244-
// post {
245-
// always {
246-
// updateWorkspacePermissions()
247-
// tearDownDocker()
248-
// }
249-
// }
250-
// }
242+
stage('regressions-12-reverseProxy') {
243+
when {
244+
allOf {
245+
branch 'develop'
246+
expression {return params.regressions}
247+
}
248+
}
249+
steps {
250+
runTestsWithReverseProxy("ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi:latest-12")
251+
junit '**/build/**/TEST*.xml'
252+
}
253+
post {
254+
always {
255+
updateWorkspacePermissions()
256+
tearDownDocker()
257+
}
258+
}
259+
}
251260

252261
stage('regressions-12') {
253262
when {
@@ -257,7 +266,7 @@ pipeline {
257266
}
258267
}
259268
steps {
260-
runTests("ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi-rootless:12.0.0-ubi-rootless-2.2.0")
269+
runTests("ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi:latest-12")
261270
junit '**/build/**/TEST*.xml'
262271
}
263272
post {
@@ -268,7 +277,7 @@ pipeline {
268277
}
269278
}
270279

271-
stage('regressions-10.0') {
280+
stage('regressions-10') {
272281
when {
273282
allOf {
274283
branch 'develop'

docker-compose.yaml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,7 @@ services:
1818
- ${MARKLOGIC_LOGS_VOLUME}:/var/opt/MarkLogic/Logs
1919
ports:
2020
- "8000-8002:8000-8002"
21-
- "8010-8014:8010-8014"
22-
- "8022:8022"
23-
- "8054-8059:8054-8059"
24-
- "8093:8093"
21+
- "8010-8015:8010-8015" # Range of ports used by app servers, at least one of which - 8015 - is created by a test.
2522

2623
volumes:
2724
marklogicLogs:

marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestDatabaseClientConnection.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,11 +124,10 @@ void invalidPort() {
124124
DatabaseClient client = newDatabaseClientBuilder().withPort(assumedInvalidPort).build();
125125

126126
MarkLogicIOException ex = Assertions.assertThrows(MarkLogicIOException.class, () -> client.checkConnection());
127-
String expected = "Error occurred while calling http://localhost:60123/v1/ping; java.net.ConnectException: " +
128-
"Failed to connect to localhost/127.0.0.1:60123 ; possible reasons for the error include " +
127+
String expected = "Failed to connect to localhost/127.0.0.1:60123 ; possible reasons for the error include " +
129128
"that a MarkLogic app server may not be listening on the port, or MarkLogic was stopped " +
130129
"or restarted during the request; check the MarkLogic server logs for more information.";
131-
assertEquals(expected, ex.getMessage());
130+
assertTrue(ex.getMessage().contains(expected), "Unexpected error: " + ex.getMessage());
132131
}
133132

134133
@Test

marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/BulkIOCallersFnTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public class BulkIOCallersFnTest extends BasicJavaClientREST {
4242
private static String host = null;
4343

4444
private static int modulesPort = 8000;
45-
private static int restTestport = 8093;
45+
private static int restTestport = 8015;
4646
private static String restServerName = "TestDynamicIngest";
4747

4848
private static SecurityContext secContext = null;

test-app/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,8 @@ You can also specify custom mappings via the Gradle task. For example, if you ha
3434
port 8123 and you want to associate a path of "/my/custom/server" to it, you can do:
3535

3636
./gradlew runBlock -PrpsCustomMappings=/my/custom/server,8123
37+
38+
To run one or more tests with the reverse proxy server being started, the tests being run, and then the server being
39+
stopped, do the following (you can see examples of this in the project `Jenkinsfile` as well):
40+
41+
./gradlew -PtestUseReverseProxyServer=true runReverseProxyServer marklogic-client-api:test --tests ReadDocumentPageTest

0 commit comments

Comments
 (0)