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)

Reply via email to