Commit dfd5ddb5 authored by Alexander Bulekov's avatar Alexander Bulekov Committed by Stefan Hajnoczi
Browse files

fuzz: run the main-loop in fork-server process



Without this, the time since the last main-loop keeps increasing, as the
fuzzer runs. The forked children need to handle all the "past-due"
timers, slowing them down, over time. With this change, the
parent/fork-server process runs the main-loop, while waiting on the
child, ensuring that the timer events do not pile up, over time.

Signed-off-by: default avatarAlexander Bulekov <alxndr@bu.edu>
Reviewed-by: default avatarDarren Kenny <darren.kenny@oracle.com>
Message-id: 20200512030133.29896-5-alxndr@bu.edu
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent 3b113229
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -151,6 +151,7 @@ static void i440fx_fuzz_qos_fork(QTestState *s,
        i440fx_fuzz_qos(s, Data, Size);
        _Exit(0);
    } else {
        flush_events(s);
        wait(NULL);
    }
}
+2 −0
Original line number Diff line number Diff line
@@ -122,6 +122,7 @@ static void virtio_net_fork_fuzz(QTestState *s,
        flush_events(s);
        _Exit(0);
    } else {
        flush_events(s);
        wait(NULL);
    }
}
@@ -134,6 +135,7 @@ static void virtio_net_fork_fuzz_check_used(QTestState *s,
        flush_events(s);
        _Exit(0);
    } else {
        flush_events(s);
        wait(NULL);
    }
}
+2 −0
Original line number Diff line number Diff line
@@ -145,6 +145,7 @@ static void virtio_scsi_fork_fuzz(QTestState *s,
        flush_events(s);
        _Exit(0);
    } else {
        flush_events(s);
        wait(NULL);
    }
}
@@ -164,6 +165,7 @@ static void virtio_scsi_with_flag_fuzz(QTestState *s,
        }
        _Exit(0);
    } else {
        flush_events(s);
        wait(NULL);
    }
}