[ 
https://issues.apache.org/jira/browse/DERBY-4157?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rick Hillegas updated DERBY-4157:
---------------------------------

    Attachment: derby-4157-02-ab-newtest.diff

Attaching a new version of this test: derby-4157-02-ab-newtest.diff. This 
changes the test so that, by default, it only runs a minimal set of 
trajectories, viz., just those which begin with some release and then upgrade 
through ALL intermediate releases up to the highest release. On a set of N 
releases, this gives rise to only N-1 trajectories, rather than the daunting  
((2**N) - N) - 1 trajectories in the full test. I think that this minimal 
default has some value. It would have caught the problem logged in DERBY-4214. 
However, it would not have caught the problem logged in DERBY-4215.

With the small memory settings in the previous experiment, I ran out of memory 
running the full test. I increased the memory to 1G for perm gen space and 1G 
for heap. With that setting I was able to run for a half hour without running 
out of memory--then I killed the test. That may be good enough. Or it may not 
be. This is the new command line to run the full test:

     java -XX:MaxPermSize=1024m -Xmx1024m \
     -DderbyTesting.allTrajectories=true \
     -DderbyTesting.oldReleasePath=/Users/me/myDerbyReleaseDirectory \
     
-DderbyTesting.oldVersionsPath=/Users/me/fileContainingMyListOfTastyReleases \
     junit.textui.TestRunner 
org.apache.derbyTesting.functionTests.tests.upgradeTests.UpgradeTrajectoryTest

I miscalculated how long it would take to run the full test against all upgrade 
trajectories which are possible on my set of releases. My 14 releases give rise 
to 16369 trajectories. I was finding that the long trajectories were taking 
about 10 seconds apiece to evaluate. That's about 19 days for the whole set. 
Needless to say, I am not going to run this sequence on my humble machine. If 
you need to run a particular trajectory, you can hand-edit the 
makeSampleTrajectories() method and uncomment the call to it.

Here's the command line to run this test against the default (minimal) set of 
trajectories:

     java -XX:MaxPermSize=1024m -Xmx1024m \
     -DderbyTesting.oldReleasePath=/Users/me/myDerbyReleaseDirectory \
     
-DderbyTesting.oldVersionsPath=/Users/me/fileContainingMyListOfTastyReleases \
     junit.textui.TestRunner 
org.apache.derbyTesting.functionTests.tests.upgradeTests.UpgradeTrajectoryTest

This test is not wired into the regression test suite. You have to run it 
standalone. As a sanity check I ran the full regression suite successfully.

Committed at subversion revision 785826.


> Create a test to verify that virgin metadata is identical to hard-upgraded 
> metadata
> -----------------------------------------------------------------------------------
>
>                 Key: DERBY-4157
>                 URL: https://issues.apache.org/jira/browse/DERBY-4157
>             Project: Derby
>          Issue Type: Test
>          Components: Test
>    Affects Versions: 10.6.0.0
>            Reporter: Rick Hillegas
>            Assignee: Rick Hillegas
>         Attachments: derby-4157-01-aa-refactor.diff, 
> derby-4157-02-aa-newtest.diff, derby-4157-02-ab-newtest.diff
>
>
> We should write a test to verify that the metadata is correct for each 
> release for all hard-upgrade trajectories which terminate in that release. 
> The test should examine all system tables. Note that if there are N releases, 
> then there will (2<sup>N</sup> - N) - 1 trajectories to examine.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to