diff tests/OnClientTester.java @ 601:2b5516ed0d92

Allow to select specific OnClient tests from command line
author Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
date Thu, 09 Dec 2021 15:40:40 +0100 (2021-12-09)
parents c2581dbd1dbf
children 662e8de9b002
line wrap: on
line diff
--- a/tests/OnClientTester.java
+++ b/tests/OnClientTester.java
@@ -26,6 +26,7 @@ import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
 import java.sql.Statement;
 import java.sql.SQLException;
+import java.util.ArrayList;
 import java.util.List;
 
 import static java.nio.file.StandardOpenOption.CREATE_NEW;
@@ -56,6 +57,7 @@ public final class OnClientTester {
 
 	private final String jdbcUrl;
 	private final int verbosity;
+	private final ArrayList<String> selectedTests;
 	private String currentTestName;
 	private long startTime;
 	private MonetConnection conn;
@@ -66,11 +68,19 @@ public final class OnClientTester {
 	public OnClientTester(String jdbcUrl, int verbosity) {
 		this.jdbcUrl = jdbcUrl;
 		this.verbosity = verbosity;
+		this.selectedTests = null;
+	}
+
+	public OnClientTester(String jdbcUrl, int verbosity, ArrayList<String> selectedTests) {
+		this.jdbcUrl = jdbcUrl;
+		this.verbosity = verbosity;
+		this.selectedTests = selectedTests;
 	}
 
 	public static void main(String[] args) {
 		String jdbcUrl = null;
 		int verbosity = 0;
+		ArrayList<String> selectedTests = new ArrayList<>();
 
 		for (String arg : args) {
 			if (arg.equals("-v"))
@@ -79,9 +89,11 @@ public final class OnClientTester {
 				verbosity += 2;
 			else if (jdbcUrl == null)
 				jdbcUrl = arg;
-			else {
+			else if (arg.startsWith("-")){
 				System.err.println("Unexpected argument " + arg);
 				System.exit(2);
+			} else {
+				selectedTests.add(arg);
 			}
 		}
 		if (jdbcUrl == null || jdbcUrl.isEmpty()) {
@@ -89,12 +101,20 @@ public final class OnClientTester {
 			System.exit(1);
 		}
 
-		OnClientTester tester = new OnClientTester(jdbcUrl, verbosity);
+		OnClientTester tester = new OnClientTester(jdbcUrl, verbosity, selectedTests);
 		int failures = tester.runTests();
 		if (failures > 0)
 			System.exit(-1);
 	}
 
+	boolean isSelected(String name) {
+		if (selectedTests == null) {
+			return true;
+		} else {
+			return selectedTests.contains(name);
+		}
+	}
+
 	public int runTests() {
 		if (! openConnection())
 			return 1;	// failed to open JDBC connection to MonetDB
@@ -104,31 +124,56 @@ public final class OnClientTester {
 		int failures = 0;
 		try {
 			// all test methods start with test_ and have no arguments
-			test_BugFixLevel();
-			test_Upload();
-			test_ClientRefusesUpload();
-			test_Offset0();
-			test_Offset1();
-			test_Offset5();
-			test_ServerStopsReading();
-			test_Download();
-			test_ClientRefusesDownload();
-			test_LargeUpload();
-			test_LargeDownload();
-			test_UploadFromStream();
-			test_UploadFromReader();
-			test_UploadFromReaderOffset();
-			test_FailUploadLate();
-			test_FailUploadLate2();
-			test_FailDownloadLate();
-			test_FileTransferHandlerUploadUtf8();
-			test_FileTransferHandlerUploadLatin1();
-			test_FileTransferHandlerUploadNull();
-			test_FileTransferHandlerUploadRefused();
-			test_FileTransferHandlerDownloadUtf8();
-			test_FileTransferHandlerDownloadLatin1();
-			test_FileTransferHandlerDownloadNull();
-			test_FileTransferHandlerDownloadRefused();
+			if (isSelected("BugFixLevel"))
+				test_BugFixLevel();
+			if (isSelected("Upload"))
+				test_Upload();
+			if (isSelected("ClientRefusesUpload"))
+				test_ClientRefusesUpload();
+			if (isSelected("Offset0"))
+				test_Offset0();
+			if (isSelected("Offset1"))
+				test_Offset1();
+			if (isSelected("Offset5"))
+				test_Offset5();
+			if (isSelected("ServerStopsReading"))
+				test_ServerStopsReading();
+			if (isSelected("Download"))
+				test_Download();
+			if (isSelected("ClientRefusesDownload"))
+				test_ClientRefusesDownload();
+			if (isSelected("LargeUpload"))
+				test_LargeUpload();
+			if (isSelected("LargeDownload"))
+				test_LargeDownload();
+			if (isSelected("UploadFromStream"))
+				test_UploadFromStream();
+			if (isSelected("UploadFromReader"))
+				test_UploadFromReader();
+			if (isSelected("UploadFromReaderOffset"))
+				test_UploadFromReaderOffset();
+			if (isSelected("FailUploadLate"))
+				test_FailUploadLate();
+			if (isSelected("FailUploadLate2"))
+				test_FailUploadLate2();
+			if (isSelected("FailDownloadLate"))
+				test_FailDownloadLate();
+			if (isSelected("FileTransferHandlerUploadUtf8"))
+				test_FileTransferHandlerUploadUtf8();
+			if (isSelected("FileTransferHandlerUploadLatin1"))
+				test_FileTransferHandlerUploadLatin1();
+			if (isSelected("FileTransferHandlerUploadNull"))
+				test_FileTransferHandlerUploadNull();
+			if (isSelected("FileTransferHandlerUploadRefused"))
+				test_FileTransferHandlerUploadRefused();
+			if (isSelected("FileTransferHandlerDownloadUtf8"))
+				test_FileTransferHandlerDownloadUtf8();
+			if (isSelected("FileTransferHandlerDownloadLatin1"))
+				test_FileTransferHandlerDownloadLatin1();
+			if (isSelected("FileTransferHandlerDownloadNull"))
+				test_FileTransferHandlerDownloadNull();
+			if (isSelected("FileTransferHandlerDownloadRefused"))
+				test_FileTransferHandlerDownloadRefused();
 		} catch (Failure e) {
 			failures++;
 			System.err.println();