[ 
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 before.

> 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: 10.8.0.0
>            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

Reply via email to