[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] optimizers, tests and temp files

To simplify handling of test data I have created a little helper class: org.eclipse.equinox.p2.tests.TestData.
It simplifies access to test data that is stored in the ´testData´ folder of the test project. Currently it does:
- get test data as an input stream
- get test data as a file, some APIs require files (therefor a temporary file will be created with the content of the test data, the temporary file will be deleted when the jvm exits)
- create temporary files, that will deleted when jvm exits
- a few assertEquals which are not support by junit.

The creation of names for temporary files is based on the names passed to the methods of TestData, e.g.
TestData.getTempFile("optimizers", "org.eclipse.jdt_3.2.0-3.3.0.jbdiff");
will create a temporary file that looks like: org.eclipse.jdt_3.2.0-3.3.0~3400.jbdiff.

Thoughts?

Stefan

Jeff McAffer wrote:

I just committed another refactoring of the repo optimizers along with an improved version of the JarDelta optimizer and some basic tests.  We should have well optimized repos now! (next step is to pack the jar deltas!!)

In runnig the tests before committing there appear to be 11 of the Director tests failing.  I did not do anything in this area so assume that they were failing before this new code came along?  What is our policy on failing tests?  I've been commenting out my tests that fail until they can be fixed.  Others?

A number of tests use the TestMetadataRepository mechanism.  This is cool but unfortunately it leaves temp files down in Documents and Setting (Windows) at a pretty high rate (~30 per full test run).  There are a few other files being left around.  We should ensure that our tests run and clean up after themselves.  In the optimizer tests I've taken to naming the files and dirs something related to the name of the test (e.g. p2.optimizers.xxx) so that people encountering these files (leftover from crashed test runs etc) know what they are.  Do others think this to be a good idea?  

Related to this, we are all likely struggling to setup various repos etc temporarily for tests and inevitiably using different approaches.  Would it be worth spending a bit of time creating some test repo infrastructure, documenting this on the wiki (or wherever) and then making the tests consistent?  Most of the time I spend on this little project was in managing all the test code and updating multiple copies.  Taht is, until I refactored to eliminate duplicate code.  Now the test read well and are very easy to create.  Easy to create tests => more tests => better code...
Thoughts?

Jeff

_______________________________________________ equinox-dev mailing list equinox-dev@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/equinox-dev