Commit 84cb0a6d authored by Philippe Mathieu-Daudé's avatar Philippe Mathieu-Daudé Committed by Stefan Hajnoczi
Browse files

tests/fuzz: Extract pciconfig_fuzz_qos() method



Extract the generic pciconfig_fuzz_qos() method from
i440fx_fuzz_qos(). This will help to write tests not
specific to the i440FX controller.

Signed-off-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20200514143433.18569-6-philmd@redhat.com
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent 79e18a60
Loading
Loading
Loading
Loading
+14 −6
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ static void i440fx_fuzz_qtest(QTestState *s,
    flush_events(s);
}

static void i440fx_fuzz_qos(QTestState *s,
static void pciconfig_fuzz_qos(QTestState *s, QPCIBus *bus,
        const unsigned char *Data, size_t Size) {
    /*
     * Same as i440fx_fuzz_qtest, but using QOS. devfn is incorporated into the
@@ -97,11 +97,6 @@ static void i440fx_fuzz_qos(QTestState *s,
        uint32_t value;
    } a;

    static QPCIBus *bus;
    if (!bus) {
        bus = qpci_new_pc(s, fuzz_qos_alloc);
    }

    while (Size >= sizeof(a)) {
        memcpy(&a, Data, sizeof(a));
        switch (a.opcode % ACTION_MAX) {
@@ -130,6 +125,19 @@ static void i440fx_fuzz_qos(QTestState *s,
    flush_events(s);
}

static void i440fx_fuzz_qos(QTestState *s,
                            const unsigned char *Data,
                            size_t Size)
{
    static QPCIBus *bus;

    if (!bus) {
        bus = qpci_new_pc(s, fuzz_qos_alloc);
    }

    pciconfig_fuzz_qos(s, bus, Data, Size);
}

static void i440fx_fuzz_qos_fork(QTestState *s,
        const unsigned char *Data, size_t Size) {
    if (fork() == 0) {