qemu-irix/tests
Fam Zheng c1958e9d54 docker: Improved image checksum
When a base image locally defined by QEMU, such as in the debian images,
is updated, the dockerfile checksum mechanism in docker.py still skips
updating the derived image, because it only looks at the literal content
of the dockerfile, without considering changes to the base image.

For example we have a recent fix e58c1f9b35 that fixed
debian-win64-cross by updating its base image, debian8-mxe, but due to
above "feature" of docker.py the image in question is automatically NOT
rebuilt unless you add NOCACHE=1. It is noticed on Shippable:

https://app.shippable.com/github/qemu/qemu/runs/541/2/console

because after the fix is merged, the error still occurs, and the log
shows the container image is, as explained above, not updated.

This is because at the time docker.py was written, there wasn't any
dependencies between QEMU's docker images.

Now improve this to preprocess any "FROM qemu:*" directives in the
dockerfiles while doing checksum, and inline the base image's dockerfile
content, recursively. This ensures any changes on the depended _QEMU_
images are taken into account.

This means for external images that we expect to retrieve from docker
registries, we still do it as before. It is not perfect, because
registry images can get updated too. Technically we could substitute the
image name with its hex ID as obtained with $(docker images $IMAGE
--format="{{.Id}}"), but --format is not supported by RHEL 7, so leave
it for now.

Reported-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20171103131229.4737-1-famz@redhat.com>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
2017-11-08 10:59:21 +08:00
..
acpi-test-data
data
docker docker: Improved image checksum 2017-11-08 10:59:21 +08:00
guest-debug
image-fuzzer
keys tests: Add a test key pair 2017-09-22 10:46:25 +08:00
libqos tests: use g_new() family of functions 2017-10-16 13:29:49 +02:00
migration scripts: Remove debug parameter from QEMUMachine 2017-10-11 15:15:17 -03:00
multiboot
qapi-schema qapi: Fix error handling code on alternate conflict 2017-09-01 12:51:04 +02:00
qemu-iotests nbd: Minimal structured read for client 2017-10-30 21:48:41 +01:00
rocker
tcg
vm basevm: Call logging.basicConfig() 2017-10-11 15:15:17 -03:00
vmstate-static-checker-data
.gitignore gitignore: ignore check-qlit test 2017-10-16 20:57:06 +03:00
Makefile.include tests: rename postcopy-test to migration-test 2017-10-29 14:06:16 +01:00
ac97-test.c
acpi-utils.c
acpi-utils.h
ahci-test.c tests: use g_new() family of functions 2017-10-16 13:29:49 +02:00
atomic_add-bench.c
benchmark-crypto-cipher.c tests: fix incorrect size_t format in benchmark-crypto 2017-09-04 10:45:19 +01:00
benchmark-crypto-hash.c tests: fix incorrect size_t format in benchmark-crypto 2017-09-04 10:45:19 +01:00
benchmark-crypto-hmac.c tests: fix incorrect size_t format in benchmark-crypto 2017-09-04 10:45:19 +01:00
bios-tables-test.c
boot-order-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
boot-sector.c tests/boot-sector: Increase timeout to 600 seconds 2017-09-26 09:11:23 +03:00
boot-sector.h
boot-serial-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
check-block.sh
check-qdict.c
check-qjson.c qlit: make qlit_equal_qobject return a bool 2017-09-04 13:09:11 +02:00
check-qlist.c
check-qlit.c qlit: Tighten QLit list vs QList comparison 2017-09-04 13:09:12 +02:00
check-qnull.c
check-qnum.c
check-qom-interface.c
check-qom-proplist.c qapi: drop the sentinel in enum array 2017-09-04 13:09:13 +02:00
check-qstring.c
crypto-tls-x509-helpers.c crypto: fix test cert generation to not use SHA1 algorithm 2017-09-04 10:45:19 +01:00
crypto-tls-x509-helpers.h
device-introspect-test.c
display-vga-test.c
drive_del-test.c tests: Enable the drive_del test also on s390x 2017-09-19 18:21:32 +02:00
ds1338-test.c
e1000-test.c
e1000e-test.c
eepro100-test.c
endianness-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
es1370-test.c
fdc-test.c
fw_cfg-test.c tests: use g_new() family of functions 2017-10-16 13:29:49 +02:00
hd-geo-test.c
i440fx-test.c
i82801b11-test.c
ide-test.c
intel-hda-test.c
io-channel-helpers.c io: add new qio_channel_{readv, writev, read, write}_all functions 2017-09-05 13:21:58 +01:00
io-channel-helpers.h
ioh3420-test.c
iothread.c
iothread.h
ipmi-bt-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
ipmi-kcs-test.c
ipoctal232-test.c
ivshmem-test.c
libqtest.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
libqtest.h libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
m25p80-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
m48t59-test.c
megasas-test.c
migration-test.c tests: check that migration parameters are really assigned 2017-10-29 14:06:16 +01:00
ne2000-test.c
numa-test.c numa-test: Use hmp() 2017-09-15 09:05:19 +02:00
nvme-test.c
pc-cpu-test.c tests: use g_new() family of functions 2017-10-16 13:29:49 +02:00
pcnet-test.c
pkix_asn1_tab.c
pnv-xscom-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
prom-env-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
ptimer-test-stubs.c ptimer-test: do not link to libqemustub.a/libqemuutil.a 2017-09-19 16:19:39 +02:00
ptimer-test.c
ptimer-test.h
pvpanic-test.c
pxe-test.c tests/pxe: Test more NICs when running in SPEED=slow mode 2017-10-15 05:54:44 +03:00
q35-test.c
qemu-iotests-quick.sh
qht-bench.c tcg: define CF_PARALLEL and use it for TB hashing along with CF_COUNT_MASK 2017-10-24 13:53:41 -07:00
qmp-test.c qapi: Change data type of the FOO_lookup generated for enum FOO 2017-09-04 13:09:13 +02:00
qom-test.c
rcutorture.c
rtas-test.c
rtc-test.c
rtl8139-test.c
spapr-phb-test.c
tco-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
test-aio-multithread.c
test-aio.c
test-arm-mptimer.c
test-base64.c
test-bitcnt.c
test-bitops.c
test-blockjob-txn.c
test-blockjob.c
test-bufferiszero.c
test-char.c
test-clone-visitor.c
test-coroutine.c
test-crypto-afsplit.c
test-crypto-block.c
test-crypto-cipher.c
test-crypto-hash.c
test-crypto-hmac.c
test-crypto-ivgen.c
test-crypto-pbkdf.c
test-crypto-secret.c
test-crypto-tlscredsx509.c
test-crypto-tlssession.c
test-crypto-xts.c
test-cutils.c
test-filter-mirror.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
test-filter-redirector.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
test-hbitmap.c hbitmap: Rename serialization_granularity to serialization_align 2017-10-06 16:28:58 +02:00
test-hmp.c qtest: Avoid passing raw strings through hmp() 2017-09-15 09:05:19 +02:00
test-int128.c
test-io-channel-buffer.c
test-io-channel-command.c
test-io-channel-file.c
test-io-channel-socket.c
test-io-channel-tls.c io: fix check for handshake completion in TLS test 2017-09-05 13:21:58 +01:00
test-io-task.c
test-iov.c tests: Use real size for iov tests 2017-09-05 22:34:40 +02:00
test-keyval.c
test-logging.c
test-mul64.c
test-netfilter.c tests: Add network filter tests to the check-qtest-s390x list 2017-08-30 18:23:25 +02:00
test-opts-visitor.c
test-qapi-util.c qapi: Change data type of the FOO_lookup generated for enum FOO 2017-09-04 13:09:13 +02:00
test-qdev-global-props.c
test-qdist.c
test-qemu-opts.c
test-qga.c test-qga: Kill broken and dead QGA_TEST_SIDE_EFFECTING code 2017-09-15 09:05:18 +02:00
test-qht-par.c
test-qht.c
test-qmp-commands.c
test-qmp-event.c
test-qobject-input-visitor.c qapi: Change data type of the FOO_lookup generated for enum FOO 2017-09-04 13:09:13 +02:00
test-qobject-output-visitor.c qapi: Mechanically convert FOO_lookup[...] to FOO_str(...) 2017-09-04 13:09:13 +02:00
test-rcu-list.c
test-replication.c
test-shift128.c
test-string-input-visitor.c qapi: Mechanically convert FOO_lookup[...] to FOO_str(...) 2017-09-04 13:09:13 +02:00
test-string-output-visitor.c qapi: Mechanically convert FOO_lookup[...] to FOO_str(...) 2017-09-04 13:09:13 +02:00
test-thread-pool.c
test-throttle.c block: convert ThrottleGroup to object with QOM 2017-09-05 18:12:21 +02:00
test-timed-average.c
test-uuid.c
test-visitor-serialization.c
test-vmstate.c migration: Route more error paths 2017-09-27 11:44:18 +01:00
test-write-threshold.c
test-x86-cpuid-compat.c
test-x86-cpuid.c
test-xbzrle.c
tmp105-test.c
tpci200-test.c
usb-hcd-ehci-test.c
usb-hcd-ohci-test.c
usb-hcd-uhci-test.c tests: Introduce generic device hot-plug/hot-unplug functions 2017-09-15 09:05:18 +02:00
usb-hcd-xhci-test.c tests: Introduce generic device hot-plug/hot-unplug functions 2017-09-15 09:05:18 +02:00
vhost-user-bridge.c vhost-user-bridge: Only process received packets on started queues 2017-10-12 16:57:42 +02:00
vhost-user-test.c vhost-user: disable the *broken* subprocess tests 2017-09-05 19:31:13 +01:00
virtio-9p-test.c
virtio-balloon-test.c tests: Enable the very simple virtio tests on s390x, too 2017-10-20 13:32:10 +02:00
virtio-blk-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
virtio-console-test.c tests: Enable the very simple virtio tests on s390x, too 2017-10-20 13:32:10 +02:00
virtio-net-test.c
virtio-rng-test.c
virtio-scsi-test.c scsi: move block/scsi.h to include/scsi/constants.h 2017-09-19 14:09:31 +02:00
virtio-serial-test.c tests: Enable the very simple virtio tests on s390x, too 2017-10-20 13:32:10 +02:00
vmgenid-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
vmxnet3-test.c
wdt_ib700-test.c