[Qemu-devel] [PATCH v2 0/3] script for crash-testing -device

Eduardo Habkost posted 3 patches 6 years, 11 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170513033316.22395-1-ehabkost@redhat.com
Test checkpatch failed
Test docker passed
Test s390x passed
There is a newer version of this series
scripts/device-crash-test.py | 520 +++++++++++++++++++++++++++++++++++++++++++
scripts/qemu.py              |  16 +-
2 files changed, 531 insertions(+), 5 deletions(-)
create mode 100755 scripts/device-crash-test.py
[Qemu-devel] [PATCH v2 0/3] script for crash-testing -device
Posted by Eduardo Habkost 6 years, 11 months ago
Changes v1 -> v2:
* Use a simpler method to query QEMU exit code in qemu.py
* Use only qemu.py module, instead of qtest.py
* New whitelist entries:
  * "could not find stage1 bootloader"
  * Segfaults when using devices: a15mpcore_priv, sb16, cs4231a, arm-gicv3
* Format "success" line using formatTestCase(), and using DEBUG
  loglevel
* Reword "test case:" line with "running test case:", for clarity
* Fix "pc-.*" whitelist to include "q35" too
* Add --devtype option to test only a specific device type
* Send all log messages to stdout instead of stderr
* Avoid printing "obsolete whitelist entry?" messages if we know
  we are not testing every single accel/machine/device
  combination
* --quick mode, to skip cases where failures are always expected,
  and to print a warning in case we don't get an expected failure
* Use qemu.QEMUMachine instead of qtest.QEMUQtestMachine, as we don't
  use any of the QEMUQtestMachine features
* Fix handling of multiple '-t' options
* Simplify code that generate random sample of test cases

This series adds scripts/device-crashtest.py, that can be used to
crash-test -device with multiple machine/accel/device
combinations.

The script found a few crashes on some machines/devices. A dump
of existing cases can be seen here:
  https://gist.github.com/ehabkost/503b0af0375f0d98d3e84017e8ca54eb

The script contains a whitelist that can also be useful as
documentation of existing ways -device can fail or crash.

Note that the script takes a few hours to run on the default mode
(testing all accel/machine/device combinations), but the "-r N"
option can be used to make it only test N random samples.

Example script output:

  $ ../scripts/device-crash-test.py -v --shuffle
  INFO: test case: machine=verdex binary=./aarch64-softmmu/qemu-system-aarch64 device=exynos4210-ehci-usb accel=tcg
  INFO: test case: machine=none binary=./aarch64-softmmu/qemu-system-aarch64 device=onenand accel=tcg
  INFO: test case: machine=pc-i440fx-2.2 binary=./x86_64-softmmu/qemu-system-x86_64 device=ide-cd accel=kvm
  INFO: success: ./x86_64-softmmu/qemu-system-x86_64 -S -machine pc-i440fx-2.2,accel=kvm -device ide-cd
  INFO: test case: machine=SPARCClassic binary=./sparc-softmmu/qemu-system-sparc device=memory accel=tcg
  qemu received signal 6: -S -machine SPARCClassic,accel=tcg -device memory
  ERROR: failed: machine=SPARCClassic binary=./sparc-softmmu/qemu-system-sparc device=memory accel=tcg
  ERROR: cmdline: ./sparc-softmmu/qemu-system-sparc -S -machine SPARCClassic,accel=tcg -device memory
  ERROR: log: qemu-system-sparc: /root/qemu-build/exec.c:1500: find_ram_offset: Assertion `size != 0' failed.
  ERROR: exit code: -6
  INFO: test case: machine=romulus-bmc binary=./arm-softmmu/qemu-system-arm device=ich9-usb-uhci6 accel=tcg
  INFO: test case: machine=ref405ep binary=./ppc-softmmu/qemu-system-ppc device=ivshmem-doorbell accel=tcg
  INFO: test case: machine=romulus-bmc binary=./aarch64-softmmu/qemu-system-aarch64 device=l2x0 accel=tcg
  INFO: test case: machine=pc-i440fx-1.7 binary=./x86_64-softmmu/qemu-system-x86_64 device=virtio-input-host-pci accel=tcg
  INFO: test case: machine=none binary=./ppc-softmmu/qemu-system-ppc device=virtio-tablet-pci accel=tcg
  INFO: test case: machine=terrier binary=./aarch64-softmmu/qemu-system-aarch64 device=sst25vf016b accel=tcg
  INFO: success: ./aarch64-softmmu/qemu-system-aarch64 -S -machine terrier,accel=tcg -device sst25vf016b
  INFO: test case: machine=none binary=./i386-softmmu/qemu-system-i386 device=intel-iommu accel=kvm
  qemu received signal 6: -S -machine none,accel=kvm -device intel-iommu
  ERROR: failed: machine=none binary=./i386-softmmu/qemu-system-i386 device=intel-iommu accel=kvm
  ERROR: cmdline: ./i386-softmmu/qemu-system-i386 -S -machine none,accel=kvm -device intel-iommu
  ERROR: log: /root/qemu-build/hw/i386/intel_iommu.c:2565:vtd_realize: Object 0x7fe117fabfb0 is not an instance of type generic-pc-machine
  ERROR: exit code: -6
  INFO: test case: machine=tosa binary=./aarch64-softmmu/qemu-system-aarch64 device=integrator_core accel=tcg
  INFO: test case: machine=isapc binary=./i386-softmmu/qemu-system-i386 device=i82550 accel=kvm
  INFO: test case: machine=xlnx-ep108 binary=./aarch64-softmmu/qemu-system-aarch64 device=digic accel=tcg
  qemu received signal 6: -S -machine xlnx-ep108,accel=tcg -device digic
  ERROR: failed: machine=xlnx-ep108 binary=./aarch64-softmmu/qemu-system-aarch64 device=digic accel=tcg
  ERROR: cmdline: ./aarch64-softmmu/qemu-system-aarch64 -S -machine xlnx-ep108,accel=tcg -device digic
  ERROR: log: audio: Could not init `oss' audio driver
  ERROR: log: Unexpected error in qemu_chr_fe_init() at /root/qemu-build/chardev/char.c:512:
  ERROR: log: qemu-system-aarch64: -device digic: Device 'serial0' is in use
  ERROR: exit code: -6
  INFO: test case: machine=raspi2 binary=./arm-softmmu/qemu-system-arm device=sd-card accel=tcg
  INFO: success: ./arm-softmmu/qemu-system-arm -S -machine raspi2,accel=tcg -device sd-card
  [...]

Eduardo Habkost (3):
  qemu.py: Don't set _popen=None on error/shutdown
  qemu.py: Add QEMUMachine.exitcode() method
  scripts: Test script to look for -device crashes

 scripts/device-crash-test.py | 520 +++++++++++++++++++++++++++++++++++++++++++
 scripts/qemu.py              |  16 +-
 2 files changed, 531 insertions(+), 5 deletions(-)
 create mode 100755 scripts/device-crash-test.py

-- 
2.11.0.259.g40922b1


Re: [Qemu-devel] [PATCH v2 0/3] script for crash-testing -device
Posted by no-reply@patchew.org 6 years, 11 months ago
Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20170513033316.22395-1-ehabkost@redhat.com
Subject: [Qemu-devel] [PATCH v2 0/3] script for crash-testing -device

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
        failed=1
        echo
    fi
    n=$((n+1))
done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
67ffc03 scripts: Test script to look for -device crashes
0be0012 qemu.py: Add QEMUMachine.exitcode() method
2dea278 qemu.py: Don't set _popen=None on error/shutdown

=== OUTPUT BEGIN ===
Checking PATCH 1/3: qemu.py: Don't set _popen=None on error/shutdown...
Checking PATCH 2/3: qemu.py: Add QEMUMachine.exitcode() method...
Checking PATCH 3/3: scripts: Test script to look for -device crashes...
WARNING: line over 80 characters
#82: FILE: scripts/device-crash-test.py:47:
+  dict(machine='niagara', expected=True),       # Unable to load a firmware for -M niagara

ERROR: line over 90 characters
#83: FILE: scripts/device-crash-test.py:48:
+  dict(machine='boston', expected=True),        # Please provide either a -kernel or -bios argument

ERROR: line over 90 characters
#86: FILE: scripts/device-crash-test.py:51:
+  # devices that don't work out of the box because they require extra options to "-device DEV":

WARNING: line over 80 characters
#88: FILE: scripts/device-crash-test.py:53:
+  dict(device='.*-(i386|x86_64)-cpu', expected=True),    # CPU socket-id is not set

WARNING: line over 80 characters
#89: FILE: scripts/device-crash-test.py:54:
+  dict(device='ARM,bitband-memory', expected=True),      # source-memory property not set

ERROR: line over 90 characters
#90: FILE: scripts/device-crash-test.py:55:
+  dict(device='arm.cortex-a9-global-timer', expected=True), # a9_gtimer_realize: num-cpu must be between 1 and 4

WARNING: line over 80 characters
#91: FILE: scripts/device-crash-test.py:56:
+  dict(device='arm_mptimer', expected=True),             # num-cpu must be between 1 and 4

WARNING: line over 80 characters
#92: FILE: scripts/device-crash-test.py:57:
+  dict(device='armv7m', expected=True),                  # memory property was not set

WARNING: line over 80 characters
#93: FILE: scripts/device-crash-test.py:58:
+  dict(device='aspeed.scu', expected=True),              # Unknown silicon revision: 0x0

WARNING: line over 80 characters
#94: FILE: scripts/device-crash-test.py:59:
+  dict(device='aspeed.sdmc', expected=True),             # Unknown silicon revision: 0x0

ERROR: line over 90 characters
#95: FILE: scripts/device-crash-test.py:60:
+  dict(device='bcm2835-dma', expected=True),             # bcm2835_dma_realize: required dma-mr link not found: Property '.dma-mr' not found

ERROR: line over 90 characters
#96: FILE: scripts/device-crash-test.py:61:
+  dict(device='bcm2835-fb', expected=True),              # bcm2835_fb_realize: required vcram-base property not set

ERROR: line over 90 characters
#97: FILE: scripts/device-crash-test.py:62:
+  dict(device='bcm2835-mbox', expected=True),            # bcm2835_mbox_realize: required mbox-mr link not found: Property '.mbox-mr' not found

ERROR: line over 90 characters
#98: FILE: scripts/device-crash-test.py:63:
+  dict(device='bcm2835-peripherals', expected=True),     # bcm2835_peripherals_realize: required ram link not found: Property '.ram' not found

ERROR: line over 90 characters
#99: FILE: scripts/device-crash-test.py:64:
+  dict(device='bcm2835-property', expected=True),        # bcm2835_property_realize: required fb link not found: Property '.fb' not found

ERROR: line over 90 characters
#100: FILE: scripts/device-crash-test.py:65:
+  dict(device='bcm2835_gpio', expected=True),            # bcm2835_gpio_realize: required sdhci link not found: Property '.sdbus-sdhci' not found

ERROR: line over 90 characters
#101: FILE: scripts/device-crash-test.py:66:
+  dict(device='bcm2836', expected=True),                 # bcm2836_realize: required ram link not found: Property '.ram' not found

ERROR: line over 90 characters
#102: FILE: scripts/device-crash-test.py:67:
+  dict(device='cfi.pflash01', expected=True),            # attribute "sector-length" not specified or zero.

ERROR: line over 90 characters
#103: FILE: scripts/device-crash-test.py:68:
+  dict(device='cfi.pflash02', expected=True),            # attribute "sector-length" not specified or zero.

ERROR: line over 90 characters
#104: FILE: scripts/device-crash-test.py:69:
+  dict(device='icp', expected=True),                     # icp_realize: required link 'xics' not found: Property '.xics' not found

ERROR: line over 90 characters
#105: FILE: scripts/device-crash-test.py:70:
+  dict(device='ics', expected=True),                     # ics_base_realize: required link 'xics' not found: Property '.xics' not found

ERROR: line over 90 characters
#108: FILE: scripts/device-crash-test.py:73:
+  dict(device='ipmi-bmc-extern', expected=True),         # IPMI external bmc requires chardev attribute

ERROR: line over 90 characters
#109: FILE: scripts/device-crash-test.py:74:
+  dict(device='isa-debugcon', expected=True),            # Can't create serial device, empty char device

ERROR: line over 90 characters
#110: FILE: scripts/device-crash-test.py:75:
+  dict(device='isa-ipmi-bt', expected=True),             # IPMI device requires a bmc attribute to be set

ERROR: line over 90 characters
#111: FILE: scripts/device-crash-test.py:76:
+  dict(device='isa-ipmi-kcs', expected=True),            # IPMI device requires a bmc attribute to be set

ERROR: line over 90 characters
#112: FILE: scripts/device-crash-test.py:77:
+  dict(device='isa-parallel', expected=True),            # Can't create serial device, empty char device

ERROR: line over 90 characters
#113: FILE: scripts/device-crash-test.py:78:
+  dict(device='isa-serial', expected=True),              # Can't create serial device, empty char device

ERROR: line over 90 characters
#114: FILE: scripts/device-crash-test.py:79:
+  dict(device='ivshmem', expected=True),                 # You must specify either 'shm' or 'chardev'

WARNING: line over 80 characters
#115: FILE: scripts/device-crash-test.py:80:
+  dict(device='ivshmem-doorbell', expected=True),        # You must specify a 'chardev'

WARNING: line over 80 characters
#116: FILE: scripts/device-crash-test.py:81:
+  dict(device='ivshmem-plain', expected=True),           # You must specify a 'memdev'

WARNING: line over 80 characters
#117: FILE: scripts/device-crash-test.py:82:
+  dict(device='kvm-pci-assign', expected=True),          # no host device specified

WARNING: line over 80 characters
#118: FILE: scripts/device-crash-test.py:83:
+  dict(device='loader', expected=True),                  # please include valid arguments

ERROR: line over 90 characters
#119: FILE: scripts/device-crash-test.py:84:
+  dict(device='nand', expected=True),                    #' Unsupported NAND block size 0x1

WARNING: line over 80 characters
#120: FILE: scripts/device-crash-test.py:85:
+  dict(device='nvdimm', expected=True),                  # 'memdev' property is not set

WARNING: line over 80 characters
#121: FILE: scripts/device-crash-test.py:86:
+  dict(device='nvme', expected=True),                    # Device initialization failed

WARNING: line over 80 characters
#122: FILE: scripts/device-crash-test.py:87:
+  dict(device='pc-dimm', expected=True),                 # 'memdev' property is not set

ERROR: line over 90 characters
#123: FILE: scripts/device-crash-test.py:88:
+  dict(device='pci-bridge', expected=True),              # Bridge chassis not specified. Each bridge is required to be assigned a unique chassis id > 0.

ERROR: line over 90 characters
#124: FILE: scripts/device-crash-test.py:89:
+  dict(device='pci-bridge-seat', expected=True),         # Bridge chassis not specified. Each bridge is required to be assigned a unique chassis id > 0.

ERROR: line over 90 characters
#125: FILE: scripts/device-crash-test.py:90:
+  dict(device='pci-serial', expected=True),              # Can't create serial device, empty char device

ERROR: line over 90 characters
#126: FILE: scripts/device-crash-test.py:91:
+  dict(device='pci-serial-2x', expected=True),           # Can't create serial device, empty char device

ERROR: line over 90 characters
#127: FILE: scripts/device-crash-test.py:92:
+  dict(device='pci-serial-4x', expected=True),           # Can't create serial device, empty char device

WARNING: line over 80 characters
#128: FILE: scripts/device-crash-test.py:93:
+  dict(device='pxa2xx-dma', expected=True),              # channels value invalid

ERROR: line over 90 characters
#129: FILE: scripts/device-crash-test.py:94:
+  dict(device='pxb', expected=True),                     # Bridge chassis not specified. Each bridge is required to be assigned a unique chassis id > 0.

WARNING: line over 80 characters
#130: FILE: scripts/device-crash-test.py:95:
+  dict(device='scsi-block', expected=True),              # drive property not set

WARNING: line over 80 characters
#131: FILE: scripts/device-crash-test.py:96:
+  dict(device='scsi-disk', expected=True),               # drive property not set

WARNING: line over 80 characters
#132: FILE: scripts/device-crash-test.py:97:
+  dict(device='scsi-generic', expected=True),            # drive property not set

WARNING: line over 80 characters
#133: FILE: scripts/device-crash-test.py:98:
+  dict(device='scsi-hd', expected=True),                 # drive property not set

WARNING: line over 80 characters
#134: FILE: scripts/device-crash-test.py:99:
+  dict(device='spapr-pci-host-bridge', expected=True),   # BUID not specified for PHB

WARNING: line over 80 characters
#135: FILE: scripts/device-crash-test.py:100:
+  dict(device='spapr-pci-vfio-host-bridge', expected=True), # BUID not specified for PHB

ERROR: line over 90 characters
#136: FILE: scripts/device-crash-test.py:101:
+  dict(device='spapr-rng', expected=True),               #' spapr-rng needs an RNG backend!

WARNING: line over 80 characters
#137: FILE: scripts/device-crash-test.py:102:
+  dict(device='spapr-vty', expected=True),               # chardev property not set

ERROR: line over 90 characters
#138: FILE: scripts/device-crash-test.py:103:
+  dict(device='tpm-tis', expected=True),                 # tpm_tis: backend driver with id (null) could not be found

ERROR: line over 90 characters
#139: FILE: scripts/device-crash-test.py:104:
+  dict(device='unimplemented-device', expected=True),    # property 'size' not specified or zero

WARNING: line over 80 characters
#140: FILE: scripts/device-crash-test.py:105:
+  dict(device='usb-braille', expected=True),             # Property chardev is required

ERROR: line over 90 characters
#141: FILE: scripts/device-crash-test.py:106:
+  dict(device='usb-mtp', expected=True),                 # x-root property must be configured

WARNING: line over 80 characters
#142: FILE: scripts/device-crash-test.py:107:
+  dict(device='usb-redir', expected=True),               # Parameter 'chardev' is missing

WARNING: line over 80 characters
#143: FILE: scripts/device-crash-test.py:108:
+  dict(device='usb-serial', expected=True),              # Property chardev is required

WARNING: line over 80 characters
#144: FILE: scripts/device-crash-test.py:109:
+  dict(device='usb-storage', expected=True),             # drive property not set

ERROR: line over 90 characters
#145: FILE: scripts/device-crash-test.py:110:
+  dict(device='vfio-amd-xgbe', expected=True),           # -device vfio-amd-xgbe: vfio error: wrong host device name

ERROR: line over 90 characters
#146: FILE: scripts/device-crash-test.py:111:
+  dict(device='vfio-calxeda-xgmac', expected=True),      # -device vfio-calxeda-xgmac: vfio error: wrong host device name

WARNING: line over 80 characters
#147: FILE: scripts/device-crash-test.py:112:
+  dict(device='vfio-pci', expected=True),                # No provided host device

ERROR: line over 90 characters
#148: FILE: scripts/device-crash-test.py:113:
+  dict(device='vfio-pci-igd-lpc-bridge', expected=True), # VFIO dummy ISA/LPC bridge must have address 1f.0

WARNING: line over 80 characters
#149: FILE: scripts/device-crash-test.py:114:
+  dict(device='vhost-scsi.*', expected=True),            # vhost-scsi: missing wwpn

ERROR: line over 90 characters
#150: FILE: scripts/device-crash-test.py:115:
+  dict(device='vhost-vsock-device', expected=True),      # guest-cid property must be greater than 2

ERROR: line over 90 characters
#151: FILE: scripts/device-crash-test.py:116:
+  dict(device='vhost-vsock-pci', expected=True),         # guest-cid property must be greater than 2

ERROR: line over 90 characters
#152: FILE: scripts/device-crash-test.py:117:
+  dict(device='virtio-9p-ccw', expected=True),           # 9pfs device couldn't find fsdev with the id = NULL

ERROR: line over 90 characters
#153: FILE: scripts/device-crash-test.py:118:
+  dict(device='virtio-9p-device', expected=True),        # 9pfs device couldn't find fsdev with the id = NULL

ERROR: line over 90 characters
#154: FILE: scripts/device-crash-test.py:119:
+  dict(device='virtio-9p-pci', expected=True),           # 9pfs device couldn't find fsdev with the id = NULL

WARNING: line over 80 characters
#155: FILE: scripts/device-crash-test.py:120:
+  dict(device='virtio-blk-ccw', expected=True),          # drive property not set

WARNING: line over 80 characters
#156: FILE: scripts/device-crash-test.py:121:
+  dict(device='virtio-blk-device', expected=True),       # drive property not set

WARNING: line over 80 characters
#157: FILE: scripts/device-crash-test.py:122:
+  dict(device='virtio-blk-device', expected=True),       # drive property not set

WARNING: line over 80 characters
#158: FILE: scripts/device-crash-test.py:123:
+  dict(device='virtio-blk-pci', expected=True),          # drive property not set

ERROR: line over 90 characters
#159: FILE: scripts/device-crash-test.py:124:
+  dict(device='virtio-crypto-ccw', expected=True),       # 'cryptodev' parameter expects a valid object

ERROR: line over 90 characters
#160: FILE: scripts/device-crash-test.py:125:
+  dict(device='virtio-crypto-device', expected=True),    # 'cryptodev' parameter expects a valid object

ERROR: line over 90 characters
#161: FILE: scripts/device-crash-test.py:126:
+  dict(device='virtio-crypto-pci', expected=True),       # 'cryptodev' parameter expects a valid object

WARNING: line over 80 characters
#162: FILE: scripts/device-crash-test.py:127:
+  dict(device='virtio-input-host-device', expected=True), # evdev property is required

WARNING: line over 80 characters
#163: FILE: scripts/device-crash-test.py:128:
+  dict(device='virtio-input-host-pci', expected=True),   # evdev property is required

ERROR: line over 90 characters
#164: FILE: scripts/device-crash-test.py:129:
+  dict(device='xen-pvdevice', expected=True),            # Device ID invalid, it must always be supplied

ERROR: line over 90 characters
#165: FILE: scripts/device-crash-test.py:130:
+  dict(device='vhost-vsock-ccw', expected=True),         # guest-cid property must be greater than 2

ERROR: line over 90 characters
#166: FILE: scripts/device-crash-test.py:131:
+  dict(device='ALTR.timer', expected=True),              # "clock-frequency" property must be provided

WARNING: line over 80 characters
#167: FILE: scripts/device-crash-test.py:132:
+  dict(device='zpci', expected=True),                    # target must be defined

WARNING: line over 80 characters
#170: FILE: scripts/device-crash-test.py:135:
+  dict(machine='q35|pc.*', device='kvm-ioapic', expected=True), # Only 1 ioapics allowed

WARNING: line over 80 characters
#171: FILE: scripts/device-crash-test.py:136:
+  dict(machine='q35|pc.*', device='ioapic', expected=True),     # Only 1 ioapics allowed

ERROR: line over 90 characters
#184: FILE: scripts/device-crash-test.py:149:
+  dict(exitcode=-6, log=r"spapr_rtas_register: Assertion .*rtas_table\[token\]\.name.* failed", loglevel=logging.ERROR),

ERROR: line over 90 characters
#185: FILE: scripts/device-crash-test.py:150:
+  dict(exitcode=-6, log=r"qemu_net_client_setup: Assertion `!peer->peer' failed", loglevel=logging.ERROR),

WARNING: line over 80 characters
#186: FILE: scripts/device-crash-test.py:151:
+  dict(exitcode=-6, log=r'RAMBlock "[\w.-]+" already registered', loglevel=logging.ERROR),

ERROR: line over 90 characters
#187: FILE: scripts/device-crash-test.py:152:
+  dict(exitcode=-6, log=r"find_ram_offset: Assertion `size != 0' failed.", loglevel=logging.ERROR),

ERROR: line over 90 characters
#188: FILE: scripts/device-crash-test.py:153:
+  dict(exitcode=-6, log=r"puv3_load_kernel: Assertion `kernel_filename != NULL' failed", loglevel=logging.ERROR),

ERROR: line over 90 characters
#189: FILE: scripts/device-crash-test.py:154:
+  dict(exitcode=-6, log=r"add_cpreg_to_hashtable: code should not be reached", loglevel=logging.ERROR),

ERROR: line over 90 characters
#190: FILE: scripts/device-crash-test.py:155:
+  dict(exitcode=-6, log=r"qemu_alloc_display: Assertion `surface->image != NULL' failed", loglevel=logging.ERROR),

ERROR: line over 90 characters
#191: FILE: scripts/device-crash-test.py:156:
+  dict(exitcode=-6, log=r"Unexpected error in error_set_from_qdev_prop_error", loglevel=logging.ERROR),

ERROR: line over 90 characters
#192: FILE: scripts/device-crash-test.py:157:
+  dict(exitcode=-6, log=r"Object .* is not an instance of type spapr-machine", loglevel=logging.ERROR),

ERROR: line over 90 characters
#193: FILE: scripts/device-crash-test.py:158:
+  dict(exitcode=-6, log=r"Object .* is not an instance of type generic-pc-machine", loglevel=logging.ERROR),

ERROR: line over 90 characters
#194: FILE: scripts/device-crash-test.py:159:
+  dict(exitcode=-6, log=r"Object .* is not an instance of type e500-ccsr", loglevel=logging.ERROR),

ERROR: line over 90 characters
#195: FILE: scripts/device-crash-test.py:160:
+  dict(exitcode=-6, log=r"vmstate_register_with_alias_id: Assertion `!se->compat || se->instance_id == 0' failed", loglevel=logging.ERROR),

WARNING: line over 80 characters
#196: FILE: scripts/device-crash-test.py:161:
+  dict(exitcode=-11, device='stm32f205-soc', loglevel=logging.ERROR, expected=True),

WARNING: line over 80 characters
#197: FILE: scripts/device-crash-test.py:162:
+  dict(exitcode=-11, device='xlnx,zynqmp', loglevel=logging.ERROR, expected=True),

WARNING: line over 80 characters
#200: FILE: scripts/device-crash-test.py:165:
+  dict(exitcode=-11, device='a9mpcore_priv', loglevel=logging.ERROR, expected=True),

WARNING: line over 80 characters
#201: FILE: scripts/device-crash-test.py:166:
+  dict(exitcode=-11, device='a15mpcore_priv', loglevel=logging.ERROR, expected=True),

WARNING: line over 80 characters
#202: FILE: scripts/device-crash-test.py:167:
+  dict(exitcode=-11, device='isa-serial', loglevel=logging.ERROR, expected=True),

ERROR: line over 90 characters
#206: FILE: scripts/device-crash-test.py:171:
+  dict(exitcode=-11, machine='isapc', device='.*-iommu', loglevel=logging.ERROR, expected=True),

WARNING: line over 80 characters
#217: FILE: scripts/device-crash-test.py:182:
+  # sysbus-related error messages: most machines reject most dynamic sysbus devices:

ERROR: line over 90 characters
#229: FILE: scripts/device-crash-test.py:194:
+  dict(log=r"sd_init failed: Drive 'sd0' is already in use because it has been automatically connected to another device"),

WARNING: line over 80 characters
#311: FILE: scripts/device-crash-test.py:276:
+            self.alldevs = set(qomListTypeNames(vm, implements=devtype, abstract=False))

WARNING: line over 80 characters
#312: FILE: scripts/device-crash-test.py:277:
+            # there's no way to query cannot_instantiate_with_device_add_yet using QMP,

WARNING: line over 80 characters
#314: FILE: scripts/device-crash-test.py:279:
+            self.no_user_devs = set([d['name'] for d in infoQDM(vm, ) if d['no-user']])

WARNING: line over 80 characters
#315: FILE: scripts/device-crash-test.py:280:
+            self.machines = list(m['name'] for m in vm.command('query-machines'))

WARNING: line over 80 characters
#467: FILE: scripts/device-crash-test.py:432:
+                        help="Quick mode, skip test cases that are expected to fail")

WARNING: line over 80 characters
#478: FILE: scripts/device-crash-test.py:443:
+    logging.basicConfig(stream=sys.stdout, level=lvl, format='%(levelname)s: %(message)s')

total: 59 errors, 50 warnings, 520 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

=== OUTPUT END ===

Test command exited with code: 1


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org