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 fu...@apache.org on 2006/05/05 18:44:22 UTC
svn commit: r400106 - in
/db/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi:
copyfiles.ant resultsetStream.java resultsetStream_app.properties
Author: fuzzylogic
Date: Fri May 5 09:44:20 2006
New Revision: 400106
URL: http://svn.apache.org/viewcvs?rev=400106&view=rev
Log:
DERBY-575: merge remainder of changes from trunk missed in first patch.
Removed:
db/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/copyfiles.ant
Modified:
db/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/resultsetStream.java (contents, props changed)
db/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/resultsetStream_app.properties
Modified: db/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/resultsetStream.java
URL: http://svn.apache.org/viewcvs/db/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/resultsetStream.java?rev=400106&r1=400105&r2=400106&view=diff
==============================================================================
--- db/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/resultsetStream.java (original)
+++ db/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/resultsetStream.java Fri May 5 09:44:20 2006
@@ -1,305 +1,305 @@
-/*
-
- Derby - Class org.apache.derbyTesting.functionTests.tests.jdbcapi.resultsetStream
-
- Copyright 1999, 2005 The Apache Software Foundation or its licensors, as applicable.
-
- Licensed 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.jdbcapi;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSetMetaData;
-import java.sql.ResultSet;
-import java.sql.Statement;
-import java.sql.SQLException;
-import java.sql.Types;
-import java.sql.PreparedStatement;
-
-import org.apache.derby.tools.ij;
-import org.apache.derby.tools.JDBCDisplayUtil;
-
-import java.io.InputStream;
-import java.io.IOException;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.BufferedInputStream;
-import java.util.zip.CRC32;
-
-/**
- * Test of JDBC result set Stream calls.
- *
- * @author djd
- */
-
-
-public class resultsetStream {
-
- public static void main(String[] args) {
- Connection con;
- ResultSetMetaData met;
- ResultSet rs;
- Statement stmt;
-
- System.out.println("Test resultsetStream starting");
-
- try
- {
- // use the ij utility to read the property file and
- // make the initial connection.
- ij.getPropertyArg(args);
- con = ij.startJBMS();
-
- stmt = con.createStatement();
-
- stmt.execute("create table t2 (len int, data LONG VARCHAR FOR BIT DATA)");
- PreparedStatement ppw = con.prepareStatement(
- "insert into t2 (len, data) values (?, ?)");
- File file = new File("extin/littleclob.txt");
- int fileSize = (int) file.length();
- BufferedInputStream fileData = new BufferedInputStream(new FileInputStream(file));
- ppw.setInt(1, fileSize);
- ppw.setBinaryStream(2, fileData, fileSize);
- ppw.executeUpdate();
-
- file = new File("extin/short.txt");
- fileSize = (int) file.length();
- fileData = new BufferedInputStream(new FileInputStream(file));
- ppw.setInt(1, fileSize);
- ppw.setBinaryStream(2, fileData, fileSize);
- ppw.executeUpdate();
- // null binary value
- ppw.setInt(1, -1);
- ppw.setBinaryStream(2, (java.io.InputStream) null, 0);
- ppw.executeUpdate();
-
- // value copied over from original Java object test.
- File rssg = new java.io.File("extin/resultsetStream.gif");
- int rssgLength = (int) rssg.length();
- ppw.setInt(1, (int) rssgLength);
- ppw.setBinaryStream(2, new FileInputStream(rssg), rssgLength);
- ppw.executeUpdate();
-
- // try binary stream processing on a known file.
- rs = stmt.executeQuery("select data from t2 where len = "
- + rssgLength);
- met = rs.getMetaData();
- System.out.println("getColumnCount(): "+ met.getColumnCount());
- while (rs.next())
- {
- // JDBC columns use 1-based counting
-
- // get the first column as a stream
- try {
-
- InputStream is = rs.getBinaryStream(1);
- if (is == null) {
- System.out.println("FAIL - getBinaryStream() return null");
- break;
- }
-
- // read the first 200 bytes from the stream and checksum them
- byte[] b200 = new byte[200];
-
- // no guaratees to read all 200 bytes in one read call.
- int count = 0;
-
- while (count < 200) {
- int r = is.read(b200, count, 200-count);
- if (r == -1)
- break;
- count += r;
- }
-
- if (count != 200){
- System.out.println("FAIL - failed to read 200 bytes from known file");
- break;
- }
-
- CRC32 cs = new CRC32();
-
- cs.reset();
- cs.update(b200);
-
- System.out.println("Checksum of first 200 bytes " + cs.getValue());
-
- count = 200;
- for (; is.read() != -1; count++) {
- }
- System.out.println("Size of file = " + count);
- is.close();
- }
- catch (Throwable e) {
- System.out.println(
- "FAIL - exection while processing valid file");
- if (e instanceof SQLException)
- JDBCDisplayUtil.ShowSQLException(System.out, (SQLException)e);
- }
- }
- rs.close();
-
- // check the stream is closed once another get call is made.
- rs = stmt.executeQuery("select data, len from t2 where len = "
- + rssgLength);
- met = rs.getMetaData();
- System.out.println("getColumnCount(): "+ met.getColumnCount());
- while (rs.next())
- {
- // JDBC columns use 1-based counting
-
- // get the first column as a stream
- try {
-
- InputStream is = rs.getBinaryStream(1);
- if (is == null) {
- System.out.println("FAIL - getBinaryStream() return null");
- break;
- }
-
- // read the first 200 bytes from the stream and checksum them
- byte[] b200 = new byte[200];
-
- // no guaratees to read all 200 bytes in one read call.
- int count = 0;
-
- while (count < 200) {
- int r = is.read(b200, count, 200-count);
- if (r == -1)
- break;
- count += r;
- }
-
- if (count != 200){
- System.out.println("FAIL - failed to read 200 bytes from known file");
- break;
- }
-
- CRC32 cs = new CRC32();
-
- cs.reset();
- cs.update(b200);
-
- System.out.println("Checksum of first 200 bytes " + cs.getValue());
-
- System.out.println("second columns is " + rs.getInt(2));
-
- System.out.println("FAILS DUE TO BUG 5710");
- try {
- is.read();
- System.out.println("FAIL - stream was not closed after a get*() call. " + is.getClass());
- break;
- } catch (IOException ioe) {
- // yes, stream should be closed
- }
- }
- catch (Throwable e) {
- System.out.println(
- "FAIL - exection while processing valid file");
- if (e instanceof SQLException)
- JDBCDisplayUtil.ShowSQLException(System.out, (SQLException)e);
- }
- }
- rs.close();
-
- // check a SQL null object gets a null stream
- rs = stmt.executeQuery("select data from t2 where len = -1");
- met = rs.getMetaData();
- System.out.println("getColumnCount(): "+ met.getColumnCount());
- while (rs.next())
- {
- // JDBC columns use 1-based counting
-
- // get the first column as a stream
-
- InputStream is = rs.getBinaryStream(1);
- if (is != null) {
- System.out.println("FAIL - getBinaryStream() did not return null for SQL null");
- break;
- }
-
- }
- rs.close();
-
- rs = stmt.executeQuery("select len, data from t2 where len = "
- + fileSize);
- rs.next();
- fileSize = rs.getInt(1);
- fileData = new BufferedInputStream(rs.getBinaryStream(2));
- int readCount = 0;
- while(true)
- {
- int data = fileData.read();
- if (data == -1) break;
- readCount++;
- }
- fileData.close();
- System.out.println("len=" + fileSize);
- System.out.println("number of reads=" + readCount);
-
- // check binary input streams of invalid length.
- // JDBC 3.0 tutorial says stream contents must match length.
-
- byte[] tooFew = new byte[234];
-
- ppw.setInt(1, 234);
- ppw.setBinaryStream(2, new java.io.ByteArrayInputStream(tooFew), 234); // matching length
- ppw.executeUpdate();
-
-
- ppw.setInt(1, 235);
- ppw.setBinaryStream(2, new java.io.ByteArrayInputStream(tooFew), 235); // too few bytes in stream
- try {
- ppw.executeUpdate();
- System.out.println("FAIL - execute with setBinaryStream() with too few bytes succeeded");
- } catch (SQLException sqle) {
- org.apache.derbyTesting.functionTests.util.TestUtil.dumpSQLExceptions(sqle, true);
- }
-
- ppw.setInt(1, 233);
- ppw.setBinaryStream(2, new java.io.ByteArrayInputStream(tooFew), 233); // too many bytes
- try {
- ppw.executeUpdate();
- System.out.println("FAIL - execute with setBinaryStream() with too many bytes succeeded");
- } catch (SQLException sqle) {
- org.apache.derbyTesting.functionTests.util.TestUtil.dumpSQLExceptions(sqle, true);
- }
-
-
- ppw.close();
- rs.close();
- stmt.close();
- con.close();
-
- }
- catch (SQLException e) {
- dumpSQLExceptions(e);
- }
- catch (Throwable e) {
- System.out.println("FAIL -- unexpected exception:" + e.toString());
- e.printStackTrace();
- }
-
- System.out.println("Test resultsetStream finished");
- }
-
- static private void dumpSQLExceptions (SQLException se) {
- System.out.println("FAIL -- unexpected exception: " + se.toString());
- while (se != null) {
- System.out.print("SQLSTATE("+se.getSQLState()+"):");
- se = se.getNextException();
- }
- }
-}
+/*
+
+ Derby - Class org.apache.derbyTesting.functionTests.tests.jdbcapi.resultsetStream
+
+ Copyright 1999, 2005 The Apache Software Foundation or its licensors, as applicable.
+
+ Licensed 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.jdbcapi;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSetMetaData;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.sql.SQLException;
+import java.sql.Types;
+import java.sql.PreparedStatement;
+
+import org.apache.derby.tools.ij;
+import org.apache.derby.tools.JDBCDisplayUtil;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.BufferedInputStream;
+import java.util.zip.CRC32;
+
+/**
+ * Test of JDBC result set Stream calls.
+ *
+ * @author djd
+ */
+
+
+public class resultsetStream {
+
+ public static void main(String[] args) {
+ Connection con;
+ ResultSetMetaData met;
+ ResultSet rs;
+ Statement stmt;
+
+ System.out.println("Test resultsetStream starting");
+
+ try
+ {
+ // use the ij utility to read the property file and
+ // make the initial connection.
+ ij.getPropertyArg(args);
+ con = ij.startJBMS();
+
+ stmt = con.createStatement();
+
+ stmt.execute("create table t2 (len int, data LONG VARCHAR FOR BIT DATA)");
+ PreparedStatement ppw = con.prepareStatement(
+ "insert into t2 (len, data) values (?, ?)");
+ File file = new File("extin/littleclob.utf");
+ int fileSize = (int) file.length();
+ BufferedInputStream fileData = new BufferedInputStream(new FileInputStream(file));
+ ppw.setInt(1, fileSize);
+ ppw.setBinaryStream(2, fileData, fileSize);
+ ppw.executeUpdate();
+
+ file = new File("extin/short.utf");
+ fileSize = (int) file.length();
+ fileData = new BufferedInputStream(new FileInputStream(file));
+ ppw.setInt(1, fileSize);
+ ppw.setBinaryStream(2, fileData, fileSize);
+ ppw.executeUpdate();
+ // null binary value
+ ppw.setInt(1, -1);
+ ppw.setBinaryStream(2, (java.io.InputStream) null, 0);
+ ppw.executeUpdate();
+
+ // value copied over from original Java object test.
+ File rssg = new java.io.File("extin/resultsetStream.gif");
+ int rssgLength = (int) rssg.length();
+ ppw.setInt(1, (int) rssgLength);
+ ppw.setBinaryStream(2, new FileInputStream(rssg), rssgLength);
+ ppw.executeUpdate();
+
+ // try binary stream processing on a known file.
+ rs = stmt.executeQuery("select data from t2 where len = "
+ + rssgLength);
+ met = rs.getMetaData();
+ System.out.println("getColumnCount(): "+ met.getColumnCount());
+ while (rs.next())
+ {
+ // JDBC columns use 1-based counting
+
+ // get the first column as a stream
+ try {
+
+ InputStream is = rs.getBinaryStream(1);
+ if (is == null) {
+ System.out.println("FAIL - getBinaryStream() return null");
+ break;
+ }
+
+ // read the first 200 bytes from the stream and checksum them
+ byte[] b200 = new byte[200];
+
+ // no guaratees to read all 200 bytes in one read call.
+ int count = 0;
+
+ while (count < 200) {
+ int r = is.read(b200, count, 200-count);
+ if (r == -1)
+ break;
+ count += r;
+ }
+
+ if (count != 200){
+ System.out.println("FAIL - failed to read 200 bytes from known file");
+ break;
+ }
+
+ CRC32 cs = new CRC32();
+
+ cs.reset();
+ cs.update(b200);
+
+ System.out.println("Checksum of first 200 bytes " + cs.getValue());
+
+ count = 200;
+ for (; is.read() != -1; count++) {
+ }
+ System.out.println("Size of file = " + count);
+ is.close();
+ }
+ catch (Throwable e) {
+ System.out.println(
+ "FAIL - exection while processing valid file");
+ if (e instanceof SQLException)
+ JDBCDisplayUtil.ShowSQLException(System.out, (SQLException)e);
+ }
+ }
+ rs.close();
+
+ // check the stream is closed once another get call is made.
+ rs = stmt.executeQuery("select data, len from t2 where len = "
+ + rssgLength);
+ met = rs.getMetaData();
+ System.out.println("getColumnCount(): "+ met.getColumnCount());
+ while (rs.next())
+ {
+ // JDBC columns use 1-based counting
+
+ // get the first column as a stream
+ try {
+
+ InputStream is = rs.getBinaryStream(1);
+ if (is == null) {
+ System.out.println("FAIL - getBinaryStream() return null");
+ break;
+ }
+
+ // read the first 200 bytes from the stream and checksum them
+ byte[] b200 = new byte[200];
+
+ // no guaratees to read all 200 bytes in one read call.
+ int count = 0;
+
+ while (count < 200) {
+ int r = is.read(b200, count, 200-count);
+ if (r == -1)
+ break;
+ count += r;
+ }
+
+ if (count != 200){
+ System.out.println("FAIL - failed to read 200 bytes from known file");
+ break;
+ }
+
+ CRC32 cs = new CRC32();
+
+ cs.reset();
+ cs.update(b200);
+
+ System.out.println("Checksum of first 200 bytes " + cs.getValue());
+
+ System.out.println("second columns is " + rs.getInt(2));
+
+ System.out.println("FAILS DUE TO BUG 5710");
+ try {
+ is.read();
+ System.out.println("FAIL - stream was not closed after a get*() call. " + is.getClass());
+ break;
+ } catch (IOException ioe) {
+ // yes, stream should be closed
+ }
+ }
+ catch (Throwable e) {
+ System.out.println(
+ "FAIL - exection while processing valid file");
+ if (e instanceof SQLException)
+ JDBCDisplayUtil.ShowSQLException(System.out, (SQLException)e);
+ }
+ }
+ rs.close();
+
+ // check a SQL null object gets a null stream
+ rs = stmt.executeQuery("select data from t2 where len = -1");
+ met = rs.getMetaData();
+ System.out.println("getColumnCount(): "+ met.getColumnCount());
+ while (rs.next())
+ {
+ // JDBC columns use 1-based counting
+
+ // get the first column as a stream
+
+ InputStream is = rs.getBinaryStream(1);
+ if (is != null) {
+ System.out.println("FAIL - getBinaryStream() did not return null for SQL null");
+ break;
+ }
+
+ }
+ rs.close();
+
+ rs = stmt.executeQuery("select len, data from t2 where len = "
+ + fileSize);
+ rs.next();
+ fileSize = rs.getInt(1);
+ fileData = new BufferedInputStream(rs.getBinaryStream(2));
+ int readCount = 0;
+ while(true)
+ {
+ int data = fileData.read();
+ if (data == -1) break;
+ readCount++;
+ }
+ fileData.close();
+ System.out.println("len=" + fileSize);
+ System.out.println("number of reads=" + readCount);
+
+ // check binary input streams of invalid length.
+ // JDBC 3.0 tutorial says stream contents must match length.
+
+ byte[] tooFew = new byte[234];
+
+ ppw.setInt(1, 234);
+ ppw.setBinaryStream(2, new java.io.ByteArrayInputStream(tooFew), 234); // matching length
+ ppw.executeUpdate();
+
+
+ ppw.setInt(1, 235);
+ ppw.setBinaryStream(2, new java.io.ByteArrayInputStream(tooFew), 235); // too few bytes in stream
+ try {
+ ppw.executeUpdate();
+ System.out.println("FAIL - execute with setBinaryStream() with too few bytes succeeded");
+ } catch (SQLException sqle) {
+ org.apache.derbyTesting.functionTests.util.TestUtil.dumpSQLExceptions(sqle, true);
+ }
+
+ ppw.setInt(1, 233);
+ ppw.setBinaryStream(2, new java.io.ByteArrayInputStream(tooFew), 233); // too many bytes
+ try {
+ ppw.executeUpdate();
+ System.out.println("FAIL - execute with setBinaryStream() with too many bytes succeeded");
+ } catch (SQLException sqle) {
+ org.apache.derbyTesting.functionTests.util.TestUtil.dumpSQLExceptions(sqle, true);
+ }
+
+
+ ppw.close();
+ rs.close();
+ stmt.close();
+ con.close();
+
+ }
+ catch (SQLException e) {
+ dumpSQLExceptions(e);
+ }
+ catch (Throwable e) {
+ System.out.println("FAIL -- unexpected exception:" + e.toString());
+ e.printStackTrace();
+ }
+
+ System.out.println("Test resultsetStream finished");
+ }
+
+ static private void dumpSQLExceptions (SQLException se) {
+ System.out.println("FAIL -- unexpected exception: " + se.toString());
+ while (se != null) {
+ System.out.print("SQLSTATE("+se.getSQLState()+"):");
+ se = se.getNextException();
+ }
+ }
+}
Propchange: db/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/resultsetStream.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: db/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/resultsetStream_app.properties
URL: http://svn.apache.org/viewcvs/db/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/resultsetStream_app.properties?rev=400106&r1=400105&r2=400106&view=diff
==============================================================================
--- db/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/resultsetStream_app.properties (original)
+++ db/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/resultsetStream_app.properties Fri May 5 09:44:20 2006
@@ -1,3 +1,3 @@
-supportfiles=tests/jdbcapi/resultsetStream.gif,tests/jdbcapi/littleclob.txt,tests/jdbcapi/short.txt
-usedefaults=true
-useextdirs=true
+supportfiles=tests/jdbcapi/resultsetStream.gif,tests/jdbcapi/littleclob.utf,tests/jdbcapi/short.utf
+usedefaults=true
+useextdirs=true