Re: [JGIT PATCH 0/4] RepositoryTestCase cleanups
- From
Robin Rosenberg <robin.rosenberg@dewire.com>
- Date
- Nov 29, 2008, 12:01 UTC
- Message-ID
- <200811291301.12095.robin.rosenberg@dewire.com>
- In-Reply-To
- <20081127214916.GD23984@spearce.org>
torsdag 27 november 2008 22:49:16 skrev Shawn O. Pearce:
Show 9 quoted lines
> Robin Rosenberg <robin.rosenberg@dewire.com> 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.
Show 6 quoted lines
> 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.
Show 7 quoted lines
> 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.
Show 11 quoted lines
> > > 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