torsdag 27 november 2008 22:49:16 skrev Shawn O. Pearce: > Robin Rosenberg <robin.rosenberg@xxxxxxxxxx> wrote: > > Ok, so here is an attempt to improve the ability of the JGit's unit > > tests to delete temporary repositories. This has probably been seen > > by many, but Jonas Fonseca raised the issue. > > Hmpph. This takes 19 seconds to run the suite, where it used to be > only 2 seconds on the same system. The slower run isn't something > I'm too happy about, actually I'd like to make the run even faster > than 2 seconds. So maybe we should clean up less. Every new test repo we create has a new name so we could do without cleaning up so much. The cleanup however is a verification that we close (and can close) our resources, though it only works on Windows :/ On unix we could spawn lsof but that is really really slow. > If the issue is mmap'd files, why don't we instead disable mmap > on Windows during JUnit tests, and use the non-mmap variant of > pack access? At least do that for the bulk of the tests, and > then have a single test case which tests the mmap code path but > has careful System.gc calls in place to try and ensure we can > actually clean up the temporary files. We would then need some other really slow test to play rough with memory mapping and gc. As I mentioned above it is actually about closing resources in general, mmapped files being an especially nasty case. > I'd actually like to get that Repository refactoring done soon, > someone else was asking about it for the RefDatabase (to store the > refs in a SQL database so JGit ties into JTA) but I may also want > it for Gerrit 2 - I'm looking at doing something that would put > 200,000 refs per year into a repository. That's so large that > most operations can't afford to scan the entire ref database, > and it really cannot be loose. ;-) Would be cool, but having that diff engine is more important to me. > > > Refactoring repository is a fair chunk of work, disabling the mmap > feature under Windows in JUnit may be easier. Hmm, according to > WindowCache's <clinit> its default by false. Why is it enabling > on Windows? The only code that calls WindowCache.reconfigure() > is in the Eclipse plugin, so pure JGit unit tests shouldn't be > turning on mmap code *at all*. > > Which also points out a gap in our tests. Nothing new, we have > lots of gaps. *sigh* Yep. :/ -- robin -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html