pgpool2.git / summary / log / commit / refs

commit    d14f4f90ed2eeff883e815e0968d89587431a4c2
Author:   Tatsuo Ishii <ishii@postgresql.org>
Date:     Sat Jan 18 11:57:31 2014 +0000

    Integrate jdbc test to regression test.
    
    "005.jdbc" added. In order to execute the new regression part,
    pgpool_setup now supports "raw" mode.


.../regression/tests/005.jdbc/AutoCommitTest.java | 45 ++++++++++ src/test/regression/tests/005.jdbc/BatchTest.java | 55 ++++++++++++ src/test/regression/tests/005.jdbc/ColumnTest.java | 60 +++++++++++++ .../tests/005.jdbc/CreateTempTableTest.java | 48 ++++++++++ src/test/regression/tests/005.jdbc/InsertTest.java | 34 +++++++ src/test/regression/tests/005.jdbc/LockTest.java | 36 ++++++++ src/test/regression/tests/005.jdbc/PgpoolTest.java | 75 ++++++++++++++++ src/test/regression/tests/005.jdbc/README.euc_jp | 73 +++++++++++++++ src/test/regression/tests/005.jdbc/RunTest.java | 83 +++++++++++++++++ src/test/regression/tests/005.jdbc/SelectTest.java | 37 ++++++++ src/test/regression/tests/005.jdbc/UpdateTest.java | 32 +++++++ src/test/regression/tests/005.jdbc/expected.txt | 7 ++ .../tests/005.jdbc/expected/CreateTempTable | 1 + .../regression/tests/005.jdbc/expected/autocommit | 10 +++ src/test/regression/tests/005.jdbc/expected/batch | 1 + src/test/regression/tests/005.jdbc/expected/column | 100 +++++++++++++++++++++ src/test/regression/tests/005.jdbc/expected/insert | 1 + src/test/regression/tests/005.jdbc/expected/lock | 100 +++++++++++++++++++++ src/test/regression/tests/005.jdbc/expected/select | 2 + src/test/regression/tests/005.jdbc/expected/update | 1 + src/test/regression/tests/005.jdbc/prepare.sql | 54 +++++++++++ src/test/regression/tests/005.jdbc/run.sh | 6 ++ src/test/regression/tests/005.jdbc/test.sh | 54 +++++++++++ 23 files changed, 915 insertions(+) diff --git a/src/test/regression/tests/005.jdbc/AutoCommitTest.java b/src/test/regression/tests/005.jdbc/AutoCommitTest.java new file mode 100644 index 000000000..5b8194f4c --- /dev/null +++ b/src/test/regression/tests/005.jdbc/AutoCommitTest.java @@ -0,0 +1,45 @@ +import java.util.*; +import java.io.*; +import java.sql.*; + +public class AutoCommitTest extends PgpoolTest{ + public String sql = "select * from autocommit where a = ?"; + + public static void main(String[] args) throws SQLException { + AutoCommitTest test = new AutoCommitTest(); + test.do_test(); + } + + public void do_test() throws SQLException + { + connection.setAutoCommit(true); + + PreparedStatement stmt = null; + ResultSet rs = null; + + try { + for(int i = 0; i < 10; i++) { + stmt = connection.prepareStatement(sql); + try { + stmt.setInt(1, i + 1); + rs = stmt.executeQuery(); + + while(rs.next()){ + logwriter.print(rs.getInt(1) + " "); + } + logwriter.println(); + } finally { + if(rs != null) rs.close(); + if(stmt != null) stmt.close(); + } + } + } finally { + connection.close(); + logwriter.close(); + } + } + + public String getTestName() { + return "autocommit"; + } +} diff --git a/src/test/regression/tests/005.jdbc/BatchTest.java b/src/test/regression/tests/005.jdbc/BatchTest.java new file mode 100644 index 000000000..664f43950 --- /dev/null +++ b/src/test/regression/tests/005.jdbc/BatchTest.java @@ -0,0 +1,55 @@ +import java.util.*; +import java.io.*; +import java.sql.*; + +public class BatchTest extends PgpoolTest { + public String [] batchSqls = new String[] { + "INSERT INTO batch VALUES (1)", + "INSERT INTO batch VALUES (1)", + "INSERT INTO batch VALUES (1)", + "INSERT INTO batch VALUES (1)", + "INSERT INTO batch VALUES (1)", + "INSERT INTO batch VALUES (1)", + "INSERT INTO batch VALUES (1)", + "INSERT INTO batch VALUES (1)", + "INSERT INTO batch VALUES (1)", + "INSERT INTO batch VALUES (1)", + "INSERT INTO batch VALUES (1)", + }; + + public void do_test() throws SQLException { + connection.setAutoCommit(false); + + Statement stmt = null; + ResultSet rs = null; + + try { + try { + stmt = connection.createStatement(); + for(int i=0; i<batchSqls.length; i++) { + stmt.addBatch(batchSqls[i]); + } + int [] r = stmt.executeBatch(); + + connection.commit(); + stmt.close(); + + stmt = connection.createStatement(); + rs = stmt.executeQuery("SELECT count(*) FROM batch"); + rs.next(); + logwriter.println(rs.getInt(1)); + connection.commit(); + } finally { + if(rs != null) rs.close(); + if(stmt != null) stmt.close(); + } + } finally { + connection.close(); + logwriter.close(); + } + } + + public String getTestName() { + return "batch"; + } +} diff --git a/src/test/regression/tests/005.jdbc/ColumnTest.java b/src/test/regression/tests/005.jdbc/ColumnTest.java new file mode 100644 index 000000000..b4402337a --- /dev/null +++ b/src/test/regression/tests/005.jdbc/ColumnTest.java @@ -0,0 +1,60 @@ +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +public class ColumnTest extends PgpoolTest { + public static String sql = + "SELECT" + +" columntest.v1 as abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz001," + +" columntest.v2 as abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz002," + +" columntest.v3 as abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz003," + +" columntest.v4 as abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz004," + +" columntest.v5 as abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz005," + +" columntest.v6 as abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz006," + +" columntest.v7 as abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz007," + +" columntest.v8 as abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz008," + +" columntest.v9 as abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz009," + +" columntest.v10 as abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz010," + +" columntest.v11 as abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz011," + +" columntest.v12 as abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz012," + +" columntest.v13 as abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz013," + +" columntest.v14 as abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz014," + +" columntest.v15 as abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz015" + +" FROM columntest"; + static String url = "jdbc:postgresql://localhost:9999/test"; + static String user = "y-asaba"; + static String password = "postgres"; + static final int COUNT = 100; + + public void do_test() throws SQLException { + connection.setAutoCommit(false); + + Statement stmt = null; + ResultSet rs = null; + + try { + for (int i = 0; i < COUNT; i++) { + try { + stmt = connection.createStatement(); + rs = stmt.executeQuery(sql); + + while(rs.next()){ + logwriter.println(rs.getInt(1)); + } + } finally { + if(rs != null) rs.close(); + if(stmt != null) stmt.close(); + } + } + } finally { + connection.close(); + logwriter.close(); + } + } + + public String getTestName() { + return "column"; + } +} diff --git a/src/test/regression/tests/005.jdbc/CreateTempTableTest.java b/src/test/regression/tests/005.jdbc/CreateTempTableTest.java new file mode 100644 index 000000000..0045a2ae7 --- /dev/null +++ b/src/test/regression/tests/005.jdbc/CreateTempTableTest.java @@ -0,0 +1,48 @@ +/* + * Test for master/slave mode + temporary tables + */ +import java.sql.*; + +public class CreateTempTableTest extends PgpoolTest { + public void do_test() throws SQLException { + + try { + ResultSet rs; + PreparedStatement pstmt = null; + Statement stmt = null; + + connection.setAutoCommit(false); + + pstmt = connection.prepareStatement("CREATE TEMP TABLE t1(i INTEGER)"); + pstmt.executeUpdate(); + pstmt.close(); + + pstmt = connection.prepareStatement("/*NO LOAD BALANCE*/ INSERT INTO t1 SELECT ?"); + pstmt.setInt(1, 100); + pstmt.executeUpdate(); + pstmt.close(); + + pstmt = connection.prepareStatement("/*NO LOAD BALANCE*/ UPDATE t1 SET i = ?"); + pstmt.setInt(1, 200); + pstmt.executeUpdate(); + pstmt.close(); + + pstmt = connection.prepareStatement("/*NO LOAD BALANCE*/ SELECT sum(i) FROM t1"); + rs = pstmt.executeQuery(); + rs.next(); + logwriter.println(rs.getInt(1)); + rs.close(); + pstmt.close(); + + connection.commit(); + } + finally { + connection.close(); + logwriter.close(); + } + } + + public String getTestName() { + return "CreateTempTable"; + } +} diff --git a/src/test/regression/tests/005.jdbc/InsertTest.java b/src/test/regression/tests/005.jdbc/InsertTest.java new file mode 100644 index 000000000..62dd35658 --- /dev/null +++ b/src/test/regression/tests/005.jdbc/InsertTest.java @@ -0,0 +1,34 @@ +import java.sql.*; + +public class InsertTest extends PgpoolTest { + public void do_test() throws SQLException { + int N = 100; + + try { + ResultSet rs; + PreparedStatement pstmt = null; + Statement stmt = null; + + for (int i = 0; i < N; i++) { + connection.setAutoCommit(false); + pstmt = connection.prepareStatement("INSERT INTO ins VALUES (?)"); + pstmt.setInt(1, i); + pstmt.executeUpdate(); + pstmt.close(); + connection.commit(); + } + connection.setAutoCommit(true); + stmt = connection.createStatement(); + rs = stmt.executeQuery("SELECT count(a) FROM ins" ); + rs.next(); + logwriter.println(rs.getInt(1)); + } + finally { + connection.close(); + } + } + + public String getTestName() { + return "insert"; + } +} diff --git a/src/test/regression/tests/005.jdbc/LockTest.java b/src/test/regression/tests/005.jdbc/LockTest.java new file mode 100644 index 000000000..2509ce1e8 --- /dev/null +++ b/src/test/regression/tests/005.jdbc/LockTest.java @@ -0,0 +1,36 @@ +import java.sql.*; +import java.io.*; + +public class LockTest extends PgpoolTest { + public final int COUNT = 100; + + public void do_test() throws SQLException, IOException { + PreparedStatement pstmt = null; + Statement stmt = null; + ResultSet rs = null; + try{ + for (int i = 0; i < COUNT; i++) { + connection.setAutoCommit(false); + /* table lock */ + stmt = connection.createStatement(); + stmt.executeUpdate("LOCK locktest"); + + pstmt = connection.prepareStatement("SELECT * FROM locktest"); + rs = pstmt.executeQuery(); + rs.next(); + logwriter.println(rs.getInt(1)); + rs.close(); + connection.commit(); + } + } finally { + if (connection != null) { + connection.close(); + } + + } + } + + public String getTestName() { + return "lock"; + } +} diff --git a/src/test/regression/tests/005.jdbc/PgpoolTest.java b/src/test/regression/tests/005.jdbc/PgpoolTest.java new file mode 100644 index 000000000..d07f05a37 --- /dev/null +++ b/src/test/regression/tests/005.jdbc/PgpoolTest.java @@ -0,0 +1,75 @@ +import java.util.*; +import java.io.*; +import java.sql.*; + +public abstract class PgpoolTest { + protected String url = "jdbc:postgresql://"; + protected String user; + protected String password; + protected String dbname; + protected String host; + protected String port; + protected String options; + protected Connection connection; + protected PrintWriter logwriter; + + public PgpoolTest() + { + try { + Properties prop = new Properties(); + prop.load(new FileInputStream("pgpool.properties")); + host = prop.getProperty("pgpooltest.host"); + port = prop.getProperty("pgpooltest.port"); + user = prop.getProperty("pgpooltest.user"); + password = prop.getProperty("pgpooltest.password"); + dbname = prop.getProperty("pgpooltest.dbname"); + options = prop.getProperty("pgpooltest.options"); + + url = url + host + ":" + port + "/" + dbname; + + if (!options.equals("")) + url = url + "?" + options; + + File dir = new File("result"); + dir.mkdir(); + + logwriter = new PrintWriter(new FileWriter("result/" + getTestName()), true); + try { + Class.forName("org.postgresql.Driver"); + connection = DriverManager.getConnection(url, user, password); + } catch (ClassNotFoundException e) { + System.out.println("cannot load JDBC Driver"); + System.exit(1); + } catch (Exception e) { + System.out.println("cannot connect to pgpool"); + System.exit(1); + } + } catch (Exception e) { + System.out.println("cannot read property file"); + System.exit(1); + } + } + + public void check() { + try { + String command_line = "diff -u expected/" + getTestName() + " result/" + + getTestName(); + Process proc; + + proc = Runtime.getRuntime().exec(command_line); + proc.waitFor(); + System.out.print(getTestName() + ": "); + if (proc.exitValue() == 0) + System.out.println("ok"); + else if (proc.exitValue() == 0) + System.out.println("FAIL"); + else + System.out.println("unknown error" + proc.exitValue()); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public abstract void do_test() throws SQLException, IOException; + public abstract String getTestName(); +} diff --git a/src/test/regression/tests/005.jdbc/README.euc_jp b/src/test/regression/tests/005.jdbc/README.euc_jp new file mode 100644 index 000000000..102a4304b --- /dev/null +++ b/src/test/regression/tests/005.jdbc/README.euc_jp @@ -0,0 +1,73 @@ +$Header$ + +1. JDBC ドライバテストスイート +JDBC ドライバテストスイートでは、JDBC ドライバを使って pgpool へ接続し、 +クエリを実行します。 + +1.1 準備 +あらかじめ CLASSPATH に JDBC ドライバの jar ファイルを通しておいてくだ +さい。例を示します。 + +export CLASSPATH=.:/home/t-ishii/lib/postgresql-8.3-604.jdbc4.jar + +接続先等のテスト環境の設定は pgpool.properties で定義します。 + + pgpooltest.host=localhost + pgpool が動作しているホスト名を指定します。 + + pgpooltest.port=9999 + pgpool が LISTEN しているポート番号を指定します。 + + pgpooltest.user=pgpool + 接続ユーザを指定します。 + + pgpooltest.password= + 接続パスワードを指定します。 + + pgpooltest.dbname=pgpooltest + 接続データベース名を指定します。 + + pgpooltest.options= + JDBCドライバのオプションを指定します。 + + pgpooltest.tests=autocommit batch column lock select update insert + テストケースを指定します。 + +1.2 実行方法 +run.sh スクリプトを実行してください。.java をコンパイルし、テストを開 +始します。 + + autocommit: ok + +と出力されれば、指定したテストケースが正しく完了しています。失敗した場 +合には、diff コマンドで差分を確認してください。 + + % diff -u {expected,result}/autocommit + + +2. テストケースを追加する方法 +主に開発者向けの情報です。テストケースを追加する方法を説明します。 +テストは 1 クラス 1 テスト構成になっています。テストを作る場合には、 +PgpoolTest クラスを継承します。以下の 2 つのメソッドを実装してください。 + +* do_test() +テストケースを記述します。 + +* getTestName() +テストケース名を指定します。pgpool.properties に指定するテスト名です。 + +テストケースクラスを追加したら、テストをできるように RunTest.java の +testFactory() に追加します。 + + public PgpoolTest testFactory(String testcase) + { + if (testcase == null) + return null; + + if (testcase.equals("autocommit")) + return new AutoCommitTest(); + .... + } + +最後に、期待される結果を expected/ 以下に用意し、pgpool.properties に +登録すれば完了です。 diff --git a/src/test/regression/tests/005.jdbc/RunTest.java b/src/test/regression/tests/005.jdbc/RunTest.java new file mode 100644 index 000000000..4b63a7553 --- /dev/null +++ b/src/test/regression/tests/005.jdbc/RunTest.java @@ -0,0 +1,83 @@ +import java.sql.*; +import java.util.*; +import java.io.*; + +public class RunTest { + public static void main(String[] args) + { + RunTest test = new RunTest(); + test.run(); + } + + public void run() + { + try { + PgpoolTest test; + Properties prop = new Properties(); + prop.load(new FileInputStream("pgpool.properties")); + String tests = prop.getProperty("pgpooltest.tests"); + String host = prop.getProperty("pgpooltest.host"); + String port = prop.getProperty("pgpooltest.port"); + String user = prop.getProperty("pgpooltest.user"); + String password = prop.getProperty("pgpooltest.password"); + String dbname = prop.getProperty("pgpooltest.dbname"); + + // setup database + String command_line = "psql -f prepare.sql"; + command_line = command_line + " -h " + host + " -p " + port + + " -U " + user + " " + dbname; + Process proc = Runtime.getRuntime().exec(command_line); + proc.waitFor(); + + StringTokenizer tokenizer = new StringTokenizer(tests, " "); + + while(tokenizer.hasMoreTokens()) { + test = testFactory(tokenizer.nextToken()); + if (test == null) { + System.out.println("unknown testcase"); + System.exit(1); + } + test.do_test(); + test.check(); + } + } catch (IOException e) { + System.out.println("cannot read property file"); + System.exit(1); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public PgpoolTest testFactory(String testcase) + { + if (testcase == null) + return null; + + if (testcase.equals("autocommit")) + return new AutoCommitTest(); + + if (testcase.equals("batch")) + return new BatchTest(); + + if (testcase.equals("column")) + return new ColumnTest(); + + if (testcase.equals("lock")) + return new LockTest(); + + if (testcase.equals("select")) + return new SelectTest(); + + if (testcase.equals("update")) + return new UpdateTest(); + + if (testcase.equals("insert")) + return new InsertTest(); + + if (testcase.equals("CreateTempTable")) + return new CreateTempTableTest(); + + /* unknown test case */ + return null; + } +} diff --git a/src/test/regression/tests/005.jdbc/SelectTest.java b/src/test/regression/tests/005.jdbc/SelectTest.java new file mode 100644 index 000000000..86dcb8a2d --- /dev/null +++ b/src/test/regression/tests/005.jdbc/SelectTest.java @@ -0,0 +1,37 @@ +import java.sql.*; +import java.io.*; + +public class SelectTest extends PgpoolTest { + public void do_test() throws SQLException { + try { + for (int i = 0; i < 1; i++) { + connection.setAutoCommit(false); + Statement stmt = null; + PreparedStatement pstmt = null; + ResultSet rs = null; + + pstmt = connection.prepareStatement("SELECT count(*) FROM sel"); + rs = pstmt.executeQuery(); + rs.next(); + logwriter.println(rs.getInt(1)); + rs.close(); + pstmt.close(); + + pstmt = connection.prepareStatement("SELECT sum(a) FROM sel"); + rs = pstmt.executeQuery(); + rs.next(); + logwriter.println(rs.getInt(1)); + rs.close(); + pstmt.close(); + connection.commit(); + } + } finally { + connection.close(); + logwriter.close(); + } + } + + public String getTestName() { + return "select"; + } +} diff --git a/src/test/regression/tests/005.jdbc/UpdateTest.java b/src/test/regression/tests/005.jdbc/UpdateTest.java new file mode 100644 index 000000000..7284c2af5 --- /dev/null +++ b/src/test/regression/tests/005.jdbc/UpdateTest.java @@ -0,0 +1,32 @@ +import java.sql.*; + +public class UpdateTest extends PgpoolTest { + public void do_test() throws SQLException { + int N = 100; + + try { + ResultSet rs; + Statement stmt = null; + + for (int i = 0; i < N; i++) { + connection.setAutoCommit(false); + stmt = connection.createStatement(); + stmt.executeUpdate("UPDATE up SET a = a + 1" ); + stmt.close(); + connection.commit(); + } + connection.setAutoCommit(true); + stmt = connection.createStatement(); + rs = stmt.executeQuery("SELECT max(a) FROM up" ); + rs.next(); + logwriter.println(rs.getInt(1)); + } + finally { + connection.close(); + } + } + + public String getTestName() { + return "update"; + } +} diff --git a/src/test/regression/tests/005.jdbc/expected.txt b/src/test/regression/tests/005.jdbc/expected.txt new file mode 100644 index 000000000..bfd6daadc --- /dev/null +++ b/src/test/regression/tests/005.jdbc/expected.txt @@ -0,0 +1,7 @@ +autocommit: ok +batch: ok +column: ok +lock: ok +select: ok +update: ok +insert: ok diff --git a/src/test/regression/tests/005.jdbc/expected/CreateTempTable b/src/test/regression/tests/005.jdbc/expected/CreateTempTable new file mode 100644 index 000000000..08839f6bb --- /dev/null +++ b/src/test/regression/tests/005.jdbc/expected/CreateTempTable @@ -0,0 +1 @@ +200 diff --git a/src/test/regression/tests/005.jdbc/expected/autocommit b/src/test/regression/tests/005.jdbc/expected/autocommit new file mode 100644 index 000000000..918e94db8 --- /dev/null +++ b/src/test/regression/tests/005.jdbc/expected/autocommit @@ -0,0 +1,10 @@ +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 diff --git a/src/test/regression/tests/005.jdbc/expected/batch b/src/test/regression/tests/005.jdbc/expected/batch new file mode 100644 index 000000000..b4de39476 --- /dev/null +++ b/src/test/regression/tests/005.jdbc/expected/batch @@ -0,0 +1 @@ +11 diff --git a/src/test/regression/tests/005.jdbc/expected/column b/src/test/regression/tests/005.jdbc/expected/column new file mode 100644 index 000000000..f6d8fb48f --- /dev/null +++ b/src/test/regression/tests/005.jdbc/expected/column @@ -0,0 +1,100 @@ +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 diff --git a/src/test/regression/tests/005.jdbc/expected/insert b/src/test/regression/tests/005.jdbc/expected/insert new file mode 100644 index 000000000..29d6383b5 --- /dev/null +++ b/src/test/regression/tests/005.jdbc/expected/insert @@ -0,0 +1 @@ +100 diff --git a/src/test/regression/tests/005.jdbc/expected/lock b/src/test/regression/tests/005.jdbc/expected/lock new file mode 100644 index 000000000..f6d8fb48f --- /dev/null +++ b/src/test/regression/tests/005.jdbc/expected/lock @@ -0,0 +1,100 @@ +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 diff --git a/src/test/regression/tests/005.jdbc/expected/select b/src/test/regression/tests/005.jdbc/expected/select new file mode 100644 index 000000000..7fe69129e --- /dev/null +++ b/src/test/regression/tests/005.jdbc/expected/select @@ -0,0 +1,2 @@ +100 +5050 diff --git a/src/test/regression/tests/005.jdbc/expected/update b/src/test/regression/tests/005.jdbc/expected/update new file mode 100644 index 000000000..257e56326 --- /dev/null +++ b/src/test/regression/tests/005.jdbc/expected/update @@ -0,0 +1 @@ +102 diff --git a/src/test/regression/tests/005.jdbc/prepare.sql b/src/test/regression/tests/005.jdbc/prepare.sql new file mode 100644 index 000000000..c5a474be7 --- /dev/null +++ b/src/test/regression/tests/005.jdbc/prepare.sql @@ -0,0 +1,54 @@ +-- autocommit +DROP TABLE autocommit; +CREATE TABLE autocommit (a int); +INSERT INTO autocommit SELECT generate_series(1, 10); + +-- batch +DROP TABLE batch; +CREATE TABLE batch (a int); + +-- column +DROP TABLE columntest; +CREATE TABLE columntest +( + v1 int4, + v2 int4, + v3 int4, + v4 int4, + v5 int4, + v6 int4, + v7 int4, + v8 int4, + v9 int4, + v10 int4, + v11 int4, + v12 int4, + v13 int4, + v14 int4, + v15 int4) +WITHOUT OIDS; +INSERT INTO columntest VALUES (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); + +-- lock +DROP TABLE locktest; +CREATE TABLE locktest (a int); +INSERT INTO locktest VALUES (1); +INSERT INTO locktest VALUES (2); +INSERT INTO locktest VALUES (3); +INSERT INTO locktest VALUES (4); +INSERT INTO locktest VALUES (5); + +-- select +DROP TABLE sel; +CREATE TABLE sel (a int); +INSERT INTO sel SELECT generate_series(1, 100); + +-- update +DROP TABLE up; +CREATE TABLE up (a int); +INSERT INTO up VALUES (1); +INSERT INTO up VALUES (2); + +-- insert +DROP TABLE ins; +CREATE TABLE ins (a int); diff --git a/src/test/regression/tests/005.jdbc/run.sh b/src/test/regression/tests/005.jdbc/run.sh new file mode 100644 index 000000000..319f246b3 --- /dev/null +++ b/src/test/regression/tests/005.jdbc/run.sh @@ -0,0 +1,6 @@ +#! /bin/sh + +rm -f *.class +rm -f result/* +javac *.java +java RunTest diff --git a/src/test/regression/tests/005.jdbc/test.sh b/src/test/regression/tests/005.jdbc/test.sh new file mode 100755 index 000000000..74a61ba29 --- /dev/null +++ b/src/test/regression/tests/005.jdbc/test.sh @@ -0,0 +1,54 @@ +#! /bin/sh -x +#------------------------------------------------------------------- +# test script for jdbc test +# +source $TESTLIBS +TESTDIR=testdir +PSQL=$PGBIN/psql +export CLASSPATH=.:$JDBC_DRIVER + +for mode in s r n +do + rm -fr $TESTDIR + mkdir $TESTDIR + cd $TESTDIR + +# create test environment + echo -n "creating test environment..." + sh $PGPOOL_SETUP -m $mode -n 2 || exit 1 + echo "done." + + source ./bashrc.ports + +# create Java property file + cat > pgpool.properties <<EOF +pgpooltest.host=localhost +pgpooltest.port=$PGPOOL_PORT +pgpooltest.user=$USER +pgpooltest.password= +pgpooltest.dbname=test +pgpooltest.options= +pgpooltest.tests=autocommit batch column lock select update insert +EOF + cp ../*.java . + cp ../*.sql . + cp ../run.sh . + cp -r ../expected . + cp ../expected.txt . + + ./startall + + export PGPORT=$PGPOOL_PORT + + wait_for_pgpool_startup + + sh run.sh > result.txt 2>&1 + cmp result.txt expected.txt || (./shutdown all;exit 1) + + ./shutdownall + + cd .. + +done + +exit 0 [parent: 3c5776a506a1]