[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 12/21] libqtest: add in-process qtest.c tx/rx handlers
From: |
Alexander Bulekov |
Subject: |
Re: [PATCH v6 12/21] libqtest: add in-process qtest.c tx/rx handlers |
Date: |
Sun, 5 Jan 2020 14:55:44 -0500 |
User-agent: |
NeoMutt/20180716 |
On 200103 1115, Stefan Hajnoczi wrote:
> On Fri, Nov 29, 2019 at 09:34:47PM +0000, Oleinik, Alexander wrote:
> > +QTestState *qtest_inproc_init(QTestState **s, bool log, const char* arch,
> > + void (*send)(void*, const char*))
> > +{
> > + QTestState *qts;
> > + qts = g_new0(QTestState, 1);
> > + *s = qts; /* Expose qts early on, since the query endianness relies on
> > it */
> > + qts->wstatus = 0;
> > + for (int i = 0; i < MAX_IRQ; i++) {
> > + qts->irq_level[i] = false;
> > + }
> > +
> > + qtest_client_set_rx_handler(qts, qtest_client_inproc_recv_line);
> > +
> > + /* send() may not have a matching protoype, so use a type-safe wrapper
> > */
> > + qts->ops.external_send = send;
> > + qtest_client_set_tx_handler(qts, send_wrapper);
> > +
> > + qts->big_endian = qtest_query_target_endianness(qts);
> > + gchar *bin_path = g_strconcat("/qemu-system-", arch, NULL);
> > + setenv("QTEST_QEMU_BINARY", bin_path, 0);
> > + g_free(bin_path);
>
> Is this a dummy path that is needed to make other code happy? Or does
> the user need to have an actual file at /qemu-system-ARCH?
Yes - with the inproc mode this is only needed to make qtest_get_arch
happy, which simply returns the suffix of the env variable. Standard
qtest initialization relies on it in qtest_init_without_qmp_handshake,
but that function is not used by the fuzzer.