[ https://issues.apache.org/jira/browse/DAFFODIL-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Beckerle updated DAFFODIL-1300: --------------------------------------- Labels: beginner (was: ) > Fix Test Scala files to not create the test suite repeatedly > ------------------------------------------------------------ > > Key: DAFFODIL-1300 > URL: https://issues.apache.org/jira/browse/DAFFODIL-1300 > Project: Daffodil > Issue Type: Improvement > Components: QA > Reporter: Michael Beckerle > Priority: Major > Labels: beginner > > Running tests seemed to be awfully slow. > So I learned today that for every single test case line in our test scala > files (e.g, TestFacets.scala), it reloads the entire test suite TDML from > scratch. This makes the tests much slower of course, particularly so for the > large TDML files (Functions.tdml for example). > The fix to this is to look at how TestFacets.scala is now (just pushed to > 1.1.0 branch). > This is the recipe for loading up the test suite exactly once, but also > releasing it at the end of the job so that these things don't build up > endlessly in memory. Basically, all those variables that hold the test runner > objects, all those go in the associated peer object, not in the test class. > E.g., from TestFacets.scala: > object TestFacets { > val testDir = "/edu/illinois/ncsa/daffodil/section05/facets/" > val aa = testDir + "Facets.tdml" > var runner = new DFDLTestSuite(Misc.getRequiredResource(aa), > validateTDMLFile = > false, validateDFDLSchemas = false) > /** > * Avoid memory leak of adding more and more test suites to static objects > as we run more and more test suites. > */ > @AfterClass def tearDown() { runner = null } > } > class TestFacets { > import TestFacets._ // Imports all of the definitions in the object so we > don't have to edit the test lines. > @Test def test_minMaxInExdateTime01() { > runner.runOneTest("minMaxInExdateTime01") } > ... > } > Tests run much faster once this is done. > For now I have retained noisy messages which illustrate how often we are > reloading the TDML files to construct the test suite objects. > There are also warnings to stderr for duplicate test cases in the same tdml > file -(see JIRA Ticket DFDL-1298 and DFDL-1299. ) > We should make a pass and fix all the TDML running scala test files to use > this technique. -- This message was sent by Atlassian JIRA (v7.6.3#76005)