You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by Myrna van Lunteren <m....@gmail.com> on 2006/02/22 15:22:20 UTC
Re: svn commit: r379723 - in /db/derby/code/trunk/java/testing: ./ org/apache/derbyTesting/functionTests/harness/ org/apache/derbyTesting/functionTests/suites/
Hi,
Is it possible / Would it make sense to change the description of this
commit? The original patch was contributed by deepa...
Myrna
On 2/21/06, fuzzylogic@apache.org <fu...@apache.org> wrote:
>
> Author: fuzzylogic
> Date: Tue Feb 21 23:50:51 2006
> New Revision: 379723
>
> URL: http://svn.apache.org/viewcvs?rev=379723&view=rev
> Log:
> DERBY-683: Commit _tstpatch3_ by Myrna. Adds derbyTesting.encodingproperty to
> harness. Excludes encodingTests from all JDKs except Sun JDK 1.5. Further
> investigation is required to understand why this is necessary. The changes
> introduced in this patch (specifically, setting -Dfile.encoding on the
> command-
> line of the spawned JVM) should not cause NoClassDefFoundErrors on JDK
> 1.4.2,
> but they do.
>
> Committed for Myrna Van Lunteren <m....@gmail.com>
>
> Added:
>
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/encodingTests.properties
> (with props)
>
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/encodingTests.runall
> Modified:
> db/derby/code/trunk/java/testing/README.htm
>
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/HandleResult.java
>
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/ProcessStreamResult.java
>
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/RunList.java
>
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/RunSuite.java
>
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/RunTest.java
>
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbynetclientmats.properties
>
> Modified: db/derby/code/trunk/java/testing/README.htm
> URL:
> http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/README.htm?rev=379723&r1=379722&r2=379723&view=diff
>
> ==============================================================================
> --- db/derby/code/trunk/java/testing/README.htm (original)
> +++ db/derby/code/trunk/java/testing/README.htm Tue Feb 21 23:50:51 2006
> @@ -688,7 +688,11 @@
> <p style="margin-bottom: 0in;">As tests are added to this
> quite, it could require more and more time to run (several minutes to
> several hours to several days), which is why it is NOT included as part
> -of the derbyall suite. Currently the largedata/LobLimits.java test takes
> about 17Gb of disk space. On a linux machine with 2.8Ghz Intel Xeon CPU,
> 4Gb RAM , Linux machine and IBM 1.4.2 JVM with default memory heap size,
> the test ran for about 4.5 hrs. If the test is successful, it will cleanup
> the database and other files.</p>
> +of the derbyall suite. Currently the largedata/LobLimits.java test
> +takes about 17Gb of disk space. On a linux machine with 2.8Ghz Intel
> +Xeon CPU, 4Gb RAM , Linux machine and IBM 1.4.2 JVM with default memory
> +heap size, the test ran for about 4.5 hrs. If the test is successful,
> +it will cleanup the database and other files.</p>
> </li>
> </ul>
> </li>
> @@ -1058,6 +1062,10 @@
> functionality than the (rest of the) functionTests, which are more
> geared toward how end-users might use functionality.</p>
> </li>
> + <li>.junit junit tests. These require
> +junit.jar to run and are actually run with junit.textui.TestRunner. The
> +actual tests are .java files. <br>
> + </li>
> </ul>
> <p><br>
> <br>
> @@ -1510,6 +1518,13 @@
> SecurityManager. See section 4.13<br>
> hostName - allows for running Network Server on a remote host. See
> section <a href="#hostName">4.14</a>.<br>
> +derbyTesting.encoding - allows for running the harness with a different
> +encoding. Only supported with jdk15. Example: <br>
> + <small> java
> +-DderbyTesting.encoding=UTF-16
> +org.apache.derbyTesting.functionTests.harness.RunTest
> +jdbcapi/resultset.java</small><br>
> + <br>
> </td>
> </tr>
> </tbody>
> @@ -1590,7 +1605,9 @@
> derbyTesting.jar or from the svn source to a location on
> the host on which you want to run the NetworkServer</li>
> <li>Set up the classpath for Network Server to include derbynet.jar
> -and derbyTesting.jar (or equivalent classes).<br>
> +and derbyTesting.jar (or equivalent classes). You need to have
> +derby.jar available also, although it does not need to be in the
> +classpath.<br>
> </li>
> <li>Start Network Server like so when using compiled classes for
> it:</li>
> </ol>
>
> Modified:
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/HandleResult.java
> URL:
> http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/HandleResult.java?rev=379723&r1=379722&r2=379723&view=diff
>
> ==============================================================================
> ---
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/HandleResult.java
> (original)
> +++
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/HandleResult.java
> Tue Feb 21 23:50:51 2006
> @@ -39,8 +39,15 @@
> {
> }
>
> + public static String handleResult(int exitCode, InputStream
> stdout,
> + InputStream stderr, PrintWriter printWriter)
> + throws IOException
> + {
> + return handleResult(exitCode, stdout, stderr, printWriter,
> null);
> + }
> +
> public static String handleResult(int exitCode, InputStream stdout,
> - InputStream stderr, PrintWriter printWriter)
> + InputStream stderr, PrintWriter printWriter, String encoding)
> throws IOException
> {
> StringBuffer sb = new StringBuffer();
> @@ -52,7 +59,11 @@
> if (stdout != null)
> {
> // reader for stdout
> - BufferedReader outReader = new BufferedReader(new
> InputStreamReader(stdout));
> + BufferedReader outReader;
> + if(encoding != null)
> + outReader = new BufferedReader(new
> InputStreamReader(stdout, encoding));
> + else
> + outReader = new BufferedReader(new
> InputStreamReader(stdout));
>
> // Read each line and write to printWriter
> String s = null;
> @@ -74,7 +85,11 @@
> if (stderr != null)
> {
> // reader for stderr
> - BufferedReader errReader = new BufferedReader(new
> InputStreamReader(stderr));
> + BufferedReader errReader;
> + if(encoding != null)
> + errReader = new BufferedReader(new
> InputStreamReader(stderr, encoding));
> + else
> + errReader = new BufferedReader(new
> InputStreamReader(stderr));
>
> String s = null;
> int lines = 0;
>
> Modified:
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/ProcessStreamResult.java
> URL:
> http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/ProcessStreamResult.java?rev=379723&r1=379722&r2=379723&view=diff
>
> ==============================================================================
> ---
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/ProcessStreamResult.java
> (original)
> +++
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/ProcessStreamResult.java
> Tue Feb 21 23:50:51 2006
> @@ -27,8 +27,10 @@
> public class ProcessStreamResult implements Runnable
> {
>
> - protected InputStream in;
> - protected BufferedOutputStream bos;
> + protected InputStream in;
> + protected OutputStreamWriter outStream;
> + // Encoding to be used to read output of test jvm process
> + protected String encoding;
> protected boolean finished;
> protected IOException ioe;
> protected Thread myThread;
> @@ -37,10 +39,17 @@
> protected int timeout;
>
> public ProcessStreamResult(InputStream in, BufferedOutputStream
> bos,
> - String timemin) throws IOException, InterruptedException
> + String timemin) throws IOException,
> InterruptedException
> + {
> + this(in, bos, timemin, null);
> + }
> +
> + public ProcessStreamResult(InputStream in, BufferedOutputStream
> bos,
> + String timemin, String encoding) throws IOException,
> InterruptedException
> {
> this.in = in;
> - this.bos = bos;
> + this.outStream = new OutputStreamWriter(bos);
> + this.encoding = encoding;
> this.startTime = System.currentTimeMillis();
> if (timemin != null)
> {
> @@ -65,10 +74,19 @@
>
> try
> {
> - byte[] ba = new byte[1024];
> + char[] ca = new char[1024];
> int valid;
> interrupted = false;
> - while ((valid = in.read(ba, 0, ba.length)) != -1)
> +
> + // Create an InputStreamReader with encoding, if
> specified.
> + // Otherwise, use default.
> + InputStreamReader inStream;
> + if(encoding != null)
> + inStream = new InputStreamReader(in, encoding);
> + else
> + inStream = new InputStreamReader(in);
> +
> + while ((valid = inStream.read(ca, 0, ca.length))
> != -1)
> {
> //System.out.println("Still reading thread: " +
> tname);
> /* if (timeout > 0) {
> @@ -90,8 +108,8 @@
> }
> }
> }
> -*/ bos.write(ba, 0, valid);
> - bos.flush();
> +*/ outStream.write(ca, 0, valid);
> + outStream.flush();
> }
> }
> catch (IOException ioe)
>
> Modified:
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/RunList.java
> URL:
> http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/RunList.java?rev=379723&r1=379722&r2=379723&view=diff
>
> ==============================================================================
> ---
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/RunList.java
> (original)
> +++
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/RunList.java
> Tue Feb 21 23:50:51 2006
> @@ -118,7 +118,8 @@
> static Properties specialProperties; // for testSpecialProps
> static BufferedReader runlistFile;
> static String hostName;
> -
> + static String testEncoding; // Encoding used for child jvm and
> to read the test output
> +
> static String [] clientExclusionKeywords = new String [] {
> "at-or-before:", "at-or-after:", "when-at-or-before:jdk",
> "when-at-or-after:jdk", "when:jdk"
> @@ -414,6 +415,9 @@
> jvmProps.addElement("serverJvm=" + serverJvm);
> if ( (serverJvmName != null) && (serverJvmName.length()>0) )
> jvmProps.addElement("serverJvmName=" + serverJvmName);
> + if (testEncoding != null)
> + jvmProps.addElement("derbyTesting.encoding=" + testEncoding);
> +
> if ( (hostName != null) && (hostName.length()>0) )
> jvmProps.addElement("hostName=" + hostName);
> if ( useprocess == false )
> @@ -516,7 +520,7 @@
> pr.waitFor();
>
> String result = HandleResult.handleResult(pr.exitValue
> (),
> - stdout.getData(), stderr.getData(), pwOut);
> + stdout.getData(), stderr.getData(), pwOut,
> testEncoding);
> pr.destroy();
> }
> catch(Throwable t)
> @@ -611,6 +615,7 @@
> {
> // Reset framework to the parent suite's framework, if any
> // because framework may have been set by previous suite
> + testEncoding = parentProps.getProperty("derbyTesting.encoding
> ");
> framework = parentProps.getProperty("framework");
> serverJvm = parentProps.getProperty("serverJvm");
> serverJvmName = parentProps.getProperty("serverJvmName");
> @@ -739,6 +744,7 @@
> serverJvm = suiteProperties.getProperty("serverJvm");
> serverJvmName = suiteProperties.getProperty
> ("serverJvmName");
> hostName = suiteProperties.getProperty("hostName");
> + testEncoding = suiteProperties.getProperty("
> derbyTesting.encoding");
> canondir = suiteProperties.getProperty("canondir");
> mtestdir = suiteProperties.getProperty("mtestdir");
> String usepr = suiteProperties.getProperty("useprocess");
> @@ -822,6 +828,14 @@
> p.put("serverJvmName", serverJvmName);
> else
> serverJvmName = p.getProperty("serverJvmName");
> +
> + // derbyTesting.encoding may be set at the top, or just
> + // set for individual suites
> + if(parentProperties.getProperty("derbyTesting.encoding") != null)
> + p.put("derbyTesting.encoding", testEncoding);
> + else
> + testEncoding = p.getProperty("derbyTesting.encoding");
> +
> if ( hostName != null )
> p.put("hostName", hostName);
> else
>
> Modified:
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/RunSuite.java
> URL:
> http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/RunSuite.java?rev=379723&r1=379722&r2=379723&view=diff
>
> ==============================================================================
> ---
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/RunSuite.java
> (original)
> +++
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/RunSuite.java
> Tue Feb 21 23:50:51 2006
> @@ -72,6 +72,7 @@
> static String bootcp; // path for j9 bootclasspath setting
> static String serverJvm; // path for j9 bootclasspath setting
> static String hostName; // needs to be settable for IPV6 testing;
> localhost otherwise.
> + static String testEncoding; // setting the encoding.
> static String ijdefaultResourcePackage; // for ij tests only
> static String debug; // for setting verbose mode to pass down to
> RunTest
> static String timeout; // to allow killing a hanging test
> @@ -351,6 +352,7 @@
> reportstderr = p.getProperty("reportstderr");
> timeout = p.getProperty("timeout");
> shutdownurl = p.getProperty("shutdownurl");
> + testEncoding = p.getProperty("derbyTesting.encoding");
> }
> suites = p.getProperty("suites");
> return p;
> @@ -475,6 +477,9 @@
> String serverJvm = sp.getProperty("serverJvm");
> if (serverJvm != null)
> suiteProperties.put("serverJvm", serverJvm);
> + String cmlTestEncoding = sp.getProperty("
> derbyTesting.encoding");
> + if (cmlTestEncoding != null)
> + suiteProperties.put("derbyTesting.encoding",
> cmlTestEncoding);
> String testout = sp.getProperty("testoutname");
> if (testout != null)
> suiteProperties.put("testoutname", testout); //
> toursDemo
>
> Modified:
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/RunTest.java
> URL:
> http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/RunTest.java?rev=379723&r1=379722&r2=379723&view=diff
>
> ==============================================================================
> ---
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/RunTest.java
> (original)
> +++
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/harness/RunTest.java
> Tue Feb 21 23:50:51 2006
> @@ -122,6 +122,7 @@
> static String runwithjvm="true";
> static boolean startServer=true; // should test harness start the
> server
> static String hostName; // needs to be settable for ipv testing,
> localhost otherwise.)
> + static String testEncoding; // Encoding used for child jvm and to
> read the test output
>
> // Other test variables for directories, files, output
> static String scriptName = ""; // testname as passed in
> @@ -930,6 +931,13 @@
> }
> }
>
> + testEncoding = sp.getProperty("derbyTesting.encoding");
> + if ((testEncoding != null) && (!jvmName.equals("jdk15")))
> + {
> + skiptest = true;
> + addSkiptestReason("derbyTesting.encoding can only be used
> with jdk15, skipping test");
> + }
> +
> javaCmd = sp.getProperty("javaCmd");
> bootcp = sp.getProperty("bootcp");
> jvmflags = sp.getProperty("jvmflags");
> @@ -1528,6 +1536,18 @@
> jvmflags = "";
> }
> }
> + //Check derbyTesting.encoding property
> + if(testEncoding == null) {
> + testEncoding = ap.getProperty("derbyTesting.encoding
> ");
> + // only bother if we have jdk15, otherwise we'll be
> skipping
> + if ((jvmName.equals("jdk15")) && (testEncoding !=
> null))
> + {
> + jvmflags = (jvmflags==null?"":jvmflags+" ")
> + + "-Dfile.encoding=" +
> testEncoding;
> + ap.put("file.encoding",testEncoding);
> + }
> + }
> +
> if (NetServer.isJCCConnection(framework)
> || "true".equalsIgnoreCase(ap.getProperty
> ("noSecurityManager")))
> runWithoutSecurityManager = true;
> @@ -2067,6 +2087,15 @@
> if ((hostName != null) && (!hostName.equals("localhost")))
> jvmProps.addElement("hostName=" + hostName);
> }
> +
> + // if we're not jdk15, don't, we'll skip
> + if ((testEncoding != null) && (jvmName.equals("jdk15")))
> + {
> + jvmProps.addElement("derbyTesting.encoding=" + testEncoding);
> + jvmProps.addElement("file.encoding=" + testEncoding);
> + jvmflags = (jvmflags==null?"":jvmflags+" ")
> + + "-Dfile.encoding=" + testEncoding;
> + }
>
> if ( (jvmflags != null) && (jvmflags.length()>0) )
> {
> @@ -2195,17 +2224,20 @@
> fos = new FileOutputStream(tmpOutFile);
> bos = new BufferedOutputStream(fos, 1024);
> prout =
> - new ProcessStreamResult(pr.getInputStream(), bos,
> timeoutStr);
> + new ProcessStreamResult(pr.getInputStream(), bos,
> + timeoutStr,
> testEncoding);
> }
> else
> {
> fos = new FileOutputStream(stdOutFile);
> bos = new BufferedOutputStream(fos, 1024);
> prout =
> - new ProcessStreamResult(pr.getInputStream(), bos,
> timeoutStr);
> + new ProcessStreamResult(pr.getInputStream(), bos,
> + timeoutStr,
> testEncoding);
> }
> prerr =
> - new ProcessStreamResult(pr.getErrorStream(), bos,
> timeoutStr);
> + new ProcessStreamResult(pr.getErrorStream(), bos,
> +
> timeoutStr, testEncoding);
>
> if (framework != null && ! framework.equals(""))
> if (verbose) System.out.println("The test should be
> running...");
>
> Modified:
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbynetclientmats.properties
> URL:
> http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbynetclientmats.properties?rev=379723&r1=379722&r2=379723&view=diff
>
> ==============================================================================
> ---
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbynetclientmats.properties
> (original)
> +++
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbynetclientmats.properties
> Tue Feb 21 23:50:51 2006
> @@ -1,5 +1,5 @@
> framework=DerbyNetClient
> -suites= derbynetclientmats derbynetmats
> +suites= encodingTests derbynetclientmats derbynetmats
> jdk12test=true
> runwithj9=false
> #Exclude for J2ME/Foundation - Network Server not supported
>
> Added:
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/encodingTests.properties
> URL:
> http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/encodingTests.properties?rev=379723&view=auto
>
> ==============================================================================
> ---
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/encodingTests.properties
> (added)
> +++
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/encodingTests.properties
> Tue Feb 21 23:50:51 2006
> @@ -0,0 +1,28 @@
> +framework=DerbyNetClient
> +timeout=60
> +
> +# Encoding test with UTF-16 can currently be run only on Sun JDK 15 (Feb
> 1, 2006)
> +derbyTesting.encoding=UTF-16
> +
> +runwithibm13=false
> +runwithibm14=false
> +runwithibm15=false
> +runwithj9=false
> +runwithfoundation=false
> +runwithjdk12=false
> +runwithjdk13=false
> +runwithjdk14=false
> +framework=DerbyNetClient
> +timeout=60
> +
> +# Encoding test with UTF-16 can currently be run only on Sun JDK 15 (Feb
> 1, 2006)
> +derbyTesting.encoding=UTF-16
> +
> +runwithibm13=false
> +runwithibm14=false
> +runwithibm15=false
> +runwithj9=false
> +runwithfoundation=false
> +runwithjdk12=false
> +runwithjdk13=false
> +runwithjdk14=false
>
> Propchange:
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/encodingTests.properties
>
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Added:
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/encodingTests.runall
> URL:
> http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/encodingTests.runall?rev=379723&view=auto
>
> ==============================================================================
> ---
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/encodingTests.runall
> (added)
> +++
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/encodingTests.runall
> Tue Feb 21 23:50:51 2006
> @@ -0,0 +1,2 @@
> +jdbcapi/lobStreams.java
> +jdbcapi/lobStreams.java
> \ No newline at end of file
>
>
>
Re: svn commit: r379723 - in /db/derby/code/trunk/java/testing: ./ org/apache/derbyTesting/functionTests/harness/ org/apache/derbyTesting/functionTests/suites/
Posted by Andrew McIntyre <mc...@gmail.com>.
On 2/22/06, Myrna van Lunteren <m....@gmail.com> wrote:
> Hi,
> Is it possible / Would it make sense to change the description of this
> commit? The original patch was contributed by deepa...
>
> Myrna
Done, thanks Myrna.
andrew