qemu/tests/qemu-iotests
Peter Maydell 673205379f Python patches for 5.1
- Reduce race conditions on QEMUMachine::shutdown()
 
  1. Remove the "bare except" pattern in the existing shutdown code,
     which can mask problems and make debugging difficult.
  2. Ensure that post-shutdown cleanup is always performed, even when
     graceful termination fails.
  3. Unify cleanup paths such that no matter how the VM is terminated,
     the same functions and steps are always taken to reset the object
     state.
  4. Rewrite shutdown() such that any error encountered when attempting
     a graceful shutdown will be raised as an AbnormalShutdown exception.
     The pythonic idiom is to allow the caller to decide if this is a
     problem or not.
 
 - Modify part of the python/qemu library to comply with:
 
   . mypy --strict
   . pylint
   . flake8
 
 - Script for the TCG Continuous Benchmarking project that uses
   callgrind to dissect QEMU execution into three main phases:
 
   . code generation
   . JIT execution
   . helpers execution
 
 CI jobs results:
 . https://cirrus-ci.com/build/5421349961203712
 . https://gitlab.com/philmd/qemu/-/pipelines/166556001
 . https://travis-ci.org/github/philmd/qemu/builds/708102347
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE+qvnXhKRciHc/Wuy4+MsLN6twN4FAl8OGCUACgkQ4+MsLN6t
 wN52ZQ//cB8pRhOeirMzPTamtAePAHhU9kRKSQ4fFzVM/AHxaO3qO3KrMKAv4JnR
 1fwdyAbum0Dv+HrRAXbIVz/lgrlTb6tLqwk20YWlmNUR2CtMmno9fPQzg6LeFWBe
 +qr2/anXWBqRZu5uHzQ3Ly3LxlVXE3qmStxlttNxed9wK9wdhsQ4ijOrExXPmMI5
 IQi9tKijsGvOczcSpIwJET6Px0L/GIYHSFGXfHv4LiJCMQUX4gqY1akr+/2adqlr
 ElcOHlvWG90GHftTC+hq+KbSNmpkwJEnXLHC+HwMaYmQuhH4+U6f9AcrnzYGHjoQ
 84muuYt5CBvT/Q38qO3dUsr42oD8uiDZe2cpD5DmcAHj6U9sza4UwU2Nkd4cNvRD
 OiYRWuHQDzQhwPGbzBym1GRxRlejmPXCpvZ4XqaYODkzhEHi8UVq5AOsNhpTGWVk
 WoDZ3NtnZb9WbU93wDordhWTtHKHOLHNk4CuJLbdRvkW+sg8aFqUObSRvc6RqyU8
 1DXWMMQr9UfCDfMMbp/OCymphn0VrAaixIRIjmYc6nL5mQlyugMwij55jzyugqBH
 rN5bdcsqxAhBTD03lu0lbDn1BYIqbZFXABXeDnJNbxmY/6gD0E1HKWRvIKjxzH+t
 L19QXsOWLoVUpUIjxlOgMlb9QJLPc9m/N3yVOanO0zVrMSBmOKQ=
 =Jp6n
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/philmd-gitlab/tags/python-next-20200714' into staging

Python patches for 5.1

- Reduce race conditions on QEMUMachine::shutdown()

 1. Remove the "bare except" pattern in the existing shutdown code,
    which can mask problems and make debugging difficult.
 2. Ensure that post-shutdown cleanup is always performed, even when
    graceful termination fails.
 3. Unify cleanup paths such that no matter how the VM is terminated,
    the same functions and steps are always taken to reset the object
    state.
 4. Rewrite shutdown() such that any error encountered when attempting
    a graceful shutdown will be raised as an AbnormalShutdown exception.
    The pythonic idiom is to allow the caller to decide if this is a
    problem or not.

- Modify part of the python/qemu library to comply with:

  . mypy --strict
  . pylint
  . flake8

- Script for the TCG Continuous Benchmarking project that uses
  callgrind to dissect QEMU execution into three main phases:

  . code generation
  . JIT execution
  . helpers execution

CI jobs results:
. https://cirrus-ci.com/build/5421349961203712
. https://gitlab.com/philmd/qemu/-/pipelines/166556001
. https://travis-ci.org/github/philmd/qemu/builds/708102347

# gpg: Signature made Tue 14 Jul 2020 21:40:05 BST
# gpg:                using RSA key FAABE75E12917221DCFD6BB2E3E32C2CDEADC0DE
# gpg: Good signature from "Philippe Mathieu-Daudé (F4BUG) <f4bug@amsat.org>" [full]
# Primary key fingerprint: FAAB E75E 1291 7221 DCFD  6BB2 E3E3 2C2C DEAD C0DE

* remotes/philmd-gitlab/tags/python-next-20200714:
  python/qmp.py: add QMPProtocolError
  python/qmp.py: add casts to JSON deserialization
  python/qmp.py: Do not return None from cmd_obj
  python/qmp.py: re-absorb MonitorResponseError
  iotests.py: use qemu.qmp type aliases
  python/qmp.py: Define common types
  python/machine.py: change default wait timeout to 3 seconds
  python/machine.py: re-add sigkill warning suppression
  python/machine.py: split shutdown into hard and soft flavors
  tests/acceptance: Don't test reboot on cubieboard
  tests/acceptance: wait() instead of shutdown() where appropriate
  python/machine.py: Make wait() call shutdown()
  python/machine.py: Add a configurable timeout to shutdown()
  python/machine.py: Prohibit multiple shutdown() calls
  python/machine.py: Perform early cleanup for wait() calls, too
  python/machine.py: Add _early_cleanup hook
  python/machine.py: Close QMP socket in cleanup
  python/machine.py: consolidate _post_shutdown()
  scripts/performance: Add dissect.py script

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2020-07-15 13:04:27 +01:00
..
001
2020-05-05 13:17:36 +02:00
002
003
004
005
007
008
009
010
011
012
013
014
015
021
022
023
025
026
027
029
031
032
033
035
036
044
045
047
048
049
052
2020-05-05 13:17:36 +02:00
053
054
057
058
062
063
064
065
2020-05-13 14:20:31 +02:00
066
067
068
070
071
072
074
075
076
077
078
079
080
2020-05-13 14:20:31 +02:00
081
083
084
086
087
2020-07-06 08:49:28 +02:00
088
090
091
2020-05-08 13:26:35 +02:00
092
093
094
096
099
101
102
103
104
105
107
108
111
112
114
2020-07-14 15:24:05 +02:00
115
116
117
119
120
121
123
124
128
130
131
132
134
2020-05-05 13:17:36 +02:00
135
136
137
138
140
144
145
147
148
2020-05-08 13:26:35 +02:00
149
2020-05-05 13:17:36 +02:00
150
151
152
157
159
160
162
163
165
169
170
171
2020-06-23 16:07:07 +02:00
173
174
178
2020-07-06 08:49:28 +02:00
2020-05-28 13:15:23 -05:00
181
182
183
184
185
186
187
188
2020-07-06 08:49:28 +02:00
192
196
197
199
200
201
202
2020-05-05 13:17:36 +02:00
203
2020-05-05 13:17:36 +02:00
205
206
2020-07-06 08:49:28 +02:00
207
2020-05-05 13:17:36 +02:00
208
2020-05-05 13:17:36 +02:00
209
2020-05-05 13:17:36 +02:00
210
2020-05-05 13:17:36 +02:00
211
2020-05-05 13:17:36 +02:00
212
2020-05-05 13:17:36 +02:00
213
2020-05-05 13:17:36 +02:00
214
215
217
218
2020-05-05 13:17:36 +02:00
219
2020-05-05 13:17:36 +02:00
220
221
222
2020-05-05 13:17:36 +02:00
226
227
229
2020-06-17 16:21:21 +02:00
231
232
233
234
2020-05-05 13:17:36 +02:00
235
2020-05-05 13:17:36 +02:00
236
2020-05-05 13:17:36 +02:00
237
2020-05-05 13:17:36 +02:00
238
2020-05-05 13:17:36 +02:00
239
240
241
242
2020-05-05 13:17:36 +02:00
246
2020-05-05 13:17:36 +02:00
247
248
2020-05-05 13:17:36 +02:00
250
251
253
254
2020-05-05 13:17:36 +02:00
255
2020-05-05 13:17:36 +02:00
256
2020-05-05 13:17:36 +02:00
258
2020-05-05 13:17:36 +02:00
259
260
2020-05-05 13:17:36 +02:00
261
262
2020-05-05 13:17:36 +02:00
263
2020-07-06 08:49:28 +02:00
264
2020-05-05 13:17:36 +02:00
265
266
268
272
277
2020-05-05 13:17:36 +02:00
280
2020-05-05 13:17:36 +02:00
281
282
284
2020-07-06 08:49:28 +02:00
286
288
289
291
2020-06-24 10:00:04 +02:00
292
2020-06-17 16:21:21 +02:00
295
2020-07-06 08:49:28 +02:00
2020-07-06 08:49:28 +02:00
296
2020-07-06 08:49:28 +02:00
2020-07-06 08:49:28 +02:00
297
2020-05-18 19:05:25 +02:00
301
2020-07-14 15:18:59 +02:00
2020-07-06 08:49:28 +02:00
2020-07-14 15:18:59 +02:00

=== This is the QEMU I/O test suite ===

* Intro

This package contains a simple test suite for the I/O layer of qemu.
It does not require a guest, but only the qemu, qemu-img and qemu-io
binaries.  This does limit it to exercise the low-level I/O path only
but no actual block drivers like ide, scsi or virtio.

* Usage

Just run ./check to run all tests for the raw image format, or ./check
-qcow2 to test the qcow2 image format.  The output of ./check -h explains
additional options to test further image formats or I/O methods.

* Feedback and patches

Please send improvements to the test suite, general feedback or just
reports of failing tests cases to qemu-devel@nongnu.org with a CC:
to qemu-block@nongnu.org.