Skip to content

Commit 057935b

Browse files
committed
[misc] test stability improvement
1 parent 0917087 commit 057935b

File tree

3 files changed

+54
-29
lines changed

3 files changed

+54
-29
lines changed

src/test/java/org/mariadb/jdbc/integration/Common.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,17 @@ public static Connection createCon(String option, Integer sslPort) throws SQLExc
233233
return Driver.connect(conf);
234234
}
235235

236+
public static Connection createBasicCon(String option, Integer sslPort) throws SQLException {
237+
Configuration conf =
238+
Configuration.parse(mDefUrl.substring(0, mDefUrl.indexOf("?")) + "?" + option);
239+
if (sslPort != null) {
240+
for (HostAddress hostAddress : conf.addresses()) {
241+
hostAddress.port = sslPort;
242+
}
243+
}
244+
return Driver.connect(conf);
245+
}
246+
236247
@AfterEach
237248
public void afterEach1() throws SQLException {
238249
sharedConn.isValid(2000);

src/test/java/org/mariadb/jdbc/integration/SslTest.java

Lines changed: 40 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,13 @@ private static void createSslUser(String user, String requirement) throws SQLExc
8484

8585
private String getSslVersion(Connection con) throws SQLException {
8686
Statement stmt = con.createStatement();
87-
ResultSet rs = stmt.executeQuery("show STATUS LIKE 'Ssl_version'");
88-
if (rs.next()) {
89-
return rs.getString(2);
87+
if ("maxscale".equals(System.getenv("srv")) || "skysql-ha".equals(System.getenv("srv"))) {
88+
return "ok";
89+
} else {
90+
ResultSet rs = stmt.executeQuery("show STATUS LIKE 'Ssl_version'");
91+
if (rs.next()) {
92+
return rs.getString(2);
93+
}
9094
}
9195
return null;
9296
}
@@ -163,6 +167,29 @@ public void enabledSslCipherSuites() throws SQLException {
163167
"Unsupported SSL cipher");
164168
}
165169

170+
@Test
171+
public void errorUsingWrongTypeOfKeystore() throws Exception {
172+
Assumptions.assumeTrue(
173+
!"maxscale".equals(System.getenv("srv")) && !"skysql-ha".equals(System.getenv("srv")));
174+
String pkcsFile = System.getenv("TEST_DB_CLIENT_PKCS");
175+
Assumptions.assumeTrue(pkcsFile != null);
176+
177+
if (checkFileExists(pkcsFile) != null) {
178+
// wrong keystore type
179+
assertThrows(
180+
SQLNonTransientConnectionException.class,
181+
() ->
182+
createCon(
183+
baseMutualOptions
184+
+ "&sslMode=verify-ca&serverSslCert="
185+
+ pkcsFile
186+
+ "&trustStoreType=JKS&keyStore="
187+
+ System.getenv("TEST_DB_CLIENT_PKCS")
188+
+ "&keyStorePassword=kspass",
189+
sslPort));
190+
}
191+
}
192+
166193
@Test
167194
public void mutualAuthSsl() throws Exception {
168195
Assumptions.assumeTrue(
@@ -189,21 +216,6 @@ public void mutualAuthSsl() throws Exception {
189216
assertNotNull(getSslVersion(con));
190217
}
191218

192-
String pkcsFile = System.getenv("TEST_DB_CLIENT_PKCS");
193-
if (pkcsFile != null && checkFileExists(pkcsFile) != null) {
194-
// wrong keystore type
195-
assertThrows(
196-
SQLNonTransientConnectionException.class,
197-
() ->
198-
createCon(
199-
baseMutualOptions
200-
+ "&sslMode=verify-ca&serverSslCert="
201-
+ pkcsFile
202-
+ "&trustStoreType=JKS&keyStore="
203-
+ System.getenv("TEST_DB_CLIENT_PKCS")
204-
+ "&keyStorePassword=kspass",
205-
sslPort));
206-
}
207219
// with URL
208220
boolean isWin = System.getProperty("os.name").toLowerCase(Locale.ROOT).contains("win");
209221
try (Connection con =
@@ -323,15 +335,17 @@ public void certificateMandatorySsl() throws Throwable {
323335
createCon(baseOptions + "&sslMode=VERIFY_CA&serverSslCert=" + certificateString, sslPort)) {
324336
assertNotNull(getSslVersion(con));
325337
}
326-
327-
assertThrows(
338+
assertThrowsContains(
328339
SQLNonTransientConnectionException.class,
329-
() -> createCon(baseOptions + "&sslMode=VERIFY_CA", sslPort));
330-
assertThrows(
331-
SQLInvalidAuthorizationSpecException.class,
332-
() ->
333-
createCon(
334-
baseMutualOptions + "&sslMode=VERIFY_CA&serverSslCert=" + serverCertPath, sslPort));
340+
() -> createBasicCon(baseOptions + "&sslMode=VERIFY_CA", sslPort),
341+
"unable to find valid certification");
342+
if (!"maxscale".equals(System.getenv("srv"))) {
343+
assertThrows(
344+
SQLInvalidAuthorizationSpecException.class,
345+
() ->
346+
createBasicCon(
347+
baseMutualOptions + "&sslMode=VERIFY_CA&serverSslCert=" + serverCertPath, sslPort));
348+
}
335349
}
336350

337351
private String getServerCertificate(String serverCertPath) throws SQLException {

src/test/java/org/mariadb/jdbc/integration/UpdateResultSetTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ public void testAutoIncrement() throws Exception {
191191
rs.updateString(2, "0-1");
192192
rs.insertRow();
193193
}
194-
194+
stmt.execute("FLUSH TABLES");
195195
ResultSet rs = stmt.executeQuery("SELECT * FROM testAutoIncrement");
196196
assertTrue(rs.next());
197197
assertEquals(1, rs.getInt(1));
@@ -419,7 +419,7 @@ public void testPrimaryGenerated() throws Exception {
419419

420420
assertFalse(rs.next());
421421
}
422-
422+
stmt.execute("FLUSH TABLES");
423423
ResultSet rs = stmt.executeQuery("SELECT id, t1, t2 FROM PrimaryGenerated");
424424
assertTrue(rs.next());
425425
assertEquals(1, rs.getInt(1));
@@ -497,7 +497,7 @@ public void testPrimaryGeneratedDefault() throws Exception {
497497
assertNotNull(rs.getDate(3));
498498
assertFalse(rs.next());
499499
}
500-
500+
stmt.execute("FLUSH TABLES");
501501
ResultSet rs = stmt.executeQuery("SELECT id, t1, t2 FROM testPrimaryGeneratedDefault");
502502
assertTrue(rs.next());
503503
assertEquals(1, rs.getInt(1));

0 commit comments

Comments
 (0)