On Thu, May 22, 2008 at 06:17:27PM +0100, Daniel P. Berrange wrote: > This patch adds extra code to src/memory.c which allows us to force an OOM > condition on specific allocations. This is not code you *ever* want to use > in a production build, so its all conditional on TEST_OOM, which is enabled > by passing --enable-test-oom to the configure script. > > The hooks work as follows... > > - The test suite first calls virAllocTestInit() to initialize the hooks. > This causes it to start counting allocations. > > ....then run the code you want to check for OOM... > > - Next call virAllocTestCount() to find out how many allocations were > made. > > - Given a number of allocations 'n', we need to repeat 'n' times... > > - Call virAllocTestOOM(n, m) to tell it to fail the n'th allocation > upto the (n + m -1)'th allocation. eg, virAllocTestOOM(3, 2) > will cause allocations 3 and 4 to fail. > > ... run the code you want to check and verify it reports OOM > in the way you expect. > > > It can be quite hard to find out just where allocation failure bugs are > hiding. So there is also a virAllocTestHook() function which lets you > register a callback to be invoked at the time an allocation is artificially > failed. Obvious use for this is to capture a stack trace. Fine by me. +1 Daniel -- Red Hat Virtualization group http://redhat.com/virtualization/ Daniel Veillard | virtualization library http://libvirt.org/ veillard@xxxxxxxxxx | libxml GNOME XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list