On Thu, May 22, 2008 at 06:28:25PM +0100, Daniel P. Berrange wrote:
This patch adds more helper functions to the tests/testutils.c file
which
make it trivial to verify OOM handling in our test suites.
It provides a virtTestMain() function which is the main driver. This is
given the original argc, argv and a function callback representing the
test suite to run. Next, instead of a test suite defining a 'main()'
function itself, it calls it something else like 'mymain()', and then
declared VIRT_TEST_MAIN(mymain). This will cause the test suite to be
run via the generic helper.
In normal use the virtTestMain() function simply calls mymain() directly
and everything runs as it does now.
If you set the VIR_TEST_OOM environment variable to a positive integer
it'll perform OOM testing. The value of the variable is the number of
consequtive allocations to fails. eg VIR_TEST_OOM=1 will only fail a
single allocation each time, while VIR_TEST_OOM=5 will fail batches
of 5 allocations.
As described in the previous patch, the way it works is
- Run mymain() and get a count of allocations
- Foreach n in count
- Schedule the n'th alocation to fail
- Run mymain() and validate that it returns EXIT_FAILURE
So, now you can do
VIR_TEST_OOM=1 make check
And it'll perform OOM checking on any test suite leveraging this testutils
infrastructure. You can also do it directly on individual testsuites
VIR_TEST_OOM=1 ./qparamstest
okay, sounds cool. The problem is to make realistic testing while
systematic one would explodes time-wise. I guess the 1 setting is probably
sufficient
Patch looks fine to me, +1
Daniel
--
Red Hat Virtualization group
http://redhat.com/virtualization/
Daniel Veillard | virtualization library
http://libvirt.org/
veillard(a)redhat.com | libxml GNOME XML XSLT toolkit
http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine
http://rpmfind.net/