Emilio G. Cota <c...@braap.org> writes:
> Perform first the tests that exercise code paths that are > easier to hit at small table sizes, and then resize the table > to speed up subsequent tests. If this resize is not too large, > we can make the test faster with no code coverage loss. > > - With gcov enabled: > > Before: 20.568s, 90.28% qht.c coverage > After: 5.168s, 93.06% qht.c coverage > > The coverage increase is entirely due to calling qht_resize, > which we weren't calling before. Note that the code paths > that remain to be tested are either error handling or > can only occur when several threads are accessing the > hash table concurrently (e.g. seqlock retry, trylock fail). > > - Without gcov: > > Before: 1.987s > After: 0.528s > > The speedup is almost the same as with gcov, although the > "before" run is a lot faster. > > Signed-off-by: Emilio G. Cota <c...@braap.org> Reviewed-by: Alex Bennée <alex.ben...@linaro.org> > --- > tests/test-qht.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/tests/test-qht.c b/tests/test-qht.c > index 77666e8c5f..1ec039d636 100644 > --- a/tests/test-qht.c > +++ b/tests/test-qht.c > @@ -189,6 +189,10 @@ static void qht_do_test(unsigned int mode, size_t > init_entries) > rm_nonexist(7, 8); > iter_rm_mod(1); > > + if (!(mode & QHT_MODE_AUTO_RESIZE)) { > + qht_resize(&ht, init_entries * 4 + 4); > + } > + > check_n(0); > rm_nonexist(0, 10); > insert(0, N); -- Alex Bennée