From b6385efb7907e1aefe65a699bb1fcc115d98ee23 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Fri, 7 Sep 2001 22:17:48 +0000 Subject: [PATCH] Attached is a patch that fixes 2 test cases of the JDBC test suite. This reduces the number of failures from 9 to 7. Both ConnectionTest and JBuilderTest did not create their own tables, which caused these test cases to fail with "relation ... does not exist". It appears these test cases relied on tables created by the example code elsewhere in the source tree. I've added the necessary "create table" and "drop table" statements to the test cases, using the column definitions from the example code. While working on that I modified the helper method createTable in JDBC2Tests.java to take a table parameter, rather than using table names passed via the properties in build.xml. I'm not sure what that was good for, and in fact, except for the default table name "jdbctest", this functionality wasn't used at all. Ren? Pijlman --- .../jdbc/org/postgresql/test/JDBC2Tests.java | 75 ++++++++----------- .../postgresql/test/jdbc2/ConnectionTest.java | 28 ++++++- .../postgresql/test/jdbc2/JBuilderTest.java | 22 +++++- 3 files changed, 79 insertions(+), 46 deletions(-) diff --git a/src/interfaces/jdbc/org/postgresql/test/JDBC2Tests.java b/src/interfaces/jdbc/org/postgresql/test/JDBC2Tests.java index feeb0be5e9..37565cfcc3 100644 --- a/src/interfaces/jdbc/org/postgresql/test/JDBC2Tests.java +++ b/src/interfaces/jdbc/org/postgresql/test/JDBC2Tests.java @@ -59,49 +59,38 @@ public class JDBC2Tests extends TestSuite { } } - /** - * Helper - creates a test table for use by a test - */ - public static void createTable(Connection conn,String columns) { - try { - Statement st = conn.createStatement(); - - // Ignore the drop - try { - st.executeUpdate("drop table "+getTableName()); - } catch(SQLException se) { - } - - // Now create the table - st.executeUpdate("create table "+getTableName()+" ("+columns+")"); - - st.close(); - } catch(SQLException ex) { - TestCase.assert(ex.getMessage(),false); - } - } - - /** - * Variant used when more than one table is required - */ - public static void createTable(Connection conn,String id,String columns) { - try { - Statement st = conn.createStatement(); - - // Ignore the drop - try { - st.executeUpdate("drop table "+getTableName(id)); - } catch(SQLException se) { - } - - // Now create the table - st.executeUpdate("create table "+getTableName(id)+" ("+columns+")"); - - st.close(); - } catch(SQLException ex) { - TestCase.assert(ex.getMessage(),false); - } - } + /** + * Helper - creates a test table for use by a test + */ + public static void createTable( + Connection conn, String table, String columns) { + try { + Statement st = conn.createStatement(); + try { + try { + st.executeUpdate("drop table " + table); + } catch(SQLException se) { + // Intentionally ignore exception + } + + // Now create the table + st.executeUpdate( "create table " + table + " (" + columns + + ")" ); + } finally { + st.close(); + } + } catch(SQLException ex) { + TestCase.assert(ex.getMessage(),false); + } + } + + // Create the test table whose name is passed via the properties + // (see ../../../build.xml). It appears that the original author of + // this test suite intended to specify all test table names via the + // properties, but this was never fully implemented. + public static void createTable(Connection conn, String columns) { + createTable(conn, getTableName(), columns); + } /** * Helper - generates INSERT SQL - very simple diff --git a/src/interfaces/jdbc/org/postgresql/test/jdbc2/ConnectionTest.java b/src/interfaces/jdbc/org/postgresql/test/jdbc2/ConnectionTest.java index 58c5c7258f..b9c2444c79 100644 --- a/src/interfaces/jdbc/org/postgresql/test/jdbc2/ConnectionTest.java +++ b/src/interfaces/jdbc/org/postgresql/test/jdbc2/ConnectionTest.java @@ -10,7 +10,7 @@ import java.sql.*; * * PS: Do you know how difficult it is to type on a train? ;-) * - * $Id: ConnectionTest.java,v 1.2 2001/02/13 16:39:05 peter Exp $ + * $Id: ConnectionTest.java,v 1.3 2001/09/07 22:17:48 momjian Exp $ */ public class ConnectionTest extends TestCase { @@ -22,6 +22,30 @@ public class ConnectionTest extends TestCase { super(name); } + // Set up the fixture for this testcase: the tables for this test. + protected void setUp() throws Exception { + Connection con = JDBC2Tests.openDB(); + + JDBC2Tests.createTable( con, "test_a", + "imagename name,image oid,id int4" ); + + JDBC2Tests.createTable( con, "test_c", + "source text,cost money,imageid int4" ); + + JDBC2Tests.closeDB(con); + } + + // Tear down the fixture for this test case. + protected void tearDown() throws Exception { + Connection con = JDBC2Tests.openDB(); + Statement stmt = con.createStatement(); + + stmt.executeUpdate("DROP TABLE test_a"); + stmt.executeUpdate("DROP TABLE test_c"); + stmt.close(); + JDBC2Tests.closeDB(con); + } + /** * Tests the two forms of createStatement() */ @@ -234,4 +258,4 @@ public class ConnectionTest extends TestCase { assert(ex.getMessage(),false); } } -} \ No newline at end of file +} diff --git a/src/interfaces/jdbc/org/postgresql/test/jdbc2/JBuilderTest.java b/src/interfaces/jdbc/org/postgresql/test/jdbc2/JBuilderTest.java index 986f61df38..c114eb0c51 100644 --- a/src/interfaces/jdbc/org/postgresql/test/jdbc2/JBuilderTest.java +++ b/src/interfaces/jdbc/org/postgresql/test/jdbc2/JBuilderTest.java @@ -6,7 +6,7 @@ import java.sql.*; import java.math.BigDecimal; /** - * $Id: JBuilderTest.java,v 1.1 2001/02/13 16:39:05 peter Exp $ + * $Id: JBuilderTest.java,v 1.2 2001/09/07 22:17:48 momjian Exp $ * * Some simple tests to check that the required components needed for JBuilder * stay working @@ -18,6 +18,26 @@ public class JBuilderTest extends TestCase { super(name); } + // Set up the fixture for this testcase: the tables for this test. + protected void setUp() throws Exception { + Connection con = JDBC2Tests.openDB(); + + JDBC2Tests.createTable( con, "test_c", + "source text,cost money,imageid int4" ); + + JDBC2Tests.closeDB(con); + } + + // Tear down the fixture for this test case. + protected void tearDown() throws Exception { + Connection con = JDBC2Tests.openDB(); + Statement stmt = con.createStatement(); + + stmt.executeUpdate("DROP TABLE test_c"); + stmt.close(); + JDBC2Tests.closeDB(con); + } + /** * This tests that Money types work. JDBCExplorer barfs if this fails. */ -- 2.40.0