scripts/qemu.py | 112 +++-- scripts/qmp/qmp.py | 16 +- scripts/validator.py | 724 +++++++++++++++++++++++++++++++++ tests/validator/cpu.yaml | 5 + tests/validator/device-add.yaml | 17 + tests/validator/device-crash-test.yaml | 7 + tests/validator/device-help.yaml | 3 + tests/validator/device-introspect.yaml | 23 ++ tests/validator/device-list.yaml | 10 + tests/validator/just-help.yaml | 3 + 10 files changed, 876 insertions(+), 44 deletions(-) create mode 100755 scripts/validator.py create mode 100644 tests/validator/cpu.yaml create mode 100644 tests/validator/device-add.yaml create mode 100644 tests/validator/device-crash-test.yaml create mode 100644 tests/validator/device-help.yaml create mode 100644 tests/validator/device-introspect.yaml create mode 100644 tests/validator/device-list.yaml create mode 100644 tests/validator/just-help.yaml
Rationale
---------
Today we have a few test cases in the QEMU tree that just run
QEMU with a few command-line options, run some QMP or HMP
commands, and check if QEMU didn't crash.
Some examples:
* scripts/device-crash-test
* The test case suggested by Thomas at:
Subject: [RFC PATCH] tests: Add a device_add/del HMP test
* Some test cases in tests/device-introspect-test.c
* tests/cpu-plug-test.c
* tests/display-vga-test.c
* tests/drive_del-test.c
* tests/machine-none-test.c
* tests/test-hmp.c
* Some device test skeletons: ac97-test.c, e1000-test.c,
eepro100-test.c, es1370-test.c, i82801b11-test.c,
intel-hda-test.c, ioh3420-test.c, ipoctal232-test.c,
ne2000-test.c, nvme-test.c, pcnet-test.c, spapr-phb-test.c,
test-netfilter.c, tpci200-test.c, usb-hcd-ohci-test.c,
usb-hcd-xhci-test.c, virtio-balloon-test.c,
virtio-console-test.c, virtio-serial-test.c, vmxnet3-test.c.
All of those test cases require lots of boilerplate code just to
run some combinations of QEMU command-line options and monitor
commands.
In addition to that, writing and reviewing test code like the
examples above is more complex than it could be. Some past
examples from qemu-devel:
* Subject: [RFC 5/6] device-crash-test: Basic device_add support
* Subject: [RFC 6/6] device-crash-test: Multi-device device_add test
* Subject: [RFC PATCH] tests/device-introspect: Test devices with all machines,
not only with "none"
The Proposal
------------
This series introduces the scripts/validator.py test runner, and
a set of example test specifications in tests/validator.
Each test specification is a YAML file containing the QEMU
command-line and monitor commands to run, and can contain
variables like $MACHINE, $DEVICE, $CPU, that can be expanded
automatically by the test runner.
This way, scripts/device-crash-test can be replaced by a one-line
test specification:
command-line: '$QEMU -S -machine $MACHINE,accel=$ACCEL -device $DEVICE'
The device_add/device_del test case written by Thomas can be specified as:
command-line: '$QEMU -S -machine $MACHINE,accel=$ACCEL'
monitor-commands:
- qmp:
- execute: 'device_add'
arguments:
driver: '$DEVICE'
id: 'test-device-for-$DEVICE'
- execute: 'device_del'
arguments:
id: 'test-device-for-$DEVICE'
and the test runner will take care of running test cases with
with all valid machine-types, device-types, and accelerators.
For other examples, see the last patch in this series
("Collection of validator.py test cases"). Most of the examples
replace existing C or Python test cases with simple declarative
test specifications.
I expect this to be very useful when somebody is fixing a QEMU
crash and just want to add a very simple reproducer to ensure the
crash will never be introduced again.
(I actually suggest we _require_ people to include a
tests/validator test specifications every time they fix a crash
that can be reproduced using just QMP commands).
Features
--------
Current features:
* Automatic variable expansion, as described above
* A simple method to specify defaults (e.g. to test only
"-machine none" or only "accel=kvm:tcg" unless running in --full mode)
* A simple method to represent expected failures (it can't
replace the device-crash-test whitelist mechanism, yet)
Caveats
-------
The test runner code still needs some clean up. I'm not happy with the current
variable enumeration/expansion code, and plan to make it cleaner.
How to test
-----------
You can run all example test cases on /usr/bin/qemu-system-x86_64 with:
$ ./scripts/validator.py tests/validator/* -V QEMU=/usr/bin/qemu-system-x86_64
However, the device-crash-test.yaml test specification still
takes too long to run and reports too many false positives. So I
suggest doing this instead:
$ ./scripts/validator.py $(ls tests/validator/* | grep -v device-crash-test) \
-V QEMU=/usr/bin/qemu-system-x86_64
On my system, this runs ~700 test cases in ~15 seconds.
What's out of scope?
--------------------
The following are _not_ goals of this system:
* Replacing the work done by the Avocado team to support
Avocado-based tests.
* Making the YAML test specification a fully-featured imperative
language. Anything that requires extra logic still needs to be
written in C or Python.
Future Plans
------------
Short term:
* Choose a better name for the test runner
* Support a list of known-failures similar to the whitelist
in device-crash-test.
* Replace device-crash-test completely
* "make check" rules
Long term:
* stdout and QMP command output validation.
I plan to use this to write machine-type/guest-ABI
compatibility test cases that will detect guest ABI breakage as
soon as possible.
* See if the Avocado multiplexer API can be used to implement
variable expansion.
* See if we can make some of the features (e.g. automatic
variable expansion) available to Python test cases
* Fuzzing QMP commands and QEMU command-line arguments.
* See if code can be shared with the iotests test
runner (especially the variable expansion logic)
Eduardo Habkost (18):
qmp.py: Make it safe to call close() any time
qmp.py: Fix error handling for Python 3
qmp.py: Cleanly handle unexpectedly closed socket
qemu.py: Make _vm_monitor a method
qemu.py: Split _base_args()
qemu.py: Move _load_io_log() call to _post_shutdown()
qemu.py: Use wait() logic inside shutdown()
qemu.py: Close _qmp inside _post_shutdown()
qemu.py: Make monitor optional
qemu.py: Set _launched = False on _post_shutdown
qemu.py: Log crashes inside _post_shutdown()
qemu.py: Only wait for process if it's still running
qemu.py: 'force' parameter on shutdown()
qemu.py: Don't try to quit cleanly on exceptions
qemu.py: qmp_obj() method
qemu.py: is_launched() method
validator.py script
Collection of validator.py test cases
scripts/qemu.py | 112 +++--
scripts/qmp/qmp.py | 16 +-
scripts/validator.py | 724 +++++++++++++++++++++++++++++++++
tests/validator/cpu.yaml | 5 +
tests/validator/device-add.yaml | 17 +
tests/validator/device-crash-test.yaml | 7 +
tests/validator/device-help.yaml | 3 +
tests/validator/device-introspect.yaml | 23 ++
tests/validator/device-list.yaml | 10 +
tests/validator/just-help.yaml | 3 +
10 files changed, 876 insertions(+), 44 deletions(-)
create mode 100755 scripts/validator.py
create mode 100644 tests/validator/cpu.yaml
create mode 100644 tests/validator/device-add.yaml
create mode 100644 tests/validator/device-crash-test.yaml
create mode 100644 tests/validator/device-help.yaml
create mode 100644 tests/validator/device-introspect.yaml
create mode 100644 tests/validator/device-list.yaml
create mode 100644 tests/validator/just-help.yaml
--
2.14.3
Hi,
This series seems to have some coding style problems. See output below for
more information:
Type: series
Message-id: 20180329213857.15499-1-ehabkost@redhat.com
Subject: [Qemu-devel] [RFC 00/18] QEMU validator: A method to specify QEMU crash-test cases
=== 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
git config --local diff.algorithm histogram
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
From https://github.com/patchew-project/qemu
t [tag update] patchew/20180330170209.20627-1-rkagan@virtuozzo.com -> patchew/20180330170209.20627-1-rkagan@virtuozzo.com
* [new tag] patchew/20180330195928.15607-1-jcmvbkbc@gmail.com -> patchew/20180330195928.15607-1-jcmvbkbc@gmail.com
Switched to a new branch 'test'
0fdb1a2f05 Collection of validator.py test cases
962c7b9a45 validator.py script
11125125d8 qemu.py: is_launched() method
e7b9360fc7 qemu.py: qmp_obj() method
04f1d03e56 qemu.py: Don't try to quit cleanly on exceptions
b504207869 qemu.py: 'force' parameter on shutdown()
9cfedb7337 qemu.py: Only wait for process if it's still running
8c7e843d6e qemu.py: Log crashes inside _post_shutdown()
992c1b6bb2 qemu.py: Set _launched = False on _post_shutdown
9e4bcb4215 qemu.py: Make monitor optional
4d78dabfe2 qemu.py: Close _qmp inside _post_shutdown()
3937ce28e2 qemu.py: Use wait() logic inside shutdown()
c2b5140e3d qemu.py: Move _load_io_log() call to _post_shutdown()
a20254c9e0 qemu.py: Split _base_args()
bb5e609a6b qemu.py: Make _vm_monitor a method
a571feea0c qmp.py: Cleanly handle unexpectedly closed socket
9a92759c0c qmp.py: Fix error handling for Python 3
1f8f56095d qmp.py: Make it safe to call close() any time
=== OUTPUT BEGIN ===
Checking PATCH 1/18: qmp.py: Make it safe to call close() any time...
Checking PATCH 2/18: qmp.py: Fix error handling for Python 3...
Checking PATCH 3/18: qmp.py: Cleanly handle unexpectedly closed socket...
Checking PATCH 4/18: qemu.py: Make _vm_monitor a method...
Checking PATCH 5/18: qemu.py: Split _base_args()...
Checking PATCH 6/18: qemu.py: Move _load_io_log() call to _post_shutdown()...
Checking PATCH 7/18: qemu.py: Use wait() logic inside shutdown()...
Checking PATCH 8/18: qemu.py: Close _qmp inside _post_shutdown()...
Checking PATCH 9/18: qemu.py: Make monitor optional...
Checking PATCH 10/18: qemu.py: Set _launched = False on _post_shutdown...
Checking PATCH 11/18: qemu.py: Log crashes inside _post_shutdown()...
Checking PATCH 12/18: qemu.py: Only wait for process if it's still running...
Checking PATCH 13/18: qemu.py: 'force' parameter on shutdown()...
Checking PATCH 14/18: qemu.py: Don't try to quit cleanly on exceptions...
Checking PATCH 15/18: qemu.py: qmp_obj() method...
Checking PATCH 16/18: qemu.py: is_launched() method...
Checking PATCH 17/18: validator.py script...
WARNING: line over 80 characters
#188: FILE: scripts/validator.py:169:
+ self.alldevs = qom_type_names(vm, implements='device', abstract=False)
WARNING: line over 80 characters
#191: FILE: scripts/validator.py:172:
+ self.no_user_devs = [d['name'] for d in info_qdm(vm, ) if d['no-user']]
WARNING: line over 80 characters
#193: FILE: scripts/validator.py:174:
+ self.user_devs = [dev for dev in self.alldevs if dev not in self.no_user_devs]
WARNING: line over 80 characters
#195: FILE: scripts/validator.py:176:
+ self.cpu_models = [c['name'] for c in vm.command('query-cpu-definitions')]
ERROR: line over 90 characters
#301: FILE: scripts/validator.py:282:
+ >>> list(tc) == [{'a':[i], 'b':[j], 'c':[100, 200, 300]} for i in [1,2] for j in [10, 20]]
ERROR: line over 90 characters
#362: FILE: scripts/validator.py:343:
+ self._vars = dict((v, getattr(BuiltinVars, v)()) for v in dir(BuiltinVars) if not v.startswith('_'))
WARNING: line over 80 characters
#372: FILE: scripts/validator.py:353:
+ Default values override the values returned by VariableDefinition.enumerate()
WARNING: line over 80 characters
#392: FILE: scripts/validator.py:373:
+ """Return full list of variables, including dependencies in the right order
ERROR: line over 90 characters
#411: FILE: scripts/validator.py:392:
+ raise Exception("Variable dependency cycle: %s" % (' -> '.join(vars.keys())))
ERROR: line over 90 characters
#530: FILE: scripts/validator.py:511:
+ vars = vars_for_template(self.get('command-line')) + vars_for_template(self.get('monitor-commands'))
WARNING: line over 80 characters
#548: FILE: scripts/validator.py:529:
+ return ' '.join('%s=%s' % (k, shquote(v)) for k,v in self.values.items())
WARNING: line over 80 characters
#588: FILE: scripts/validator.py:569:
+ raise InvalidSpecification("Invalid monitor command: %r: %r" % (k, v))
ERROR: line over 90 characters
#688: FILE: scripts/validator.py:669:
+ help="Run all test case combinations, not just the default for the test specification")
ERROR: line over 90 characters
#702: FILE: scripts/validator.py:683:
+ logging.basicConfig(stream=sys.stdout, level=args.loglevel, format='%(levelname)s: %(message)s')
total: 6 errors, 8 warnings, 724 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.
Checking PATCH 18/18: Collection of validator.py test cases...
=== OUTPUT END ===
Test command exited with code: 1
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Hi, This series failed docker-build@min-glib build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. N/A. Internal error while reading log file --- Email generated automatically by Patchew [http://patchew.org/]. Please send your feedback to patchew-devel@redhat.com
[/var]/tmp full due to some jobs not cleaning well their workspaces? On 03/31/2018 06:04 AM, no-reply@patchew.org wrote: > Hi, > > This series failed docker-build@min-glib build test. Please find the testing commands and > their output below. If you have Docker installed, you can probably reproduce it > locally. > > N/A. Internal error while reading log file > > > > --- > Email generated automatically by Patchew [http://patchew.org/]. > Please send your feedback to patchew-devel@redhat.com > _______________________________________________ Patchew-devel mailing list Patchew-devel@redhat.com https://www.redhat.com/mailman/listinfo/patchew-devel
On Mon, Apr 2, 2018 at 7:10 AM, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote: > [/var]/tmp full due to some jobs not cleaning well their workspaces? Somehow our "make check" now keeps hanging in the container, preventing it from being cleaned up correctly... Will try to find time for it this week. Fam > > On 03/31/2018 06:04 AM, no-reply@patchew.org wrote: >> Hi, >> >> This series failed docker-build@min-glib build test. Please find the testing commands and >> their output below. If you have Docker installed, you can probably reproduce it >> locally. >> >> N/A. Internal error while reading log file >> >> >> >> --- >> Email generated automatically by Patchew [http://patchew.org/]. >> Please send your feedback to patchew-devel@redhat.com >> _______________________________________________ Patchew-devel mailing list Patchew-devel@redhat.com https://www.redhat.com/mailman/listinfo/patchew-devel
Hi,
This series failed docker-quick@centos6 build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.
Type: series
Message-id: 20180329213857.15499-1-ehabkost@redhat.com
Subject: [Qemu-devel] [RFC 00/18] QEMU validator: A method to specify QEMU crash-test cases
=== TEST SCRIPT BEGIN ===
#!/bin/bash
set -e
git submodule update --init dtc
# Let docker tests dump environment info
export SHOW_ENV=1
export J=8
time make docker-test-quick@centos6
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
0fdb1a2f05 Collection of validator.py test cases
962c7b9a45 validator.py script
11125125d8 qemu.py: is_launched() method
e7b9360fc7 qemu.py: qmp_obj() method
04f1d03e56 qemu.py: Don't try to quit cleanly on exceptions
b504207869 qemu.py: 'force' parameter on shutdown()
9cfedb7337 qemu.py: Only wait for process if it's still running
8c7e843d6e qemu.py: Log crashes inside _post_shutdown()
992c1b6bb2 qemu.py: Set _launched = False on _post_shutdown
9e4bcb4215 qemu.py: Make monitor optional
4d78dabfe2 qemu.py: Close _qmp inside _post_shutdown()
3937ce28e2 qemu.py: Use wait() logic inside shutdown()
c2b5140e3d qemu.py: Move _load_io_log() call to _post_shutdown()
a20254c9e0 qemu.py: Split _base_args()
bb5e609a6b qemu.py: Make _vm_monitor a method
a571feea0c qmp.py: Cleanly handle unexpectedly closed socket
9a92759c0c qmp.py: Fix error handling for Python 3
1f8f56095d qmp.py: Make it safe to call close() any time
=== OUTPUT BEGIN ===
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-_gt5exqw/src/dtc'...
Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42'
BUILD centos6
make[1]: Entering directory '/var/tmp/patchew-tester-tmp-_gt5exqw/src'
GEN /var/tmp/patchew-tester-tmp-_gt5exqw/src/docker-src.2018-03-31-04.37.05.10200/qemu.tar
Cloning into '/var/tmp/patchew-tester-tmp-_gt5exqw/src/docker-src.2018-03-31-04.37.05.10200/qemu.tar.vroot'...
done.
Checking out files: 44% (2693/6074)
Checking out files: 45% (2734/6074)
Checking out files: 46% (2795/6074)
Checking out files: 47% (2855/6074)
Checking out files: 47% (2882/6074)
Checking out files: 48% (2916/6074)
Checking out files: 49% (2977/6074)
Checking out files: 50% (3037/6074)
Checking out files: 51% (3098/6074)
Checking out files: 52% (3159/6074)
Checking out files: 53% (3220/6074)
Checking out files: 54% (3280/6074)
Checking out files: 55% (3341/6074)
Checking out files: 56% (3402/6074)
Checking out files: 57% (3463/6074)
Checking out files: 58% (3523/6074)
Checking out files: 59% (3584/6074)
Checking out files: 60% (3645/6074)
Checking out files: 61% (3706/6074)
Checking out files: 62% (3766/6074)
Checking out files: 63% (3827/6074)
Checking out files: 64% (3888/6074)
Checking out files: 65% (3949/6074)
Checking out files: 66% (4009/6074)
Checking out files: 67% (4070/6074)
Checking out files: 68% (4131/6074)
Checking out files: 69% (4192/6074)
Checking out files: 70% (4252/6074)
Checking out files: 71% (4313/6074)
Checking out files: 72% (4374/6074)
Checking out files: 73% (4435/6074)
Checking out files: 74% (4495/6074)
Checking out files: 75% (4556/6074)
Checking out files: 76% (4617/6074)
Checking out files: 77% (4677/6074)
Checking out files: 78% (4738/6074)
Checking out files: 79% (4799/6074)
Checking out files: 80% (4860/6074)
Checking out files: 81% (4920/6074)
Checking out files: 82% (4981/6074)
Checking out files: 83% (5042/6074)
Checking out files: 84% (5103/6074)
Checking out files: 85% (5163/6074)
Checking out files: 86% (5224/6074)
Checking out files: 86% (5278/6074)
Checking out files: 87% (5285/6074)
Checking out files: 88% (5346/6074)
Checking out files: 89% (5406/6074)
Checking out files: 90% (5467/6074)
Checking out files: 91% (5528/6074)
Checking out files: 92% (5589/6074)
Checking out files: 93% (5649/6074)
Checking out files: 94% (5710/6074)
Checking out files: 95% (5771/6074)
Checking out files: 96% (5832/6074)
Checking out files: 97% (5892/6074)
Checking out files: 98% (5953/6074)
Checking out files: 99% (6014/6074)
Checking out files: 100% (6074/6074)
Checking out files: 100% (6074/6074), done.
Your branch is up-to-date with 'origin/test'.
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-_gt5exqw/src/docker-src.2018-03-31-04.37.05.10200/qemu.tar.vroot/dtc'...
Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42'
Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb'
Cloning into '/var/tmp/patchew-tester-tmp-_gt5exqw/src/docker-src.2018-03-31-04.37.05.10200/qemu.tar.vroot/ui/keycodemapdb'...
Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce'
tar: /var/tmp/patchew-tester-tmp-_gt5exqw/src/docker-src.2018-03-31-04.37.05.10200/qemu.tar: Wrote only 2048 of 10240 bytes
tar: Error is not recoverable: exiting now
failed to create tar file
COPY RUNNER
RUN test-quick in qemu:centos6
tar: Unexpected EOF in archive
tar: rmtlseek not stopped at a record boundary
tar: Error is not recoverable: exiting now
/var/tmp/qemu/run: line 32: prep_fail: command not found
Packages installed:
SDL-devel-1.2.14-7.el6_7.1.x86_64
bison-2.4.1-5.el6.x86_64
bzip2-devel-1.0.5-7.el6_0.x86_64
ccache-3.1.6-2.el6.x86_64
csnappy-devel-0-6.20150729gitd7bc683.el6.x86_64
flex-2.5.35-9.el6.x86_64
gcc-4.4.7-18.el6.x86_64
gettext-0.17-18.el6.x86_64
git-1.7.1-9.el6_9.x86_64
glib2-devel-2.28.8-9.el6.x86_64
libepoxy-devel-1.2-3.el6.x86_64
libfdt-devel-1.4.0-1.el6.x86_64
librdmacm-devel-1.0.21-0.el6.x86_64
lzo-devel-2.03-3.1.el6_5.1.x86_64
make-3.81-23.el6.x86_64
mesa-libEGL-devel-11.0.7-4.el6.x86_64
mesa-libgbm-devel-11.0.7-4.el6.x86_64
package g++ is not installed
pixman-devel-0.32.8-1.el6.x86_64
spice-glib-devel-0.26-8.el6.x86_64
spice-server-devel-0.12.4-16.el6.x86_64
tar-1.23-15.el6_8.x86_64
vte-devel-0.25.1-9.el6.x86_64
xen-devel-4.6.6-2.el6.x86_64
zlib-devel-1.2.3-29.el6.x86_64
Environment variables:
PACKAGES=bison bzip2-devel ccache csnappy-devel flex g++ gcc gettext git glib2-devel libepoxy-devel libfdt-devel librdmacm-devel lzo-devel make mesa-libEGL-devel mesa-libgbm-devel pixman-devel SDL-devel spice-glib-devel spice-server-devel tar vte-devel xen-devel zlib-devel
HOSTNAME=bbfcbf497505
MAKEFLAGS= -j8
J=8
CCACHE_DIR=/var/tmp/ccache
EXTRA_CONFIGURE_OPTS=
V=
SHOW_ENV=1
PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
TARGET_LIST=
SHLVL=1
HOME=/root
TEST_DIR=/tmp/qemu-test
FEATURES= dtc
DEBUG=
_=/usr/bin/env
/var/tmp/qemu/run: line 52: cd: /tmp/qemu-test/src/tests/docker: No such file or directory
/var/tmp/qemu/run: line 57: /test-quick: No such file or directory
/var/tmp/qemu/run: line 57: exec: /test-quick: cannot execute: No such file or directory
Traceback (most recent call last):
File "./tests/docker/docker.py", line 407, in <module>
sys.exit(main())
File "./tests/docker/docker.py", line 404, in main
return args.cmdobj.run(args, argv)
File "./tests/docker/docker.py", line 261, in run
return Docker().run(argv, args.keep, quiet=args.quiet)
File "./tests/docker/docker.py", line 229, in run
quiet=quiet)
File "./tests/docker/docker.py", line 147, in _do_check
return subprocess.check_call(self._command + cmd, **kwargs)
File "/usr/lib64/python2.7/subprocess.py", line 186, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['docker', 'run', '--label', 'com.qemu.instance.uuid=bca478da34be11e8875d52540069c830', '-u', '0', '--security-opt', 'seccomp=unconfined', '--rm', '--net=none', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=8', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/root/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-_gt5exqw/src/docker-src.2018-03-31-04.37.05.10200:/var/tmp/qemu:z,ro', 'qemu:centos6', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit status 126
make[1]: *** [tests/docker/Makefile.include:129: docker-run] Error 1
make[1]: Leaving directory '/var/tmp/patchew-tester-tmp-_gt5exqw/src'
make: *** [tests/docker/Makefile.include:163: docker-run-test-quick@centos6] Error 2
real 0m33.155s
user 0m8.989s
sys 0m6.511s
=== OUTPUT END ===
Test command exited with code: 2
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
© 2016 - 2026 Red Hat, Inc.