mbox series

[RFC,v2,00/11] qemu_iotests: improve debugging options

Message ID 20210407135021.48330-1-eesposit@redhat.com (mailing list archive)
Headers show
Series qemu_iotests: improve debugging options | expand

Message

Emanuele Giuseppe Esposito April 7, 2021, 1:50 p.m. UTC
This series adds the option to attach gdbserver and valgrind
to the QEMU binary running in qemu_iotests.
It also allows to redirect QEMU binaries output of the python tests
to the stdout, instead of a log file.

Patches 1-6 introduce the -gdb option to both python and bash tests, 
7-10 extend the already existing -valgrind flag to work also on 
python tests, and patch 11 introduces -p to enable logging to stdout.

In particular, patches 1,2,4,8 focus on extending the QMP socket timers
when using gdb/valgrind, otherwise the python tests will fail due to
delays in the QMP responses.

This series is tested on the previous serie
"qemu-iotests: quality of life improvements"
but independent from it, so it can be applied separately.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
---
v2:
- add valgrind and print patches
- better splitup of patches, and clearer commit messages

Emanuele Giuseppe Esposito (11):
  python: qemu: add timer parameter for qmp.accept socket
  python: qemu: pass the wrapper field from QEMUQtestmachine to
    QEMUMachine
  qemu-iotests: add option to attach gdbserver
  qemu-iotests: delay QMP socket timers
  qemu_iotests: insert gdbserver command line as wrapper for qemu binary
  qemu-iotests: add gdbserver option to script tests too
  qemu_iotests: extend the check script to support valgrind for python
    tests
  qemu_iotests: extent QMP socket timeout when using valgrind
  qemu_iotests: allow valgrint to print/delete the generated log file
  qemu_iotests: insert valgrind command line as wrapper for qemu binary
  qemu_iotests: add option to show qemu binary logs on stdout

 python/qemu/machine.py        | 12 ++++--
 python/qemu/qtest.py          |  8 ++--
 tests/qemu-iotests/check      |  7 +++-
 tests/qemu-iotests/common.rc  |  8 +++-
 tests/qemu-iotests/iotests.py | 69 ++++++++++++++++++++++++++++++++---
 tests/qemu-iotests/testenv.py | 24 ++++++++++--
 6 files changed, 111 insertions(+), 17 deletions(-)

Comments

Markus Armbruster April 8, 2021, 8:26 a.m. UTC | #1
Emanuele Giuseppe Esposito <eesposit@redhat.com> writes:

> This series adds the option to attach gdbserver and valgrind
> to the QEMU binary running in qemu_iotests.
> It also allows to redirect QEMU binaries output of the python tests
> to the stdout, instead of a log file.
>
> Patches 1-6 introduce the -gdb option to both python and bash tests, 
> 7-10 extend the already existing -valgrind flag to work also on 
> python tests, and patch 11 introduces -p to enable logging to stdout.
>
> In particular, patches 1,2,4,8 focus on extending the QMP socket timers
> when using gdb/valgrind, otherwise the python tests will fail due to
> delays in the QMP responses.
>
> This series is tested on the previous serie
> "qemu-iotests: quality of life improvements"
> but independent from it, so it can be applied separately.
>
> Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>

How discoverable are these goodies for developers with only superficial
knowledge of iotests?
Emanuele Giuseppe Esposito April 8, 2021, 11:15 a.m. UTC | #2
On 08/04/2021 10:26, Markus Armbruster wrote:
> Emanuele Giuseppe Esposito <eesposit@redhat.com> writes:
> 
>> This series adds the option to attach gdbserver and valgrind
>> to the QEMU binary running in qemu_iotests.
>> It also allows to redirect QEMU binaries output of the python tests
>> to the stdout, instead of a log file.
>>
>> Patches 1-6 introduce the -gdb option to both python and bash tests,
>> 7-10 extend the already existing -valgrind flag to work also on
>> python tests, and patch 11 introduces -p to enable logging to stdout.
>>
>> In particular, patches 1,2,4,8 focus on extending the QMP socket timers
>> when using gdb/valgrind, otherwise the python tests will fail due to
>> delays in the QMP responses.
>>
>> This series is tested on the previous serie
>> "qemu-iotests: quality of life improvements"
>> but independent from it, so it can be applied separately.
>>
>> Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
> 
> How discoverable are these goodies for developers with only superficial
> knowledge of iotests?
> 

Not really sure what you mean, but

./check --help now shows:

> -p         enable prints
> -gdb       start gdbserver with $GDB_QEMU options. Default is localhost:12345

Which I guess should be clear enough? Btw two-three weeks ago I didn't 
know anything about these tests either.

I agree I can make -p more clear, saying "enable qemu binary prints to 
stdout", and move -valgrind to the "optional arguments" instead of 
"bash-only"

Emanuele
Markus Armbruster April 8, 2021, 12:39 p.m. UTC | #3
Emanuele Giuseppe Esposito <eesposit@redhat.com> writes:

> On 08/04/2021 10:26, Markus Armbruster wrote:
>> Emanuele Giuseppe Esposito <eesposit@redhat.com> writes:
>> 
>>> This series adds the option to attach gdbserver and valgrind
>>> to the QEMU binary running in qemu_iotests.
>>> It also allows to redirect QEMU binaries output of the python tests
>>> to the stdout, instead of a log file.
>>>
>>> Patches 1-6 introduce the -gdb option to both python and bash tests,
>>> 7-10 extend the already existing -valgrind flag to work also on
>>> python tests, and patch 11 introduces -p to enable logging to stdout.
>>>
>>> In particular, patches 1,2,4,8 focus on extending the QMP socket timers
>>> when using gdb/valgrind, otherwise the python tests will fail due to
>>> delays in the QMP responses.
>>>
>>> This series is tested on the previous serie
>>> "qemu-iotests: quality of life improvements"
>>> but independent from it, so it can be applied separately.
>>>
>>> Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
>> 
>> How discoverable are these goodies for developers with only superficial
>> knowledge of iotests?
>> 
>
> Not really sure what you mean, but
>
> ./check --help now shows:
>
>> -p         enable prints
>> -gdb       start gdbserver with $GDB_QEMU options. Default is localhost:12345
>
> Which I guess should be clear enough? Btw two-three weeks ago I didn't 
> know anything about these tests either.
>
> I agree I can make -p more clear, saying "enable qemu binary prints to 
> stdout", and move -valgrind to the "optional arguments" instead of 
> "bash-only"

Yes, please (this is not a demand).

docs/devel/testing.rst section "QEMU iotests" is the place to explain
things in more detail than --help, if that's useful.  Right now it
simply points to check -h.
Emanuele Giuseppe Esposito April 8, 2021, 1:41 p.m. UTC | #4
On 08/04/2021 14:39, Markus Armbruster wrote:
> Emanuele Giuseppe Esposito <eesposit@redhat.com> writes:
> 
>> On 08/04/2021 10:26, Markus Armbruster wrote:
>>> Emanuele Giuseppe Esposito <eesposit@redhat.com> writes:
>>>
>>>> This series adds the option to attach gdbserver and valgrind
>>>> to the QEMU binary running in qemu_iotests.
>>>> It also allows to redirect QEMU binaries output of the python tests
>>>> to the stdout, instead of a log file.
>>>>
>>>> Patches 1-6 introduce the -gdb option to both python and bash tests,
>>>> 7-10 extend the already existing -valgrind flag to work also on
>>>> python tests, and patch 11 introduces -p to enable logging to stdout.
>>>>
>>>> In particular, patches 1,2,4,8 focus on extending the QMP socket timers
>>>> when using gdb/valgrind, otherwise the python tests will fail due to
>>>> delays in the QMP responses.
>>>>
>>>> This series is tested on the previous serie
>>>> "qemu-iotests: quality of life improvements"
>>>> but independent from it, so it can be applied separately.
>>>>
>>>> Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
>>>
>>> How discoverable are these goodies for developers with only superficial
>>> knowledge of iotests?
>>>
>>
>> Not really sure what you mean, but
>>
>> ./check --help now shows:
>>
>>> -p         enable prints
>>> -gdb       start gdbserver with $GDB_QEMU options. Default is localhost:12345
>>
>> Which I guess should be clear enough? Btw two-three weeks ago I didn't
>> know anything about these tests either.
>>
>> I agree I can make -p more clear, saying "enable qemu binary prints to
>> stdout", and move -valgrind to the "optional arguments" instead of
>> "bash-only"
> 
> Yes, please (this is not a demand).
> 
> docs/devel/testing.rst section "QEMU iotests" is the place to explain
> things in more detail than --help, if that's useful.  Right now it
> simply points to check -h.
> 

Ok, I will add a new section in testing.rst explaining the new flags.

Thank you,
Emanuele