[PATCH v5 00/16] qemu_iotests: improve debugging options

Emanuele Giuseppe Esposito posted 16 patches 2 years, 10 months ago
Failed in applying to current master (apply log)
There is a newer version of this series
docs/devel/testing.rst         | 30 ++++++++++++++++++++
python/qemu/machine/machine.py | 16 +++++++----
python/qemu/machine/qtest.py   |  9 ++++--
python/setup.cfg               |  5 ++++
tests/qemu-iotests/check       | 15 +++++++---
tests/qemu-iotests/common.rc   |  8 +++++-
tests/qemu-iotests/iotests.py  | 52 ++++++++++++++++++++++++++++++++--
tests/qemu-iotests/testenv.py  | 23 +++++++++++++--
8 files changed, 141 insertions(+), 17 deletions(-)
[PATCH v5 00/16] qemu_iotests: improve debugging options
Posted by Emanuele Giuseppe Esposito 2 years, 10 months ago
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-9 introduce the -gdb option to both python and bash tests, 
10-14 extend the already existing -valgrind flag to work also on 
python tests, and patch 15-16 introduces -p to enable logging to stdout.

In particular, patches 1,6,11 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.

It is also based on "iotests/check: move general long options to double dash"
by Vladimir Sementsov-Ogievskiy.

Based-on: <20210526181659.365531-1-vsementsov@virtuozzo.com>

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
---
v5:
* base this serie on the double dash options, so define --gdb instead of -gdb
* return error if -gdb and -valgrind are used together [Vladimir]
* style changes (do not use subprocess_check_valgrind() but do the operation
  inside the caller) [Vladimir]
* minor fixes in commit messages [Vladimir]
* create a common public function in patch 15 instead of using
  _private fields [Vladimir]
* use @contextmanager in patch 6 to skip gdb timeouts involving the
  Timeout class [Vladimir]
* apply John Snow patch to silence pylint warning in the CI tests

Emanuele Giuseppe Esposito (15):
  python: qemu: add timer parameter for qmp.accept socket
  python: qemu: pass the wrapper field from QEMUQtestmachine to
    QEMUMachine
  docs/devel/testing: add debug section to the QEMU iotests chapter
  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
  docs/devel/testing: add --gdb option to the debugging section of QEMU
    iotests
  qemu-iotests: extend the check script to prepare supporting valgrind
    for python tests
  qemu-iotests: extend QMP socket timeout when using valgrind
  qemu-iotests: allow valgrind to read/delete the generated log file
  qemu-iotests: insert valgrind command line as wrapper for qemu binary
  docs/devel/testing: add --valgrind option to the debug section of QEMU
    iotests
  qemu-iotests: add option to show qemu binary logs on stdout
  docs/devel/testing: add -p option to the debug section of QEMU iotests

John Snow (1):
  python: Reduce strictness of pylint's duplicate-code check

 docs/devel/testing.rst         | 30 ++++++++++++++++++++
 python/qemu/machine/machine.py | 16 +++++++----
 python/qemu/machine/qtest.py   |  9 ++++--
 python/setup.cfg               |  5 ++++
 tests/qemu-iotests/check       | 15 +++++++---
 tests/qemu-iotests/common.rc   |  8 +++++-
 tests/qemu-iotests/iotests.py  | 52 ++++++++++++++++++++++++++++++++--
 tests/qemu-iotests/testenv.py  | 23 +++++++++++++--
 8 files changed, 141 insertions(+), 17 deletions(-)

-- 
2.30.2


Re: [PATCH v5 00/16] qemu_iotests: improve debugging options
Posted by Emanuele Giuseppe Esposito 2 years, 10 months ago

On 04/06/2021 11:17, Emanuele Giuseppe Esposito wrote:
> 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-9 introduce the -gdb option to both python and bash tests,
> 10-14 extend the already existing -valgrind flag to work also on
> python tests, and patch 15-16 introduces -p to enable logging to stdout.
> 
> In particular, patches 1,6,11 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.
> 
> It is also based on "iotests/check: move general long options to double dash"
> by Vladimir Sementsov-Ogievskiy.

Apologies to all the people following this series,

I realized that there is a discussion[*] on whether to use the 
"--option" notation vs "-option".

Therefore I am going to re-send this series without Vladimir's based-on 
(also because I got all necessary reviews, so it should be ready to be 
merged).

Thank you,
Emanuele

[*] = 
https://patchew.org/QEMU/20210526181659.365531-1-vsementsov@virtuozzo.com/#955ce8e3-eafe-79ab-ad4e-f81ecf08d20f@virtuozzo.com
> 
> Based-on: <20210526181659.365531-1-vsementsov@virtuozzo.com>
> 
> Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
> ---
> v5:
> * base this serie on the double dash options, so define --gdb instead of -gdb
> * return error if -gdb and -valgrind are used together [Vladimir]
> * style changes (do not use subprocess_check_valgrind() but do the operation
>    inside the caller) [Vladimir]
> * minor fixes in commit messages [Vladimir]
> * create a common public function in patch 15 instead of using
>    _private fields [Vladimir]
> * use @contextmanager in patch 6 to skip gdb timeouts involving the
>    Timeout class [Vladimir]
> * apply John Snow patch to silence pylint warning in the CI tests
> 
> Emanuele Giuseppe Esposito (15):
>    python: qemu: add timer parameter for qmp.accept socket
>    python: qemu: pass the wrapper field from QEMUQtestmachine to
>      QEMUMachine
>    docs/devel/testing: add debug section to the QEMU iotests chapter
>    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
>    docs/devel/testing: add --gdb option to the debugging section of QEMU
>      iotests
>    qemu-iotests: extend the check script to prepare supporting valgrind
>      for python tests
>    qemu-iotests: extend QMP socket timeout when using valgrind
>    qemu-iotests: allow valgrind to read/delete the generated log file
>    qemu-iotests: insert valgrind command line as wrapper for qemu binary
>    docs/devel/testing: add --valgrind option to the debug section of QEMU
>      iotests
>    qemu-iotests: add option to show qemu binary logs on stdout
>    docs/devel/testing: add -p option to the debug section of QEMU iotests
> 
> John Snow (1):
>    python: Reduce strictness of pylint's duplicate-code check
> 
>   docs/devel/testing.rst         | 30 ++++++++++++++++++++
>   python/qemu/machine/machine.py | 16 +++++++----
>   python/qemu/machine/qtest.py   |  9 ++++--
>   python/setup.cfg               |  5 ++++
>   tests/qemu-iotests/check       | 15 +++++++---
>   tests/qemu-iotests/common.rc   |  8 +++++-
>   tests/qemu-iotests/iotests.py  | 52 ++++++++++++++++++++++++++++++++--
>   tests/qemu-iotests/testenv.py  | 23 +++++++++++++--
>   8 files changed, 141 insertions(+), 17 deletions(-)
>