Derby
  1. Derby
  2. DERBY-5821

tools/derbyrunjartest.java doesn't use jvmflags

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 10.10.1.1
    • Fix Version/s: 10.10.1.1
    • Component/s: Test
    • Labels:
      None

      Description

      tools/derbyrunjartest.java doesn't use the jvmflags property when it starts a sub-process, so one cannot pass custom flags to the process. This makes it difficult to get the test to pass when running with code coverage tools.

      For example, for EMMA, we need to manipulate the classpath and reduce the verbosity level. And we need to pass a -javaagent flag if we're running with JaCoCo. Using the jvmflags property works for those tests that don't spawn processes.

      1. d5821-2a.patch
        3 kB
        Knut Anders Hatlen
      2. d5821-1a.diff
        19 kB
        Knut Anders Hatlen

        Activity

        Gavin made changes -
        Workflow jira [ 12673468 ] Default workflow, editable Closed status [ 12797119 ]
        Knut Anders Hatlen made changes -
        Status Reopened [ 4 ] Closed [ 6 ]
        Resolution Fixed [ 1 ]
        Hide
        Knut Anders Hatlen added a comment -

        Committed revision 1359068.

        Show
        Knut Anders Hatlen added a comment - Committed revision 1359068.
        Knut Anders Hatlen made changes -
        Attachment d5821-2a.patch [ 12535097 ]
        Hide
        Knut Anders Hatlen added a comment -

        Attaching a patch that adds the test to tools._Suite and makes it skip testServer() on J2ME platforms.

        Show
        Knut Anders Hatlen added a comment - Attaching a patch that adds the test to tools._Suite and makes it skip testServer() on J2ME platforms.
        Knut Anders Hatlen made changes -
        Resolution Fixed [ 1 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        Hide
        Knut Anders Hatlen added a comment -

        Reopening the issue since I forgot to add the JUnit test to the tools._Suite. Also, the test case for the server command fails on J2ME platforms, because the server isn't supported on those platforms, and should be skipped.

        Show
        Knut Anders Hatlen added a comment - Reopening the issue since I forgot to add the JUnit test to the tools._Suite. Also, the test case for the server command fails on J2ME platforms, because the server isn't supported on those platforms, and should be skipped.
        Knut Anders Hatlen made changes -
        Status In Progress [ 3 ] Resolved [ 5 ]
        Fix Version/s 10.10.0.0 [ 12321550 ]
        Resolution Fixed [ 1 ]
        Hide
        Knut Anders Hatlen added a comment -

        Committed revision 1353862.

        Show
        Knut Anders Hatlen added a comment - Committed revision 1353862.
        Knut Anders Hatlen made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Knut Anders Hatlen made changes -
        Attachment d5821-1a.diff [ 12532692 ]
        Hide
        Knut Anders Hatlen added a comment -

        Attached is a patch that rewrites derbyrunjartest as a JUnit
        test and removes it from the old harness.

        Both suites.All and derbyall passed with the patch.

        Details:

        • build.xml

        Add derbyrun.jar to the classpath when running JUnit tests under EMMA. It wasn't needed before, since none of the other JUnit tests used derbyrun.jar.

        • functionTests/master/derbyrunjartest.out

        Remove old canon.

        • functionTests/suites/derbytools.runall

        Remove from old harness suite.

        • functionTests/tests/tools/build.xml

        Make sure newly created policy file gets copied to classes directory.

        • functionTests/tests/tools/derbyrunjartest.java

        Execute the tools and compare actual output with the expected output using BaseTestCase.assertExecJavaCmdAsExpected().

        • functionTests/tests/tools/derbyrunjartest.policy

        Additional permissions needed for the test to run (test classes need permission to find the location of derbyrun.jar). The original version of the test ran without a security manager for this reason.

        • functionTests/tests/tools/derbyrunjartest_app.properties
        • functionTests/tests/tools/derbyrunjartest_sed.properties

        Remove files used by the old harness.

        • junit/BaseTestCase.java

        Added logic to pass emma.jar to the classpath of the sub-process when running java -jar. Since you cannot add jar files directly to the classpath when running with -jar, emma.jar is added to the bootclasspath.

        Show
        Knut Anders Hatlen added a comment - Attached is a patch that rewrites derbyrunjartest as a JUnit test and removes it from the old harness. Both suites.All and derbyall passed with the patch. Details: build.xml Add derbyrun.jar to the classpath when running JUnit tests under EMMA. It wasn't needed before, since none of the other JUnit tests used derbyrun.jar. functionTests/master/derbyrunjartest.out Remove old canon. functionTests/suites/derbytools.runall Remove from old harness suite. functionTests/tests/tools/build.xml Make sure newly created policy file gets copied to classes directory. functionTests/tests/tools/derbyrunjartest.java Execute the tools and compare actual output with the expected output using BaseTestCase.assertExecJavaCmdAsExpected(). functionTests/tests/tools/derbyrunjartest.policy Additional permissions needed for the test to run (test classes need permission to find the location of derbyrun.jar). The original version of the test ran without a security manager for this reason. functionTests/tests/tools/derbyrunjartest_app.properties functionTests/tests/tools/derbyrunjartest_sed.properties Remove files used by the old harness. junit/BaseTestCase.java Added logic to pass emma.jar to the classpath of the sub-process when running java -jar. Since you cannot add jar files directly to the classpath when running with -jar, emma.jar is added to the bootclasspath.
        Knut Anders Hatlen made changes -
        Field Original Value New Value
        Assignee Knut Anders Hatlen [ knutanders ]
        Hide
        Knut Anders Hatlen added a comment -

        It's probably better to convert the test to JUnit and leave the old harness as it is. I'll give it a try.

        Show
        Knut Anders Hatlen added a comment - It's probably better to convert the test to JUnit and leave the old harness as it is. I'll give it a try.
        Knut Anders Hatlen created issue -

          People

          • Assignee:
            Knut Anders Hatlen
            Reporter:
            Knut Anders Hatlen
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development