[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 08/12] tests/9pfs: refactor test names and test devices
From: |
Paolo Bonzini |
Subject: |
Re: [PATCH 08/12] tests/9pfs: refactor test names and test devices |
Date: |
Thu, 1 Oct 2020 16:04:39 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 |
On 01/10/20 14:15, Christian Schoenebeck wrote:
> On Donnerstag, 1. Oktober 2020 13:56:42 CEST Paolo Bonzini wrote:
>> On 01/10/20 13:34, Christian Schoenebeck wrote:
>>> Paolo, I'm back at square one after changing to single-device model as you
>>> suggested:
>>>
>>> GTest: run:
>>> /x86_64/pc/i440FX-pcihost/pci-bus-pc/pci-bus/virtio-9p-pci/pci-
>>> device/pci-device-tests/nop
>>> Run QEMU with: '-M pc -device virtio-9p-pci'
>>> (MSG: starting QEMU: exec x86_64-softmmu/qemu-system-x86_64 -qtest
>>> unix:/tmp/ qtest-18032.sock -qtest-log /dev/null -chardev
>>> socket,path=/tmp/
>>> qtest-18032.qmp,id=char0 -mon chardev=char0,mode=control -display none -M
>>> pc -device virtio-9p-pci -accel qtest)
>>> qemu-system-x86_64: -device virtio-9p-pci: 9pfs device couldn't find fsdev
>>> with the id = NULL
>>> Broken pipe
>>>
>>> This fundamental virtio-9p-pci test obviously needs a complete 9p command
>>> line, that is either a 'synth' driver one, or a 'local' one. But simply
>>> either picking one or another is inappropriate here. This test should run
>>> once for 'synth' and once for 'local'.
>>
>> You're right, this is in fact also a problem for virtio-blk and virtio-net:
>>
>> /* FIXME: every test using these two nodes needs to setup a
>> * -drive,id=drive0 otherwise QEMU is not going to start.
>> * Therefore, we do not include "produces" edge for virtio
>> * and pci-device yet.
>> */
>>
>> /* FIXME: every test using these nodes needs to setup a
>> * -netdev socket,id=hs0 otherwise QEMU is not going to start.
>> * Therefore, we do not include "produces" edge for virtio
>> * and pci-device yet.
>> */
>>
>> I still think we should do it like this, because it's closer to the way
>> that libqos will work long term.
>
> Could you please elaborate why that long term plan bites with the working
> solution I provided? [patches 1 and 2]
Because the long term plan is to have a socket/plug mechanism for
backends where the device can provide a default backend to plug.
The suggested solution is all good for *a different use case*, namely to
test the same device with different options. It is just wrong for the
purpose of selecting a frontend.
It occurred to me that you could also add a default backend to the
command line with "-fsdev" (in the libqos driver), and use -set in the
test to override it. This is ugly (-set is ugly!) but it would let you
keep the tests, so it would probably be the best solution.
Paolo