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
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
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
© 2016 - 2024 Red Hat, Inc.