Return-Path: Delivered-To: apmail-db-derby-commits-archive@www.apache.org Received: (qmail 17194 invoked from network); 31 Jul 2008 21:00:20 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 31 Jul 2008 21:00:20 -0000 Received: (qmail 97785 invoked by uid 500); 31 Jul 2008 21:00:20 -0000 Delivered-To: apmail-db-derby-commits-archive@db.apache.org Received: (qmail 97754 invoked by uid 500); 31 Jul 2008 21:00:19 -0000 Mailing-List: contact derby-commits-help@db.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: "Derby Development" List-Id: Delivered-To: mailing list derby-commits@db.apache.org Received: (qmail 97745 invoked by uid 99); 31 Jul 2008 21:00:19 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 31 Jul 2008 14:00:19 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 31 Jul 2008 20:59:32 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 618F5238898A; Thu, 31 Jul 2008 13:59:59 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r681487 - in /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests: suites/ tests/derbynet/ Date: Thu, 31 Jul 2008 20:59:59 -0000 To: derby-commits@db.apache.org From: myrnavl@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080731205959.618F5238898A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: myrnavl Date: Thu Jul 31 13:59:58 2008 New Revision: 681487 URL: http://svn.apache.org/viewvc?rev=681487&view=rev Log: DERBY-3796: convert derbynet/OutBufferStream to Junit test OutBufferStreamTest. patch contributed by Erlend Birkenes Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/OutBufferedStreamTest.java (with props) Removed: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/OutBufferedStream.java db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/OutBufferedStream.policy db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/OutBufferedStream_app.properties Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbynetmats.runall db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/_Suite.java Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbynetmats.runall URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbynetmats.runall?rev=681487&r1=681486&r2=681487&view=diff ============================================================================== --- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbynetmats.runall (original) +++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbynetmats.runall Thu Jul 31 13:59:58 2008 @@ -15,4 +15,3 @@ lang/ShutdownDatabase.java store/holdCursorExternalSortJDBC30.sql store/holdCursorJDBC30.sql -derbynet/OutBufferedStream.java Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/OutBufferedStreamTest.java URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/OutBufferedStreamTest.java?rev=681487&view=auto ============================================================================== --- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/OutBufferedStreamTest.java (added) +++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/OutBufferedStreamTest.java Thu Jul 31 13:59:58 2008 @@ -0,0 +1,170 @@ +/* + +Derby - +Class org.apache.derbyTesting.functionTests.tests.derbynet.OutBufferedStreamTest + +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.derbynet; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.Properties; + +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.apache.derbyTesting.junit.BaseJDBCTestCase; +import org.apache.derbyTesting.junit.CleanDatabaseTestSetup; +import org.apache.derbyTesting.junit.TestConfiguration; + +/** + * + * This program tests streaming a blob with derby.drda.streamOutBufferSize + * configuration. + * + * When derby.drda.streamOutBufferSize is configured, + * a buffer of configured size is placed at network server just before + * sending the stream to the client. + * + * Buffer size is 131072 + */ +public class OutBufferedStreamTest extends BaseJDBCTestCase { + + /** + * This constructor takes the name of the test. + * + * @param name + */ + public OutBufferedStreamTest(String name) { + super(name); + } + + /** + * Returns the testsuite with a clientServerDecorator and a + * CleanDatabaseTestSetup with a table. Also sets system property + * derby.drda.streamOutBufferSize=131072. + * + * @return the testsuite + */ + public static Test suite() { + Properties sysprops = System.getProperties(); + sysprops.put("derby.drda.streamOutBufferSize", "131072"); + + TestSuite s = new TestSuite("OutBufferedStreamTest"); + s.addTestSuite(OutBufferedStreamTest.class); + + return new CleanDatabaseTestSetup( + TestConfiguration.clientServerDecorator(s)) { + /** + * Creates the table used in the test case. + * + * @throws SQLException + */ + protected void decorateSQL(Statement s) throws SQLException { + /* Create a table */ + s.execute("create table TEST_TABLE( TEST_COL blob( 65536 ))"); + getConnection().commit(); + + } + }; + + } + + /** + * This test inserts a blob of length 65536 containing the series 0-255 + * 256 times and then reads the data back and checks that it is correct. + */ + public void testOutBufferStream() { + + try { + PreparedStatement insertLobSt = prepareStatement( + "insert into TEST_TABLE( TEST_COL ) values(?)"); + + insertLobSt.setBinaryStream(1, createOriginalDataInputStream(65536), + 65536); + insertLobSt.executeUpdate(); + insertLobSt.close(); + commit(); + + PreparedStatement st = prepareStatement( + "select TEST_COL from TEST_TABLE"); + ResultSet rs = st.executeQuery(); + + rs.next(); + + InputStream is = rs.getBinaryStream(1); + + int[][] expected = new int[256][256]; + int[][] actual = new int[256][256]; + + //Build the expected array. + for (int i = 0; i < 256; i++) { + for (int j = 0; j < 256; j++) { + expected[i][j] = j; + } + } + + //Read data from the lob and build array. + for (int i = 0; i < 256; i++) { + for (int j = 0; j < 256; j++) { + actual[i][j] = is.read(); + } + + } + + //Assert that the arrays are equal. + for (int i = 0; i < 256; i++) { + for (int j = 0; j < 256; j++) { + assertEquals("Not correct: Line " + i + " pos " + j, + expected[i][j], actual[i][j]); + } + } + + is.close(); + rs.close(); + st.close(); + commit(); + } catch (SQLException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * Build a ByteArrayInputStream of the given length, with values + * from 0 t0 255 so they will fit into a byte. + */ + private static ByteArrayInputStream createOriginalDataInputStream(int length) { + + byte[] originalValue = new byte[length]; + + for (int i = 0; i < originalValue.length; i++) { + originalValue[i] = (byte) (i % 256); + } + + return new ByteArrayInputStream(originalValue); + + } +} \ No newline at end of file Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/OutBufferedStreamTest.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/_Suite.java URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/_Suite.java?rev=681487&r1=681486&r2=681487&view=diff ============================================================================== --- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/_Suite.java (original) +++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/_Suite.java Thu Jul 31 13:59:58 2008 @@ -25,7 +25,7 @@ import org.apache.derbyTesting.junit.Derby; import org.apache.derbyTesting.junit.JDBC; -import junit.framework.Test; +import junit.framework.Test; import junit.framework.TestSuite; /** @@ -41,12 +41,12 @@ private _Suite(String name) { super(name); } - + public static Test suite() { TestSuite suite = new TestSuite("derbynet"); suite.addTest(PrepareStatementTest.suite()); - suite.addTest(NetworkServerControlApiTest.suite()); + suite.addTest(NetworkServerControlApiTest.suite()); suite.addTest(ShutDownDBWhenNSShutsDownTest.suite()); suite.addTest(DRDAProtocolTest.suite()); suite.addTest(ClientSideSystemPropertiesTest.suite()); @@ -59,21 +59,22 @@ suite.addTest(NetworkServerControlClientCommandTest.suite()); suite.addTest(ServerPropertiesTest.suite()); suite.addTest(LOBLocatorReleaseTest.suite()); - - + suite.addTest(OutBufferedStreamTest.suite()); + + // Disabled due to "java.sql.SQLSyntaxErrorException: The class // 'org.apache.derbyTesting.functionTests.tests.derbynet.checkSecMgr' // does not exist or is inaccessible. This can happen if the class is not public." // in the nightly tests with JDK 1.6 and jar files. //suite.addTest(CheckSecurityManager.suite()); - + // this test refers to ConnectionPooledDataSource class // thus causing class not found exceptions with JSR169 if (JDBC.vmSupportsJDBC3()) { suite.addTest(NSSecurityMechanismTest.suite()); } - + // These tests references a client class directly // thus causing class not found exceptions if the // client code is not in the classpath. @@ -81,8 +82,8 @@ suite.addTest(ByteArrayCombinerStreamTest.suite()); suite.addTest(SqlExceptionTest.suite()); } - + return suite; } - + }