• Rusty Russell's avatar
    failtest: save and restore file state inside child (on-demand) · 67bbee53
    Rusty Russell authored
    We currently save all files in the parent, and restore them once
    the child is gone.  That doesn't work in a case where the child
    manipulates a file the parent doesn't currently have open, so
    switch to a model where the child cleans itself up, using the
    already-existing cleanup callbacks.
    
    This means that we need to undo much more, especially restoring
    file offsets.  We also need to handle the case where we've already
    closed the file, and now we're cleaning up.  As a bonus, we now
    handle open() with O_TRUNC properly.
    
    The cleanup function now has two modes: one simply frees (so valgrind
    doesn't complain about failtest leaking so the user can see real leaks
    in their programs), the other restores things so the parent sees no
    changes.
    67bbee53
run-open.c 1.78 KB