in the jdbcapi.runall file for it to run in both Embedded and Network Server mode.
~ Shreyas
Shreyas Kaushik wrote:
Hi Mamta,
Thanks for all the info. This definitely gave more insight into this test framework.
I recently submitted a patch for Derby-174 and Derby-175 for which I have just submitted a
patch for for jdbcapi.runall file. After that gets in I will definitely add this one as well
and submit all of it in a fresh patch. I am waiting for that to go in as there could be conflicts
in the jdbcapi.runall file.
~ Shreyas
Mamta Satoor wrote:
On Tue, 29 Mar 2005 22:45:24 +0530, Shreyas Kaushik
<[EMAIL PROTECTED]> wrote:
Hi Mamta,
Thanks for all the info. From this I see that adding it in jdbcapi will run in both embedded and netwrok server mode. Should I add some properties file specifically for my test? I'm sorry I ask this again, I'm not clear what changes I have to do to my patch ?
~ Shreyas
Hi Shreyas,
You will see that each of the directories under functionTests/tests have their own default properties file. If a newly added test does not have a test specific properties file, then the default properties file gets picked up. For eg, test declareGlobalTempTableJavaJDBC30.java has its own properties file because we do not want the test to be run with some jdks and we speify that declareGlobalTempTableJavaJDBC30_app.properties. Since the test you are adding has no special requirements, you donot need a properties file for it and harness will automatically use the default properties file for your test.
Feel free to ask more questions if you have any. Since I have been working on this test harness for so long, I might not be visualizing some questions that a new developer might have.
thanks,
Mamta
Index:
java/engine/org/apache/derby/impl/sql/execute/ScrollInsensitiveResultSet.java
===================================================================
---
java/engine/org/apache/derby/impl/sql/execute/ScrollInsensitiveResultSet.java
(revision 159474)
+++
java/engine/org/apache/derby/impl/sql/execute/ScrollInsensitiveResultSet.java
(working copy)
@@ -750,6 +750,7 @@
else
{
afterLast = true;
+ currentPosition = positionInSource + 1;
}
}
Index:
java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/testRelative.java
===================================================================
---
java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/testRelative.java
(revision 0)
+++
java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/testRelative.java
(revision 0)
@@ -0,0 +1,98 @@
+package org.apache.derbyTesting.functionTests.tests.jdbcapi;
+
+
+import java.sql.*;
+
+import org.apache.derby.tools.ij;
+import org.apache.derby.tools.JDBCDisplayUtil;
+
+public class testRelative {
+ public static void main(String[] args) {
+ test1(args);
+ }
+
+ public static void test1(String []args) {
+ Connection con;
+ ResultSet rs;
+ PreparedStatement stmt = null;
+ PreparedStatement pStmt = null;
+ Statement stmt1 = null;
+ String returnValue = null;
+
+ System.out.println("Test testRelative starting");
+
+ try
+ {
+ // use the ij utility to read the property file and
+ // make the initial connection.
+ ij.getPropertyArg(args);
+ con = ij.startJBMS();
+
+ con.setAutoCommit(false);
+
+ stmt = con.prepareStatement("create table
testRelative(name varchar(10), i int)");
+ stmt.executeUpdate();
+ con.commit();
+
+ pStmt = con.prepareStatement("insert into testRelative
values (?,?)");
+
+ pStmt.setString(1,"work1");
+ pStmt.setNull(2,1);
+ pStmt.addBatch();
+
+ pStmt.setString(1,"work2");
+ pStmt.setNull(2,2);
+ pStmt.addBatch();
+
+ pStmt.setString(1,"work3");
+ pStmt.setNull(2,3);
+ pStmt.addBatch();
+
+ pStmt.setString(1,"work4");
+ pStmt.setNull(2,4);
+ pStmt.addBatch();
+
+
+ pStmt.executeBatch();
+ con.commit();
+
+ stmt1 =
con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
+ rs = stmt1.executeQuery("select * from testRelative");
+
+ rs.next(); // First Record
+ returnValue = rs.getString("name");
+ System.out.println("Value="+returnValue);
+
+ rs.relative(2);
+ System.out.println("isFirst=" + rs.isFirst() + "
isLast=" + rs.isLast() + " isAfterLast=" + rs.isAfterLast());
+ returnValue = rs.getString("name");
+ System.out.println("Value="+returnValue);
+
+ rs.relative(-2);
+ returnValue = rs.getString("name");
+ System.out.println("Value="+returnValue);
+
+ rs.relative(10);
+ System.out.println("isFirst=" + rs.isFirst() + "
isLast=" + rs.isLast() + " isAfterLast=" + rs.isAfterLast());
+
+ returnValue = rs.getString("name");
+ System.out.println("Value="+returnValue);
+
+ } catch(SQLException sqle) {
+ dumpSQLExceptions(sqle);
+ sqle.printStackTrace();
+ } catch(Throwable e) {
+ System.out.println("FAIL -- unexpected exception: "+e);
+ e.printStackTrace();
+
+ }
+ }
+
+ static private void dumpSQLExceptions (SQLException se) {
+ System.out.println("FAIL -- unexpected exception");
+ while (se != null) {
+ System.out.println("SQLSTATE("+se.getSQLState()+"):
"+se);
+ se = se.getNextException();
+ }
+ }
+}
\ No newline at end of file
Index:
java/testing/org/apache/derbyTesting/functionTests/master/testRelative.out
===================================================================
--- java/testing/org/apache/derbyTesting/functionTests/master/testRelative.out
(revision 0)
+++ java/testing/org/apache/derbyTesting/functionTests/master/testRelative.out
(revision 0)
@@ -0,0 +1,9 @@
+Test testRelative starting
+Value=work1
+isFirst=false isLast=false isAfterLast=false
+Value=work3
+Value=work1
+isFirst=false isLast=false isAfterLast=true
+FAIL -- unexpected exception
+SQLSTATE(24000): SQL Exception: Invalid cursor state - no current row.
+SQL Exception: Invalid cursor state - no current row.
Index: java/testing/org/apache/derbyTesting/functionTests/suites/jdbcapi.runall
===================================================================
--- java/testing/org/apache/derbyTesting/functionTests/suites/jdbcapi.runall
(revision 159474)
+++ java/testing/org/apache/derbyTesting/functionTests/suites/jdbcapi.runall
(working copy)
@@ -14,4 +14,5 @@
jdbcapi/parameterMapping.java
jdbcapi/setTransactionIsolation.java
jdbcapi/prepStmtNull.java
+jdbcapi/testRelative.java
