db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John H. Embretsen (JIRA)" <derby-...@db.apache.org>
Subject [jira] Updated: (DERBY-1141) test harness usage of useprocess needs improvement
Date Fri, 21 Apr 2006 15:33:07 GMT
     [ http://issues.apache.org/jira/browse/DERBY-1141?page=all ]

John H. Embretsen updated DERBY-1141:
-------------------------------------

    Attachment: JUnit_useprocessFalse_v1.diff

Attaching 'JUnit_useprocessFalse_v1.diff'

This patch is _not_ ready for commit (I have not tested it thoroughly, and it will probably
cause merge conflicts with Myrna's ongoing work in this area); it merely demonstrates a way
to run junit type tests with useprocess=false, without using a custom TestRunner, as discussed
in the following thread on derby-dev:

http://www.nabble.com/-jira-Created%3A-%28DERBY-1141%29-test-harness-usage-of-useprocess-needs-improvement-t1325698.html

I have only run the jdbcapi suite, which contains various junit tests that with the current
trunk do not run with useprocess=false. With this patch, jdbcapi_report.txt reports:

Test Run Started: 2006-04-21 16:40:51.0
Test Run Duration: 00:09:41

25 Tests Run
100% Pass (25 tests passed)
 0% Fail (0 tests failed)
0 Suites skipped

With useprocess=true, 26 tests are run (passing), and duration is 00:12:49. The test that
was skipped when useprocess=false was jdbcapi/bestrowidentifier.sql (listed in exclude file),
which on my machine takes about 20 seconds to run when useprocess=true. So I suppose useprocess=false
cuts 2-3 minutes (~20%) in running time for the jdbcapi suite.



> test harness usage of useprocess needs improvement
> --------------------------------------------------
>
>          Key: DERBY-1141
>          URL: http://issues.apache.org/jira/browse/DERBY-1141
>      Project: Derby
>         Type: Improvement

>   Components: Test
>     Reporter: Myrna van Lunteren
>     Assignee: Myrna van Lunteren
>  Attachments: DERBY-1141_20060413.diff, DERBY-1141_20060413.stat, JUnit_useprocessFalse_v1.diff
>
> The 'old' functionTests harness has property useprocess, which, when set to false, causes
tests within a suite to run from within one jvm, thus creating databases and files in the
same directory.
> This functionality is useful for debugging test runs within an IDE.
> Also, it is potentially useful for speeding up testruns.
> However, currently, there are some problems and shortcomings of this functionality.
> - For instance, when running a networkserver test with framework DerbyNet of type .java
one sees the message 'Security Manager not installed' show up within the test output, thus
causing the test to fail.
> - running derbynet(client)mats suite with useprocess=false doesn't actually make things
any faster,  because networkserver gets started fresh for every test. 
>   However, it should be feasible to start networkserver with the first test in a suite,
then use that 
>   networkserver  for subsequent tests and shutdown networkserver when the suite finishes.
> - Also, (reported by Mike Matrigali off-list) currently, the following:
> ------------------
> java -Duseprocess=false -Doutputdir=<snippeddirname>/newout  -Dkeepfiles=true org.apache.derbyTesting.functionTests.harness.RunTest
lang/closed.java
> ------------------
> makes the test fall out of the harness with: Exception in thread "main"
> and in the .tmp:
> ------------------
> java.security.AccessControlException: access denied (java.io.FilePermission <snippeddirname>\newout
read)
>         at java.security.AccessControlContext.checkPermission(AccessControlContext.java:269)
>         at java.security.AccessController.checkPermission(AccessController.java:401)
>         at java.lang.SecurityManager.checkPermission(SecurityManager.java:524)
>         at java.lang.SecurityManager.checkRead(SecurityManager.java:863)
>         at java.io.File.exists(File.java:678)
>         at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:360)
>         at java.io.File.getCanonicalPath(File.java:513)
>         at org.apache.derbyTesting.functionTests.harness.RunTest.execTestNoProcess(RunTest.java:2370)
>         at org.apache.derbyTesting.functionTests.harness.RunTest.testRun(RunTest.java:443)
>         at org.apache.derbyTesting.functionTests.harness.RunTest.main(RunTest.java:302)
> --------------------------------
>   removing the -Doutputdir gets around that problem, but shouldn't be needed.
> - there is the reference http://www.nabble.com/AccessControlException-when-running-functional-tests-t1321374.html#a3526947
>   I couldn't duplicate this yet, maybe more info to follow.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message