FuzzerRunner.cpp |
libFuzzer uses exit() calls in several places instead of returning,
so the destructor of ScopedXPCOM is not called in some cases.
For fuzzing, this does not make a difference, but in debug builds
when running a single testcase, this causes an assertion when destroying
global linked lists. For this reason, we allocate ScopedXPCOM on the heap
using the global InitLibFuzzer class, combined with an atexit call to
destroy the ScopedXPCOM instance again.
|
3058 |
FuzzerRunner.h |
|
581 |
FuzzerTestHarness.h |
Test harness for XPCOM objects, providing a scoped XPCOM initializer,
nsCOMPtr, nsRefPtr, do_CreateInstance, do_GetService, ns(Auto|C|)String,
and stdio.h/stdlib.h.
|
7592 |
moz.build |
|
433 |