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:27:42 UTC

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

Robert Kanter created OOZIE-1597:
------------------------------------

             Summary: 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)