/*
 * QTest fuzzer-generated testcase for xlnx-dp display device
 *
 * Copyright (c) 2021 Qiang Liu <cyruscyliu@gmail.com>
 *
 * SPDX-License-Identifier: GPL-2.0-or-later
 */

#include "qemu/osdep.h"
#include "libqos/libqtest.h"

/*
 * This used to trigger the out-of-bounds read in xlnx_dp_read
 */
static void test_fuzz_xlnx_dp_0x3ac(void)
{
    QTestState *s = qtest_init("-M xlnx-zcu102 -display none ");
    qtest_readl(s, 0xfd4a03ac);
    qtest_quit(s);
}

int main(int argc, char **argv)
{
    const char *arch = qtest_get_arch();

    g_test_init(&argc, &argv, NULL);

   if (strcmp(arch, "aarch64") == 0) {
        qtest_add_func("fuzz/test_fuzz_xlnx_dp/3ac", test_fuzz_xlnx_dp_0x3ac);
   }

   return g_test_run();
}
