Make the XmParser config test runtime more consistent
authorIustin Pop <iustin@google.com>
Thu, 28 Feb 2013 10:31:35 +0000 (11:31 +0100)
committerIustin Pop <iustin@google.com>
Mon, 4 Mar 2013 16:39:37 +0000 (17:39 +0100)
commit1fe0e999e3d389d8daab79fa228e86dd6d2ea866
tree9c4d663ad9063ff18c193696a34af07736209a15
parenta7e76dc36d6518e891af2fc91d6bd52646bb121b
Make the XmParser config test runtime more consistent

Currently, the test uses a frequency of 5 string/5 double/1 list for
generating Arbitrary instances of ListConfig. However, the list case
has simply a "choose (1, 20)" `vectorOf` arbitrary, which means it
could recurse forever.

Manually running only this test gives runtime as such:

- ~100-200ms: very often
- ~1-2s: often
- ~5s: rare
- ~20s: very rare (but I hit this when running < 30 times the test,
  so…)

On average, this makes this test one of the slowest ones, which is
annoying.

By changing to a sized generator, we can control the depth of the
recursion, ensuring that we have a consistent runtime: out of 100
runs, one is 229ms, one is 164ms, the other are 80-120ms.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
test/hs/Test/Ganeti/Hypervisor/Xen/XmParser.hs