You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by km...@apache.org on 2007/04/21 02:01:58 UTC
svn commit: r530951 - in
/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests:
master/ master/jdk16/ suites/ tests/lang/
Author: kmarsden
Date: Fri Apr 20 17:01:57 2007
New Revision: 530951
URL: http://svn.apache.org/viewvc?view=rev&rev=530951
Log:
DERBY-2518 convert lang/releaseCompileLocks.sql to JUnit
contributed by Ramandeep Kaur (ramandhindsa@gmail.com)
I modified the original patch to remove the old test and masters.
Added:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ReleaseCompileLocksTest.java (with props)
Removed:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/jdk16/releaseCompileLocks.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/releaseCompileLocks.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/releaseCompileLocks.sql
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/releaseCompileLocks_app.properties
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/releaseCompileLocks_sed.properties
Modified:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall?view=diff&rev=530951&r1=530950&r2=530951
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall Fri Apr 20 17:01:57 2007
@@ -54,7 +54,6 @@
lang/refActions.sql
lang/refActions2.sql
lang/refActions3.sql
-lang/releaseCompileLocks.sql
lang/renameIndex.sql
lang/renameTable.sql
lang/reopenScan.sql
Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ReleaseCompileLocksTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ReleaseCompileLocksTest.java?view=auto&rev=530951
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ReleaseCompileLocksTest.java (added)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ReleaseCompileLocksTest.java Fri Apr 20 17:01:57 2007
@@ -0,0 +1,243 @@
+/*
+Derby - Class org.apache.derbyTesting.functionTests.tests.lang.ReleaseCompileLocksTest
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+*/
+
+package org.apache.derbyTesting.functionTests.tests.lang;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import org.apache.derbyTesting.junit.BaseJDBCTestCase;
+import org.apache.derbyTesting.junit.CleanDatabaseTestSetup;
+import org.apache.derbyTesting.junit.JDBC;
+import org.apache.derbyTesting.junit.TestConfiguration;
+
+import junit.framework.Assert;
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+
+/**
+ * Tests for forupdate.
+ *
+ */
+public class ReleaseCompileLocksTest extends BaseJDBCTestCase {
+
+ public Statement stmt = null;
+ Connection conn = null;
+
+
+ /* Public constructor required for running test as standalone JUnit. */
+ public ReleaseCompileLocksTest(String name) {
+ super(name);
+ }
+
+
+ /* Set up fixture */
+ protected void setUp() throws SQLException {
+ stmt = createStatement();
+ conn = getConnection();
+ conn.setAutoCommit(false);
+
+ stmt.execute("create function dmlstatic() returns INT parameter style java language java external name " + "'org.apache.derbyTesting.functionTests.tests.lang." +
+ this.getANumber() +
+ "' no sql");
+
+ stmt.execute("create function insertstatic() returns INT parameter style java language java external name " + "'org.apache.derbyTesting.functionTests.tests.lang." +
+ this.getANumber() +
+ "' no sql");
+ }
+
+
+ /* Tear down the fixture */
+ protected void tearDown() throws Exception {
+ stmt.close();
+ super.tearDown();
+ }
+
+ /**
+ * Create a suite of tests.
+ **/
+ public static Test suite() {
+ TestSuite suite = new TestSuite("ForUpdateTest");
+ suite.addTest(baseSuite("ReleaseCompileLocksTest:embedded"));
+ suite.addTest(TestConfiguration.clientServerDecorator(baseSuite("ReleaseCompileLocksTest:client")));
+ return suite;
+ }
+
+ protected static Test baseSuite(String name) {
+ TestSuite suite = new TestSuite(name);
+ suite.addTestSuite(ReleaseCompileLocksTest.class);
+
+ return new CleanDatabaseTestSetup(suite)
+ {
+ protected void decorateSQL(Statement s) throws SQLException
+ {
+ s.execute("create table t1 (s int)");
+ }
+ };
+ }
+
+ /*Fixtures*/
+ public void testReleaseCompileLocks() throws Exception {
+ conn.commit();
+
+ try {
+ stmt.executeQuery("select (dmlstatic()) from sys.systables where tablename = 'SYSCONGLOMERATES'");
+ } catch (SQLException sqle) {
+ assertSQLState("42X51", sqle);
+ }
+
+
+ JDBC.assertEmpty(stmt.executeQuery("select TYPE, MODE, TABLENAME, LOCKNAME, STATE from syscs_diag.lock_table order by 1"));
+ conn.commit();
+
+ stmt.execute("drop table t1");
+ stmt.execute("create table t1 (s int)");
+ conn.commit();
+
+
+ try {
+ stmt.executeQuery("select (insertstatic()) from sys.systables where tablename = 'SYSCONGLOMERATES'");
+ } catch (SQLException sqle) {
+ assertSQLState("42X51", sqle);
+ }
+
+
+ JDBC.assertEmpty(stmt.executeQuery("select TYPE, MODE, TABLENAME, LOCKNAME, STATE from syscs_diag.lock_table order by 1"));
+
+ JDBC.assertEmpty(stmt.executeQuery("select * from t1"));
+ stmt.execute("drop table t1");
+ conn.commit();
+
+ JDBC.assertEmpty(stmt.executeQuery("select TYPE, MODE, TABLENAME, LOCKNAME, STATE from syscs_diag.lock_table order by 1"));
+ conn.commit();
+
+ stmt.execute("create table test_tab (x int)");
+ stmt.executeUpdate("insert into test_tab values (1)");
+ conn.commit();
+
+ JDBC.assertSingleValueResultSet(stmt.executeQuery("select count(*) from syscs_diag.lock_table"), "0");
+ JDBC.assertSingleValueResultSet(stmt.executeQuery("select count(*) from sys.sysviews"), "0");
+ JDBC.assertSingleValueResultSet(stmt.executeQuery("select count(*) from syscs_diag.lock_table"), "0");
+ stmt.execute("insert into test_tab values (2)");
+
+ ResultSet rs = stmt.executeQuery("select TYPE, MODE, TABLENAME, LOCKNAME, STATE from syscs_diag.lock_table order by 1");
+
+ String expectedValues[][] = {{"ROW", "X", "TEST_TAB", "(1,8)", "GRANT" }, {"TABLE", "IX", "TEST_TAB", "Tablelock","GRANT"}};
+ JDBC.assertFullResultSet(rs, expectedValues);
+
+ try {
+ stmt.execute("drop table t1");
+ } catch (SQLException e) {
+ assertSQLState("42Y55", e);
+ }
+ stmt.execute("create table t1 (x int)");
+ conn.commit();
+
+ JDBC.assertEmpty(stmt.executeQuery("select * from t1"));
+
+ Connection conn1 = openDefaultConnection();
+ Statement stmt2 = conn1.createStatement();
+ stmt2.execute("create table t2 (x int)");
+ stmt2.execute("drop table t2");
+ stmt2.close();
+ conn1.close();
+
+ stmt.execute("drop table test_tab");
+ stmt.execute("create table test_tab (x int)");
+ stmt.execute("insert into test_tab values (1)");
+ conn.commit();
+
+ PreparedStatement ps = prepareStatement("update test_tab set x=2 where x=?");
+ ps.setCursorName("cursor1");
+ ps.setInt(1, 1);
+
+ JDBC.assertSingleValueResultSet(stmt.executeQuery("select count(*) from syscs_diag.lock_table"), "0");
+ ps.executeUpdate();
+
+ rs = stmt.executeQuery("select TYPE, MODE, TABLENAME, LOCKNAME, STATE from syscs_diag.lock_table order by 1");
+ String expectedValues1[][] = {{"ROW", "X", "TEST_TAB", "(1,7)", "GRANT" }, {"TABLE", "IX", "TEST_TAB", "Tablelock","GRANT"}};
+ JDBC.assertFullResultSet(rs, expectedValues1);
+ conn.commit();
+
+
+ stmt.execute("create table t (c1 int not null primary key, c2 int references t)");
+ stmt.executeUpdate("insert into t values (1,1)");
+ stmt.executeUpdate("insert into t values (2,1)");
+ conn.commit();
+
+ ps = prepareStatement("select * from t where c1 = ? and c2 = ?");
+ ps.setCursorName("ps");
+ JDBC.assertEmpty(stmt.executeQuery("select * from syscs_diag.lock_table"));
+
+
+ stmt.execute("create table x(c1 int)");
+ stmt.execute("drop table x");
+ conn.commit();
+
+ ps = prepareStatement("insert into t values (3,2)");
+ ps.setCursorName("pi");
+ JDBC.assertEmpty(stmt.executeQuery("select * from syscs_diag.lock_table"));
+ conn.commit();
+
+
+ stmt.execute("create table x(c1 int)");
+ stmt.execute("drop table x");
+ conn.commit();
+
+ ps = prepareStatement("update t set c2 = c1, c1 = c2");
+ ps.setCursorName("p1");
+ JDBC.assertEmpty(stmt.executeQuery("select * from syscs_diag.lock_table"));
+ conn.commit();
+
+
+ stmt.execute("create table x(c1 int)");
+ stmt.execute("drop table x");
+ conn.commit();
+
+ ps = prepareStatement("delete from t");
+ ps.setCursorName("p1");
+ JDBC.assertEmpty(stmt.executeQuery("select * from syscs_diag.lock_table"));
+ conn.commit();
+
+ stmt.execute("create trigger update_of_t after update on t for each row values 2");
+ stmt.execute("create trigger insert_of_t after insert on t for each row values 3");
+ conn.commit();
+
+ ps = prepareStatement("update t set c2=2 where c1=2");
+ ps.setCursorName("pu");
+ JDBC.assertEmpty(stmt.executeQuery("select * from syscs_diag.lock_table"));
+ conn.commit();
+
+ rs.close();
+ ps.close();
+ stmt.close();
+ }
+
+
+ private static int getANumber()
+ {
+ return 1;
+ }
+
+}
Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ReleaseCompileLocksTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java?view=diff&rev=530951&r1=530950&r2=530951
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java Fri Apr 20 17:01:57 2007
@@ -99,7 +99,7 @@
suite.addTest(CollationTest.suite());
suite.addTest(ScrollCursors1Test.suite());
suite.addTest(SimpleTest.suite());
-
+ suite.addTest(ReleaseCompileLocksTest.suite());
suite.addTest(ErrorCodeTest.suite());
// Add the XML tests, which exist as a separate suite