You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@oozie.apache.org by "Robert Kanter (JIRA)" <ji...@apache.org> on 2013/10/24 03:34:41 UTC

[jira] [Commented] (OOZIE-1597) Cleanup database before every test

    [ https://issues.apache.org/jira/browse/OOZIE-1597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13803649#comment-13803649 ] 

Robert Kanter commented on OOZIE-1597:
--------------------------------------

{{TestSLAEventGeneration.testWorkflowJobSLANew}} is another example where we can't simply call {{cleanUpDBTables()}} for the same reason.

> Cleanup database before every test
> ----------------------------------
>
>                 Key: OOZIE-1597
>                 URL: https://issues.apache.org/jira/browse/OOZIE-1597
>             Project: Oozie
>          Issue Type: Improvement
>          Components: tests
>    Affects Versions: trunk
>            Reporter: Robert Kanter
>            Assignee: Robert Kanter
>
> While investigating a flakey test ({{org.apache.oozie.sla.TestSLAJobEventListener.testOnJobEvent}}) I realized that some of the flakey SLA tests that I've seen lately are the same issue: The database has some leftover stuff from a previous test that its not expecting.  
> Normally this is easy to fix because we can simply call {{cleanUpDBTables()}}.  However, {{cleanUpDBTables}} requires some of the {{Services}} to be running, so you have to call it after starting {{Services}}; but, some of the failures were occurring during Services initialization (specifically when {{SLAService}} initializes the {{SLACalculatorMemory}}, which tries to load some data from the database, which may be incomplete (e.g. SLA registration for a job that doesn't exist)).  So, in this case, we can't call {{cleanUpDBTables()}} before or after starting {{Services}}.
> This brings the larger issue that we should be cleaning up the database before every test anyway to make sure that the tests are truly independent and to prevent harmful leaking (just like we did a while back with the {{Services}}).  I think we should have {{XTestCase.setup()}} call {{cleanUpDBTables()}} so that every test automatically it (and handle the {{Services}} dependency appropriately).



--
This message was sent by Atlassian JIRA
(v6.1#6144)