view tests/Test_Cforkbomb.java @ 970:f90d811e97eb default tip

Adjust getTableTypes() test for new table type: LOCAL TEMPORARY VIEW, added in 11.53.4 (Mar2025-SP1)
author Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
date Thu, 03 Apr 2025 15:01:33 +0200 (3 days ago)
parents d416e9b6b3d0
children
line wrap: on
line source
/*
 * SPDX-License-Identifier: MPL-2.0
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0.  If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * Copyright 2024, 2025 MonetDB Foundation;
 * Copyright August 2008 - 2023 MonetDB B.V.;
 * Copyright 1997 - July 2008 CWI.
 */

import java.sql.*;
import java.util.*;

public class Test_Cforkbomb {
	private static String args[];

	static class Worker extends Thread {
		private int id;

		public Worker(int id) {
			this.id = id;
		}

		public void run() {
			try {
				System.out.print("Establishing Connection " + id + "...");
				Connection con = DriverManager.getConnection(args[0]);
				System.out.println(" done...");

				// do something with the connection to test if it works
				Statement stmt = con.createStatement();
				ResultSet rs = stmt.executeQuery("SELECT " + id);
				if (!rs.next()) {
					System.out.println("thread " + id + " got no response from server :(");
				} else {
					if (rs.getInt(1) == id) {
						System.out.println("thread " + id + ": connection ok");
					} else {
						System.out.println("thread " + id + ": got garbage: " + rs.getString(1));
					}
				}

				con.close();
			} catch (SQLException e) {
				System.out.println("thread " + id + " unhappy: " + e.toString());
			}
		}
	}

	public static void main(String[] args) throws Exception {
		Test_Cforkbomb.args = args;

		// just DoS the server full throttle :)
		int i;
		for (i = 0; i < 200; i++) {
			Worker w = new Worker(i);
			w.start();
		}
	}
}