db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-5103) ProcedureInTriggerTest depends on implicit ordering of test cases
Date Wed, 09 Mar 2011 13:58:59 GMT

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

Knut Anders Hatlen updated DERBY-5103:

    Attachment: derby-5103-1a.diff

Attaching a patch that attempts to loosen up the dependency on a particular ordering. The
patch does the following:

1) Adds a tearDown() method that truncates the test tables between each run and resets the
static counters.

2) Move an insert statement from testTriggerNoSql to testTriggerContainsSql. testTriggerNoSql
doesn't use that row (inserting it is the last thing it does), so it's better that it's inserted
in the test case that actually needs it.

3) Added an insert statement in testTriggerNegative to compensate for the rows that are removed
by tearDown(). It used to depend on these rows getting inserted by testModifiesSql, but now
it should work even if testModifiesSql hasn't been run yet.

4) Drop the triggers created in testTriggerNegative.

With these changes, the test runs cleanly in an environment where the test failed almost consistently

> ProcedureInTriggerTest depends on implicit ordering of test cases
> -----------------------------------------------------------------
>                 Key: DERBY-5103
>                 URL: https://issues.apache.org/jira/browse/DERBY-5103
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions:
>            Reporter: Knut Anders Hatlen
>         Attachments: derby-5103-1a.diff, rjall.out
> If for example the test case testTriggerContainsSql is executed as the first test case,
it will fail with the following error:
> 1) testTriggerContainsSql(org.apache.derbyTesting.functionTests.tests.lang.ProcedureInTriggerTest)junit.framework.AssertionFailedError:
expected:<2> but was:<0>
> 	at org.apache.derbyTesting.functionTests.tests.lang.ProcedureInTriggerTest.checkAndResetGetConnectionProcCount(ProcedureInTriggerTest.java:514)
> 	at org.apache.derbyTesting.functionTests.tests.lang.ProcedureInTriggerTest.testTriggerContainsSql(ProcedureInTriggerTest.java:120)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:112)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> The test should either make the order of the test cases explicit or make the test cases
independent of the order in which they run.
> Seen in the nightly tests, for example here: http://dbtg.foundry.sun.com/derby/test/Daily/jvm1.7/testing/testlog/lin/1076682-suitesAll_diff.txt

This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message