diff --git a/configure b/configure index 5b1d83ea26232462f960dc699bde350ed7aaba68..0a3c6a72c3b7f82298f71ccb5fb4af0cc2954d5c 100755 --- a/configure +++ b/configure @@ -878,7 +878,7 @@ Linux) vhost_crypto="yes" vhost_scsi="yes" vhost_vsock="yes" - QEMU_INCLUDES="-I\$(SRC_PATH)/linux-headers -I$(pwd)/linux-headers $QEMU_INCLUDES" + QEMU_INCLUDES="-I\$(SRC_PATH)/linux-headers -I$PWD/linux-headers $QEMU_INCLUDES" supported_os="yes" libudev="yes" ;; diff --git a/crypto/tlssession.c b/crypto/tlssession.c index 2f28fa7f71b52308e1066a2420b7c41e8875b1d4..0dedd4af52610feec054be218fc015914d7bad2e 100644 --- a/crypto/tlssession.c +++ b/crypto/tlssession.c @@ -473,6 +473,9 @@ qcrypto_tls_session_read(QCryptoTLSSession *session, case GNUTLS_E_INTERRUPTED: errno = EINTR; break; + case GNUTLS_E_PREMATURE_TERMINATION: + errno = ECONNABORTED; + break; default: errno = EIO; break; diff --git a/include/io/channel-tls.h b/include/io/channel-tls.h index 87fcaf91463e721921ad2f0eaa22dab8f42536d8..fdbdf12feb1e73b020190d1867543ee2b42c2f5a 100644 --- a/include/io/channel-tls.h +++ b/include/io/channel-tls.h @@ -48,6 +48,7 @@ struct QIOChannelTLS { QIOChannel parent; QIOChannel *master; QCryptoTLSSession *session; + QIOChannelShutdown shutdown; }; /** diff --git a/include/io/channel.h b/include/io/channel.h index e8cdadb0b0727773c8ca7d702cbf6f5383178f0b..da2f1382002a59bcb429de5ee988388bb62f828e 100644 --- a/include/io/channel.h +++ b/include/io/channel.h @@ -51,9 +51,9 @@ enum QIOChannelFeature { typedef enum QIOChannelShutdown QIOChannelShutdown; enum QIOChannelShutdown { - QIO_CHANNEL_SHUTDOWN_BOTH, - QIO_CHANNEL_SHUTDOWN_READ, - QIO_CHANNEL_SHUTDOWN_WRITE, + QIO_CHANNEL_SHUTDOWN_READ = 1, + QIO_CHANNEL_SHUTDOWN_WRITE = 2, + QIO_CHANNEL_SHUTDOWN_BOTH = 3, }; typedef gboolean (*QIOChannelFunc)(QIOChannel *ioc, diff --git a/io/channel-tls.c b/io/channel-tls.c index 9628e6fa479f899d3688ca92cbce9b2b75add327..c98ead21b01ea23cbfa0a99a3cff4c01141158e6 100644 --- a/io/channel-tls.c +++ b/io/channel-tls.c @@ -275,6 +275,9 @@ static ssize_t qio_channel_tls_readv(QIOChannel *ioc, } else { return QIO_CHANNEL_ERR_BLOCK; } + } else if (errno == ECONNABORTED && + (tioc->shutdown & QIO_CHANNEL_SHUTDOWN_READ)) { + return 0; } error_setg_errno(errp, errno, @@ -357,6 +360,8 @@ static int qio_channel_tls_shutdown(QIOChannel *ioc, { QIOChannelTLS *tioc = QIO_CHANNEL_TLS(ioc); + tioc->shutdown |= how; + return qio_channel_shutdown(tioc->master, how, errp); } diff --git a/nbd/server.c b/nbd/server.c index 4e8f5ae51b0f24cac9eddf800a13d660dbafef7a..dc04513de705178e392167eb3052faa5b86400ae 100644 --- a/nbd/server.c +++ b/nbd/server.c @@ -1134,12 +1134,16 @@ static int nbd_negotiate_options(NBDClient *client, uint16_t myflags, return -EINVAL; default: - ret = nbd_opt_drop(client, NBD_REP_ERR_TLS_REQD, errp, - "Option 0x%" PRIx32 - "not permitted before TLS", option); /* Let the client keep trying, unless they asked to - * quit. In this mode, we've already sent an error, so - * we can't ack the abort. */ + * quit. Always try to give an error back to the + * client; but when replying to OPT_ABORT, be aware + * that the client may hang up before receiving the + * error, in which case we are fine ignoring the + * resulting EPIPE. */ + ret = nbd_opt_drop(client, NBD_REP_ERR_TLS_REQD, + option == NBD_OPT_ABORT ? NULL : errp, + "Option 0x%" PRIx32 + " not permitted before TLS", option); if (option == NBD_OPT_ABORT) { return 1; } diff --git a/scripts/coccinelle/tcg_gen_extract.cocci b/scripts/coccinelle/tcg_gen_extract.cocci index 81e66a35ae14bb86bcbf0c1888282283f208a8ad..c10c86348270cb04d828852d1d5764c1327dc5aa 100644 --- a/scripts/coccinelle/tcg_gen_extract.cocci +++ b/scripts/coccinelle/tcg_gen_extract.cocci @@ -17,7 +17,7 @@ // --keep-comments --in-place \ // --use-gitgrep --dir target // -// $ docker run --rm -v `pwd`:`pwd` -w `pwd` philmd/coccinelle \ +// $ docker run --rm -v $PWD:$PWD -w $PWD philmd/coccinelle \ // --macro-file scripts/cocci-macro-file.h \ // --sp-file scripts/coccinelle/tcg_gen_extract.cocci \ // --keep-comments --in-place \ diff --git a/tests/check-block.sh b/tests/check-block.sh index c3de3789c484b43f953df5e68f8e8303d431cdc8..f3d12fd602d07b4a097a2e7e23ec1aa1c41cbc3c 100755 --- a/tests/check-block.sh +++ b/tests/check-block.sh @@ -5,9 +5,9 @@ if [ "$#" -ne 0 ]; then FORMAT_LIST="$@" fi -export QEMU_PROG="$(pwd)/x86_64-softmmu/qemu-system-x86_64" -export QEMU_IMG_PROG="$(pwd)/qemu-img" -export QEMU_IO_PROG="$(pwd)/qemu-io" +export QEMU_PROG="$PWD/x86_64-softmmu/qemu-system-x86_64" +export QEMU_IMG_PROG="$PWD/qemu-img" +export QEMU_IO_PROG="$PWD/qemu-io" if [ ! -x $QEMU_PROG ]; then echo "'make check-block' requires qemu-system-x86_64" diff --git a/tests/qemu-iotests/001 b/tests/qemu-iotests/001 index ffd14e2ce96f8ea11005c1d2046071235f462c86..55dcbb71d995b18cb11fd09a8d87f7f3650dede2 100755 --- a/tests/qemu-iotests/001 +++ b/tests/qemu-iotests/001 @@ -24,7 +24,6 @@ owner=hch@lst.de seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/002 b/tests/qemu-iotests/002 index d4f8e91b917d5ccfc3ef31c65b519ad387c1e7a0..74572b471188b436576b57b9d2d824b32d3ef0eb 100755 --- a/tests/qemu-iotests/002 +++ b/tests/qemu-iotests/002 @@ -24,7 +24,6 @@ owner=hch@lst.de seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/003 b/tests/qemu-iotests/003 index 19889b9fcdba2293107918101d71aec0dccaf147..bf2595559bc7934b121bd2c4919477670563d91c 100755 --- a/tests/qemu-iotests/003 +++ b/tests/qemu-iotests/003 @@ -24,7 +24,6 @@ owner=hch@lst.de seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/004 b/tests/qemu-iotests/004 index 6f2aa3d9a25749b106342b47937cba6319bea4d9..841b15dfaca08a9825ce48a75210b0d94bd9d389 100755 --- a/tests/qemu-iotests/004 +++ b/tests/qemu-iotests/004 @@ -24,7 +24,6 @@ owner=hch@lst.de seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/005 b/tests/qemu-iotests/005 index 444737751ffbf229b20795bd0c64edf88e8f5331..8aa4283a4d5dec67295b1e1c899de22694b5c450 100755 --- a/tests/qemu-iotests/005 +++ b/tests/qemu-iotests/005 @@ -27,7 +27,6 @@ owner=hch@lst.de seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/007 b/tests/qemu-iotests/007 index fa543eeb7db70f51843280e79ae61bd0902840b1..b983022a7f314775664a678c81fc83b96e68291e 100755 --- a/tests/qemu-iotests/007 +++ b/tests/qemu-iotests/007 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/008 b/tests/qemu-iotests/008 index 8e89d74fe9b36bd5cbbe1a2c6b2093d869a2cc8a..8dfa10bcb89aa60066527f60073b7491b4af9608 100755 --- a/tests/qemu-iotests/008 +++ b/tests/qemu-iotests/008 @@ -24,7 +24,6 @@ owner=hch@lst.de seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/009 b/tests/qemu-iotests/009 index 16e4475ca4bd037684e09eaf37bf27f03bd245bb..73ae09db69649a56395c1aa2ff39217c269d12a7 100755 --- a/tests/qemu-iotests/009 +++ b/tests/qemu-iotests/009 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/010 b/tests/qemu-iotests/010 index 151dac238d5e74dee93333e5557a656ef29bc365..751aca9813c1344ee4193e5767342f22230db56c 100755 --- a/tests/qemu-iotests/010 +++ b/tests/qemu-iotests/010 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/011 b/tests/qemu-iotests/011 index f8d044ec8577ba1bd202b7f3e4bdce76ff1b3a1d..35909564a91722cbd374245b8ced1d337592a125 100755 --- a/tests/qemu-iotests/011 +++ b/tests/qemu-iotests/011 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/012 b/tests/qemu-iotests/012 index 01a770d59c5385f52a929b8be2238dbd06c32e80..de9a5fb4d5162f9eacd19ad556f9dfd9b3638118 100755 --- a/tests/qemu-iotests/012 +++ b/tests/qemu-iotests/012 @@ -26,7 +26,6 @@ owner=hch@lst.de seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/013 b/tests/qemu-iotests/013 index d013f87da995fdad458e201a9184d9cd3c3e3f82..5e1efcee28963043de3339f59b100187b04fd0f3 100755 --- a/tests/qemu-iotests/013 +++ b/tests/qemu-iotests/013 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/014 b/tests/qemu-iotests/014 index 2ea79e8c8b7ae376d84d6e525d6a2f25efe27128..9ade571a95006e47bf7d9722c3b9de25036b0616 100755 --- a/tests/qemu-iotests/014 +++ b/tests/qemu-iotests/014 @@ -26,7 +26,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/015 b/tests/qemu-iotests/015 index aaf9c3f41501272efcc6288b57c9cb598da22531..21f7d42c84fe7cba3407b667630f668d1ffc1ebe 100755 --- a/tests/qemu-iotests/015 +++ b/tests/qemu-iotests/015 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/017 b/tests/qemu-iotests/017 index 4f9302db42e30cc4c4e382239d40ba5acd1db368..1ac6f745025c07b3b47133613a9d12140a787979 100755 --- a/tests/qemu-iotests/017 +++ b/tests/qemu-iotests/017 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/018 b/tests/qemu-iotests/018 index 1d39d35c4792868d653e971e4e13ded17c976747..bba30a1be2c85aec658f437b2ac30794d698ee88 100755 --- a/tests/qemu-iotests/018 +++ b/tests/qemu-iotests/018 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/019 b/tests/qemu-iotests/019 index 24a789a25c0dfda02f4c4a96a8f309064554d6df..8f911a79c1af92d2c356e65822adee8950a7ad67 100755 --- a/tests/qemu-iotests/019 +++ b/tests/qemu-iotests/019 @@ -26,7 +26,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/020 b/tests/qemu-iotests/020 index eac5080f83c8146d4f4114b0ff3d8bd8e00d8aa2..6b972d082fe5d398a28a37346f39fbc37c244ab2 100755 --- a/tests/qemu-iotests/020 +++ b/tests/qemu-iotests/020 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/021 b/tests/qemu-iotests/021 index 11e8ed7187f7879011f5fac01676eff3cab09584..c15ebf9eb8c94d8fa0689463aa225ea76e840553 100755 --- a/tests/qemu-iotests/021 +++ b/tests/qemu-iotests/021 @@ -24,7 +24,6 @@ owner=hch@lst.de seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/022 b/tests/qemu-iotests/022 index 2452a9f86a0bf3d13504658a0b1d422eba43043c..44765c7b7a11b4a5ee9bd9a2842fc5bc1d323062 100755 --- a/tests/qemu-iotests/022 +++ b/tests/qemu-iotests/022 @@ -26,7 +26,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/023 b/tests/qemu-iotests/023 index 497ae1ed17c322ad5f64ced77713c7ccffaa17ab..c8e1b9a761bcfbd3160f434407e2d160cef59053 100755 --- a/tests/qemu-iotests/023 +++ b/tests/qemu-iotests/023 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/024 b/tests/qemu-iotests/024 index 4071ed609350ceebfda492271a263e0f8115b392..428b5c815d094144945cdd8323a7d30827cfdf81 100755 --- a/tests/qemu-iotests/024 +++ b/tests/qemu-iotests/024 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/025 b/tests/qemu-iotests/025 index 70dd5f10aa27d86364bed353d6601367d0951b41..fcd4d97c17d8c05a52e23c6681ca490ff7ca4dbe 100755 --- a/tests/qemu-iotests/025 +++ b/tests/qemu-iotests/025 @@ -24,7 +24,6 @@ owner=stefanha@linux.vnet.ibm.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/026 b/tests/qemu-iotests/026 index 582d254195f779de8e3351b3a51d698a49f70673..31276d9027a46fe4421faeb73c89a9f3948ef4eb 100755 --- a/tests/qemu-iotests/026 +++ b/tests/qemu-iotests/026 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/027 b/tests/qemu-iotests/027 index 08593da77579ac6d973215f077679d8c4d9ac71e..2c46ae1457a3d79b7874a63102b3d7f8e64ba7f8 100755 --- a/tests/qemu-iotests/027 +++ b/tests/qemu-iotests/027 @@ -24,7 +24,6 @@ owner=stefanha@linux.vnet.ibm.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/028 b/tests/qemu-iotests/028 index 97a88692512fa475a6772a3b3e08b52f095ba204..a2a7c93bcdbf312b5cd3ea8cba7cca95bfdd912e 100755 --- a/tests/qemu-iotests/028 +++ b/tests/qemu-iotests/028 @@ -27,7 +27,6 @@ owner=stefanha@linux.vnet.ibm.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/029 b/tests/qemu-iotests/029 index 5cff6875bfc40f322aa8768b30eee8efeefef6c9..cf0fe0f6a6411bf106c0ff31f7a28bdc323dbcee 100755 --- a/tests/qemu-iotests/029 +++ b/tests/qemu-iotests/029 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/031 b/tests/qemu-iotests/031 index 1e08abc5ed132baa56e0f38ea9a374444c8092eb..ac0dfaed7ddca64bf2f3481195438b7e25e9ddc0 100755 --- a/tests/qemu-iotests/031 +++ b/tests/qemu-iotests/031 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/032 b/tests/qemu-iotests/032 index 24bcb52fc2d04392e478b9b27a5984edd8361b58..3e86bb01119daec8503392a764053a926fe04ab1 100755 --- a/tests/qemu-iotests/032 +++ b/tests/qemu-iotests/032 @@ -26,7 +26,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/033 b/tests/qemu-iotests/033 index ee8a1338bbd3a9fc9a160890be841bd9e3af39b8..46b91388efad431d2bb94220c65a5bf7c487ded7 100755 --- a/tests/qemu-iotests/033 +++ b/tests/qemu-iotests/033 @@ -24,7 +24,6 @@ owner=pbonzini@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/034 b/tests/qemu-iotests/034 index 1b28bdae6387ffe642a0056e37fee34246369d27..62812cd53cbb65f5bd54e8225cb36599b178b48f 100755 --- a/tests/qemu-iotests/034 +++ b/tests/qemu-iotests/034 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/035 b/tests/qemu-iotests/035 index efc38e4d49d2e708327dc84a708c98f5c7922d0a..85d9ef7f8e197f679ed386315c4643a6b2437dd1 100755 --- a/tests/qemu-iotests/035 +++ b/tests/qemu-iotests/035 @@ -25,7 +25,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() @@ -50,7 +49,7 @@ echo echo "creating image" _make_test_img $size -function generate_requests() { +generate_requests() { for i in $(seq 0 63); do echo "aio_write ${i}M 512" echo "aio_write ${i}M 512" diff --git a/tests/qemu-iotests/036 b/tests/qemu-iotests/036 index ce638d607622f9d98998017588e52f0fa44e3cf3..4e76602a9307da2bd6ba16626552cae8738cec75 100755 --- a/tests/qemu-iotests/036 +++ b/tests/qemu-iotests/036 @@ -27,7 +27,6 @@ owner=stefanha@linux.vnet.ibm.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/037 b/tests/qemu-iotests/037 index c476b823d2b7b08dc8ec2c7b72515339ad85a0d1..a11992dad20d3e8b555f536e744015cb0fffbc6f 100755 --- a/tests/qemu-iotests/037 +++ b/tests/qemu-iotests/037 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() @@ -55,7 +54,7 @@ TEST_IMG="$TEST_IMG.base" _make_test_img $size -function backing_io() +backing_io() { local offset=$1 local sectors=$2 diff --git a/tests/qemu-iotests/038 b/tests/qemu-iotests/038 index d99a1501d7a499e9b2bf5c49d8b9147403389ce9..575093e8cfd35a6e8500b23cb949890eeb3c329e 100755 --- a/tests/qemu-iotests/038 +++ b/tests/qemu-iotests/038 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() @@ -52,7 +51,7 @@ TEST_IMG="$TEST_IMG.base" _make_test_img $size -function backing_io() +backing_io() { local offset=$1 local sectors=$2 @@ -77,7 +76,7 @@ _make_test_img -b "$TEST_IMG.base" 6G echo echo "== Some concurrent requests touching the same cluster ==" -function overlay_io() +overlay_io() { # Start with a request touching two clusters echo aio_write -P 0x80 2020k 80k @@ -103,7 +102,7 @@ overlay_io | $QEMU_IO "$TEST_IMG" | _filter_qemu_io |\ echo echo "== Verify image content ==" -function verify_io() +verify_io() { echo read -P 31 2016k 4k echo read -P 0x80 2020k 80k diff --git a/tests/qemu-iotests/039 b/tests/qemu-iotests/039 index 1f48339692d244af9d9e803161c224140757bb1a..b3c344cb27caef7f250255d5f10acdb01efdb8ad 100755 --- a/tests/qemu-iotests/039 +++ b/tests/qemu-iotests/039 @@ -27,7 +27,6 @@ owner=stefanha@linux.vnet.ibm.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/042 b/tests/qemu-iotests/042 index a53e7cb7578a3308c8f13b970f3cac864b870983..beaa3390005e910b76ab9010db5966b20faca835 100755 --- a/tests/qemu-iotests/042 +++ b/tests/qemu-iotests/042 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/043 b/tests/qemu-iotests/043 index 1c6c22d92a8e53b8bc35a00ccd3797393afb0105..fc9005b28feae7f317710f06f4c9d43e06889edc 100755 --- a/tests/qemu-iotests/043 +++ b/tests/qemu-iotests/043 @@ -24,7 +24,6 @@ owner=stefanha@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/046 b/tests/qemu-iotests/046 index f2ebecf24c784d302f8b1669dfb0e347b43ba50b..5e41d96daa10056be287ec3a59317ac5dea664e1 100755 --- a/tests/qemu-iotests/046 +++ b/tests/qemu-iotests/046 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() @@ -49,7 +48,7 @@ echo "== creating backing file for COW tests ==" _make_test_img $size -function backing_io() +backing_io() { local offset=$1 local sectors=$2 @@ -74,7 +73,7 @@ _make_test_img -b "$TEST_IMG.base" 6G echo echo "== Some concurrent requests touching the same cluster ==" -function overlay_io() +overlay_io() { # Allocate middle of cluster 1, then write to somewhere before and after it cat < /dev/null); then # For v2 images, discarded clusters are read from the backing file diff --git a/tests/qemu-iotests/047 b/tests/qemu-iotests/047 index 1b8f3d4a64e92f4bc3c9637285fc0e18739a1b2d..6e776d2ce5c7927cae3bf0396e0a454f9877d6d8 100755 --- a/tests/qemu-iotests/047 +++ b/tests/qemu-iotests/047 @@ -25,7 +25,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() @@ -46,7 +45,7 @@ size=128M _make_test_img $size -function qemu_io_cmds() +qemu_io_cmds() { cat <&1 | filter_test_dir diff --git a/tests/qemu-iotests/050 b/tests/qemu-iotests/050 index 03b4a5d6208f9efab8ad09eff00823dcc0c7bbb2..963a0db97f76c8f25b7740e779f8d87af25d6e6c 100755 --- a/tests/qemu-iotests/050 +++ b/tests/qemu-iotests/050 @@ -24,7 +24,6 @@ owner=pbonzini@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/051 b/tests/qemu-iotests/051 index 25d3b2d478572c963f3f1baf82034969d2c4b09a..32741d7efdf21603786ff616ed3ee48eb4fc3fd2 100755 --- a/tests/qemu-iotests/051 +++ b/tests/qemu-iotests/051 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() @@ -44,7 +43,7 @@ _supported_os Linux # other than refcount_bits=16 _unsupported_imgopts 'refcount_bits=\([^1]\|.\([^6]\|$\)\)' -function do_run_qemu() +do_run_qemu() { echo Testing: "$@" ( @@ -58,7 +57,7 @@ function do_run_qemu() echo } -function run_qemu() +run_qemu() { do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qemu | _filter_generated_node_ids | _filter_hmp diff --git a/tests/qemu-iotests/052 b/tests/qemu-iotests/052 index 842eaced3b696de583d2235898ad35461aa57d6d..b992adf4ffd250985d860c57814301654e1ae335 100755 --- a/tests/qemu-iotests/052 +++ b/tests/qemu-iotests/052 @@ -24,7 +24,6 @@ owner=stefanha@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/053 b/tests/qemu-iotests/053 index 2a04f5f5516d96a72c35e0ecfb2251e624f386a8..afa109c950a41c2495e02d566a033027ecfa20ac 100755 --- a/tests/qemu-iotests/053 +++ b/tests/qemu-iotests/053 @@ -24,7 +24,6 @@ owner=stefanha@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/054 b/tests/qemu-iotests/054 index bf47ef9fac332aca84520a38f690b15e5626db45..cf88a7c76e56c15a5e9da7dfc97fb7bd4a244569 100755 --- a/tests/qemu-iotests/054 +++ b/tests/qemu-iotests/054 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/058 b/tests/qemu-iotests/058 index 5eb8784669eec176dad3e78c05c7bd22603ad32a..d6d4f94d5d2508836d3b35c44f3634eca2e4f613 100755 --- a/tests/qemu-iotests/058 +++ b/tests/qemu-iotests/058 @@ -26,58 +26,21 @@ owner=xiawenc@linux.vnet.ibm.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! -nbd_unix_socket=$TEST_DIR/test_qemu_nbd_socket -nbd_snapshot_img="nbd:unix:$nbd_unix_socket" -rm -f "${TEST_DIR}/qemu-nbd.pid" - -_cleanup_nbd() -{ - local NBD_SNAPSHOT_PID - if [ -f "${TEST_DIR}/qemu-nbd.pid" ]; then - read NBD_SNAPSHOT_PID < "${TEST_DIR}/qemu-nbd.pid" - rm -f "${TEST_DIR}/qemu-nbd.pid" - if [ -n "$NBD_SNAPSHOT_PID" ]; then - kill "$NBD_SNAPSHOT_PID" - fi - fi - rm -f "$nbd_unix_socket" -} - -_wait_for_nbd() -{ - for ((i = 0; i < 300; i++)) - do - if [ -r "$nbd_unix_socket" ]; then - return - fi - sleep 0.1 - done - echo "Failed in check of unix socket created by qemu-nbd" - exit 1 -} - -converted_image=$TEST_IMG.converted - _export_nbd_snapshot() { - _cleanup_nbd - $QEMU_NBD -v -t -k "$nbd_unix_socket" "$TEST_IMG" -l $1 & - _wait_for_nbd + nbd_server_start_unix_socket "$TEST_IMG" -l $1 } _export_nbd_snapshot1() { - _cleanup_nbd - $QEMU_NBD -v -t -k "$nbd_unix_socket" "$TEST_IMG" -l snapshot.name=$1 & - _wait_for_nbd + nbd_server_start_unix_socket "$TEST_IMG" -l snapshot.name=$1 } _cleanup() { - _cleanup_nbd + nbd_server_stop _cleanup_test_img rm -f "$converted_image" } @@ -87,6 +50,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.rc . ./common.filter . ./common.pattern +. ./common.nbd _supported_fmt qcow2 _supported_proto file @@ -95,6 +59,10 @@ _require_command QEMU_NBD # Internal snapshots are (currently) impossible with refcount_bits=1 _unsupported_imgopts 'refcount_bits=1[^0-9]' +nbd_snapshot_img="nbd:unix:$nbd_unix_socket" + +converted_image=$TEST_IMG.converted + # Use -f raw instead of -f $IMGFMT for the NBD connection QEMU_IO_NBD="$QEMU_IO -f raw --cache=$CACHEMODE" diff --git a/tests/qemu-iotests/059 b/tests/qemu-iotests/059 index 530bbbe6ce4eff257bc44ae5092f34a76a7fcd8d..54d5567accf3cf24d14c90d64d169a9f8ad6834e 100755 --- a/tests/qemu-iotests/059 +++ b/tests/qemu-iotests/059 @@ -24,7 +24,6 @@ owner=famz@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/060 b/tests/qemu-iotests/060 index 74ad371885dc690f85c46590b5abc342ceec4e66..af0588ae9a98a033190be1eb1ee4c305946b2e01 100755 --- a/tests/qemu-iotests/060 +++ b/tests/qemu-iotests/060 @@ -24,7 +24,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/061 b/tests/qemu-iotests/061 index 911b6f289462bf9a8eb0bdb0628ddf220d1eb77d..1a501634193cf16341b219259d244805cce28bbb 100755 --- a/tests/qemu-iotests/061 +++ b/tests/qemu-iotests/061 @@ -24,7 +24,6 @@ owner=mreitz@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/062 b/tests/qemu-iotests/062 index 051fb9f410074afc4547704e6c370afda8b455d9..985fbef41ea7e1693010dbdb6e1e27b07aa521d6 100755 --- a/tests/qemu-iotests/062 +++ b/tests/qemu-iotests/062 @@ -25,7 +25,6 @@ owner=mreitz@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/063 b/tests/qemu-iotests/063 index adc037c1f550fd059f6322a86e53cc0f280adbec..041fb5c1ac7a3cc257a97b2396e094fb68797379 100755 --- a/tests/qemu-iotests/063 +++ b/tests/qemu-iotests/063 @@ -25,7 +25,6 @@ owner=alex@alex.org.uk seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/064 b/tests/qemu-iotests/064 index 5792fbbc928906ca7e65528b9c14f495282eb780..f55ff37ca73b932f6d4c4cddbf13c0d275ee4c3d 100755 --- a/tests/qemu-iotests/064 +++ b/tests/qemu-iotests/064 @@ -24,7 +24,6 @@ owner=jcody@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/066 b/tests/qemu-iotests/066 index 863821773649b71f41cb5952cfbae8cd603d6041..26c043711b92771a9bccc7c51d3245b2f2901159 100755 --- a/tests/qemu-iotests/066 +++ b/tests/qemu-iotests/066 @@ -24,7 +24,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/067 b/tests/qemu-iotests/067 index fe259f61654de2dcb932a90b745c0236c29a9f0a..342b2b0a309e0b68fe0da673f37cea1fadbfa3c3 100755 --- a/tests/qemu-iotests/067 +++ b/tests/qemu-iotests/067 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! # get standard environment, filters and checks @@ -37,7 +36,7 @@ _supported_os Linux # Because anything other than 16 would change the output of query-block _unsupported_imgopts 'refcount_bits=\([^1]\|.\([^6]\|$\)\)' -function do_run_qemu() +do_run_qemu() { echo Testing: "$@" $QEMU -nographic -qmp-pretty stdio -serial none "$@" @@ -53,7 +52,7 @@ _filter_qmp_events() | tr '\t' '\n' } -function run_qemu() +run_qemu() { do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qmp | _filter_qemu \ | _filter_actual_image_size \ diff --git a/tests/qemu-iotests/068 b/tests/qemu-iotests/068 index e7fca6a49497742e90f0ad8e3238b4893e711d60..f0583d52ae3319bac6530601c1de41c93bf4c2d1 100755 --- a/tests/qemu-iotests/068 +++ b/tests/qemu-iotests/068 @@ -24,7 +24,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/069 b/tests/qemu-iotests/069 index 96e55ef216092329489e83d8895e274864a4245e..fdee121f43a139abb1c7d64ecb0a807b773f7017 100755 --- a/tests/qemu-iotests/069 +++ b/tests/qemu-iotests/069 @@ -24,7 +24,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/070 b/tests/qemu-iotests/070 index 8d08d74ff93707637a11da04d3f01e62ea465454..78e0390f5f39aff82b4ea3fcfef93d27180babc2 100755 --- a/tests/qemu-iotests/070 +++ b/tests/qemu-iotests/070 @@ -25,7 +25,6 @@ owner=jcody@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/071 b/tests/qemu-iotests/071 index 48b495513f64583fdc563aee343f3e493f5ee2f4..6e467dc1da1aac7fad94ccc7ca05eb1d11678bf4 100755 --- a/tests/qemu-iotests/071 +++ b/tests/qemu-iotests/071 @@ -24,7 +24,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() @@ -41,14 +40,14 @@ _supported_fmt qcow2 _supported_proto file _supported_os Linux -function do_run_qemu() +do_run_qemu() { echo Testing: "$@" | _filter_imgfmt $QEMU -nographic -qmp stdio -serial none "$@" echo } -function run_qemu() +run_qemu() { do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qemu | _filter_qmp | _filter_qemu_io } diff --git a/tests/qemu-iotests/072 b/tests/qemu-iotests/072 index aa027c7d29336728e972cd6e62c9a044431eb2af..08ef29f5b4480b9df702c795d2482c25c4b374b5 100755 --- a/tests/qemu-iotests/072 +++ b/tests/qemu-iotests/072 @@ -24,7 +24,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/073 b/tests/qemu-iotests/073 index 40f85b18b97250cacebd33b1bbb090794121d6f6..5e7f76cb7f756d7a854a54bc79189dc6dfd2c3fd 100755 --- a/tests/qemu-iotests/073 +++ b/tests/qemu-iotests/073 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/075 b/tests/qemu-iotests/075 index caa30d47434a86e7c2113f8ec887fdc8b57ead76..45b8901ef018b6aed1f0b5582e8db0ec8bc0fd73 100755 --- a/tests/qemu-iotests/075 +++ b/tests/qemu-iotests/075 @@ -24,7 +24,6 @@ owner=stefanha@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/076 b/tests/qemu-iotests/076 index ef9e6a4ff32e6f96eefce71553e8d2592d500892..3b5ab3fd08abf9ac2012a866eb621f9041f03cf8 100755 --- a/tests/qemu-iotests/076 +++ b/tests/qemu-iotests/076 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/077 b/tests/qemu-iotests/077 index b3c6fb13704ae24b504e91ab3e41a4eec512b1fe..58fe8932b3047cfe81b199d11cb7d9c820147254 100755 --- a/tests/qemu-iotests/077 +++ b/tests/qemu-iotests/077 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() @@ -49,7 +48,7 @@ _make_test_img $size echo echo "== Some concurrent requests involving RMW ==" -function test_io() +test_io() { echo "open -o driver=$IMGFMT,file.align=4k blkdebug::$TEST_IMG" # A simple RMW request @@ -194,7 +193,7 @@ test_io | $QEMU_IO | _filter_qemu_io | \ echo echo "== Verify image content ==" -function verify_io() +verify_io() { # A simple RMW request echo read -P 0 0 0x200 diff --git a/tests/qemu-iotests/078 b/tests/qemu-iotests/078 index a106c26f6b5da7f5be9eb4a42d1712faf50b6f8d..68d0ea880203bb1c9a735f85e6a701c8f657de3e 100755 --- a/tests/qemu-iotests/078 +++ b/tests/qemu-iotests/078 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/079 b/tests/qemu-iotests/079 index b2e3f7426ac2fe1e029b684a1faf5552559f253f..fca2f77d379939f7d37758b117cd30b041d9281c 100755 --- a/tests/qemu-iotests/079 +++ b/tests/qemu-iotests/079 @@ -24,7 +24,6 @@ owner=hutao@cn.fujitsu.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/080 b/tests/qemu-iotests/080 index f0eb42f390967440b155c556e3d03cc64e5c5c92..cec2376f5997d39cf829c2501f55a3d4538030aa 100755 --- a/tests/qemu-iotests/080 +++ b/tests/qemu-iotests/080 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/081 b/tests/qemu-iotests/081 index 9f1dece271119926dd88155efca8f3f28f8eca1c..edf6e6172aa412a54c1fa067b25e031d7de07053 100755 --- a/tests/qemu-iotests/081 +++ b/tests/qemu-iotests/081 @@ -24,7 +24,6 @@ owner=benoit@irqsave.net seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() @@ -43,14 +42,14 @@ _supported_fmt raw _supported_proto file _supported_os Linux -function do_run_qemu() +do_run_qemu() { echo Testing: "$@" | _filter_imgfmt $QEMU -nographic -qmp stdio -serial none "$@" echo } -function run_qemu() +run_qemu() { do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qemu | _filter_qmp\ | _filter_qemu_io | _filter_generated_node_ids diff --git a/tests/qemu-iotests/082 b/tests/qemu-iotests/082 index 3e605d52d1ad72d452022e29b8cb5f47678b2e0e..61eec63797c39573c9056e37a3c8a088ec843247 100755 --- a/tests/qemu-iotests/082 +++ b/tests/qemu-iotests/082 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() @@ -41,7 +40,7 @@ _supported_fmt qcow2 _supported_proto file nfs _supported_os Linux -function run_qemu_img() +run_qemu_img() { echo echo Testing: "$@" | _filter_testdir diff --git a/tests/qemu-iotests/083 b/tests/qemu-iotests/083 index 9f92317b0ac32dc3536ee87b40f0686dbf21a509..89f67db70fc808e0abb4275d720264b77b99f2f7 100755 --- a/tests/qemu-iotests/083 +++ b/tests/qemu-iotests/083 @@ -24,7 +24,6 @@ owner=stefanha@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/084 b/tests/qemu-iotests/084 index 04f2aa9d7d1cec0376a2d0388233c7e5286316f9..e131fa9642422b001ce0bc94cf26e112957ef925 100755 --- a/tests/qemu-iotests/084 +++ b/tests/qemu-iotests/084 @@ -25,7 +25,6 @@ owner=jcody@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/085 b/tests/qemu-iotests/085 index 5c7668cf9bacbe5c0e76f2250dd0cece3782bc06..ade68ef853b4424fa321317cf79e426710f69b56 100755 --- a/tests/qemu-iotests/085 +++ b/tests/qemu-iotests/085 @@ -29,7 +29,6 @@ owner=jcody@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! snapshot_virt0="snapshot-v0.qcow2" @@ -61,7 +60,7 @@ _supported_os Linux # ${1}: unique identifier for the snapshot filename -function create_single_snapshot() +create_single_snapshot() { cmd="{ 'execute': 'blockdev-snapshot-sync', 'arguments': { 'device': 'virtio0', @@ -71,7 +70,7 @@ function create_single_snapshot() } # ${1}: unique identifier for the snapshot filename -function create_group_snapshot() +create_group_snapshot() { cmd="{ 'execute': 'transaction', 'arguments': {'actions': [ @@ -89,7 +88,7 @@ function create_group_snapshot() # ${1}: unique identifier for the snapshot filename # ${2}: extra_params to the blockdev-add command # ${3}: filename -function do_blockdev_add() +do_blockdev_add() { cmd="{ 'execute': 'blockdev-add', 'arguments': { 'driver': 'qcow2', 'node-name': 'snap_${1}', ${2} @@ -100,7 +99,7 @@ function do_blockdev_add() } # ${1}: unique identifier for the snapshot filename -function add_snapshot_image() +add_snapshot_image() { base_image="${TEST_DIR}/$((${1}-1))-${snapshot_virt0}" snapshot_file="${TEST_DIR}/${1}-${snapshot_virt0}" @@ -111,7 +110,7 @@ function add_snapshot_image() # ${1}: unique identifier for the snapshot filename # ${2}: expected response, defaults to 'return' -function blockdev_snapshot() +blockdev_snapshot() { cmd="{ 'execute': 'blockdev-snapshot', 'arguments': { 'node': 'virtio0', diff --git a/tests/qemu-iotests/086 b/tests/qemu-iotests/086 index 84e38350719c54da184c43eda608a5bcdbc72abe..3cca3687ea8ca9771afc999a43a847031194a36b 100755 --- a/tests/qemu-iotests/086 +++ b/tests/qemu-iotests/086 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() @@ -41,7 +40,7 @@ _supported_fmt qcow2 raw _supported_proto file _supported_os Linux -function run_qemu_img() +run_qemu_img() { echo echo Testing: "$@" | _filter_testdir diff --git a/tests/qemu-iotests/087 b/tests/qemu-iotests/087 index 2561a14456e82984278730ca436fcbb35c059af7..f625887082220e5b32584940c02677463467d4f6 100755 --- a/tests/qemu-iotests/087 +++ b/tests/qemu-iotests/087 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! # get standard environment, filters and checks @@ -35,14 +34,14 @@ _supported_fmt qcow2 _supported_proto file _supported_os Linux -function do_run_qemu() +do_run_qemu() { echo Testing: "$@" $QEMU -nographic -qmp stdio -serial none "$@" echo } -function run_qemu() +run_qemu() { do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qmp \ | _filter_qemu | _filter_imgfmt \ @@ -103,7 +102,7 @@ echo === aio=native without O_DIRECT === echo # Skip this test if AIO is not enabled in this build -function run_qemu_filter_aio() +run_qemu_filter_aio() { run_qemu "$@" | \ sed -e 's/is not supported in this build/it requires cache.direct=on, which was not specified/' diff --git a/tests/qemu-iotests/088 b/tests/qemu-iotests/088 index b8076f216b0e0c2bd51df791c115aa2fa8d4ce94..c5e9ab42c759e3ee5162f9c59bf85f428311bdda 100755 --- a/tests/qemu-iotests/088 +++ b/tests/qemu-iotests/088 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/089 b/tests/qemu-iotests/089 index aa1ba4a98e7e69ea5489ea0b614cd27383c0ca10..3165d79e2ac7cacd769755ed5dc9fe34fc0c32bf 100755 --- a/tests/qemu-iotests/089 +++ b/tests/qemu-iotests/089 @@ -24,7 +24,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/090 b/tests/qemu-iotests/090 index 7380503d57c0bfce5c31b3ca819884275e275f6a..1450993e15e635ccd10ac335dcb67ec5d5abb2db 100755 --- a/tests/qemu-iotests/090 +++ b/tests/qemu-iotests/090 @@ -24,7 +24,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/091 b/tests/qemu-iotests/091 index 10ac4a8d73b736374c108ed9d5bf60ef162d2b94..2f2f98ee64d4b2781e836e9c4eeb927f9663a3a9 100755 --- a/tests/qemu-iotests/091 +++ b/tests/qemu-iotests/091 @@ -26,7 +26,6 @@ owner=jcody@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! MIG_FIFO="${TEST_DIR}/migrate" diff --git a/tests/qemu-iotests/092 b/tests/qemu-iotests/092 index 5bbdd071d8bd3273c36b198a07e068275036f2fa..8e318f10b9369a6ff2a954924130be6d2edf68b2 100755 --- a/tests/qemu-iotests/092 +++ b/tests/qemu-iotests/092 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/094 b/tests/qemu-iotests/094 index 9aa01e3627c0dce8e0029253498f8ec0299919c4..7adc9b913825a5e27ed250379e37769d2156d817 100755 --- a/tests/qemu-iotests/094 +++ b/tests/qemu-iotests/094 @@ -24,7 +24,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/095 b/tests/qemu-iotests/095 index 72ecc22e1b70dc1ef26189c31d58ea5ccc3d01bc..9fc47f6b877b746ac962a4b1db5548f612dc9b2b 100755 --- a/tests/qemu-iotests/095 +++ b/tests/qemu-iotests/095 @@ -27,7 +27,6 @@ owner=jcody@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/097 b/tests/qemu-iotests/097 index e22670c8d06cab593a472b238da415a8907ea161..7234b16053fe0c5359e626369e479b404a65427f 100755 --- a/tests/qemu-iotests/097 +++ b/tests/qemu-iotests/097 @@ -25,7 +25,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/098 b/tests/qemu-iotests/098 index b002e969b322fdcf319f6c7bf5dd08d62e08d02c..c7977da99acdbdc938c14a36a5824ef60961f5ba 100755 --- a/tests/qemu-iotests/098 +++ b/tests/qemu-iotests/098 @@ -24,7 +24,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/099 b/tests/qemu-iotests/099 index caaf58eee54307a09fe36cbad75a9c81c85a51f3..578808b747495b80ca25118c503ea76557816d9a 100755 --- a/tests/qemu-iotests/099 +++ b/tests/qemu-iotests/099 @@ -25,7 +25,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() @@ -46,12 +45,12 @@ _supported_os Linux _unsupported_imgopts "subformat=monolithicFlat" "subformat=twoGbMaxExtentFlat" \ "subformat=twoGbMaxExtentSparse" -function do_run_qemu() +do_run_qemu() { $QEMU -nographic -qmp stdio -serial none "$@" } -function run_qemu() +run_qemu() { # Get the "file": "foo" entry ($foo may only contain escaped double quotes, # which is how we can extract it) @@ -60,7 +59,7 @@ function run_qemu() | sed -e 's/^.*"file": "\(\(\\"\|[^"]\)*\)".*$/\1/' -e 's/\\"/"/g' } -function test_qemu() +test_qemu() { run_qemu -drive "if=none,id=drv0,$1" <&1 | _filter_testdir | _filter_qemu | _filter_hmp } @@ -89,7 +88,7 @@ echo files="if=none,file=$TEST_IMG,backing.file.filename=$TEST_IMG.base" ids="node-name=image,backing.node-name=backing,backing.file.node-name=backing-file,file.node-name=file" -function check_cache_all() +check_cache_all() { # cache.direct is supposed to be inherited by both bs->file and # bs->backing @@ -232,7 +231,7 @@ drv_bk="if=none,file=json:{'driver':'$IMGFMT',,'file':'backing-file',,'node-name drv_file="if=none,driver=file,filename=$TEST_IMG,node-name=file" drv_img="if=none,id=blk,file=json:{'driver':'$IMGFMT',,'file':'file',,'backing':'backing',,'node-name':'image'}" -function check_cache_all_separate() +check_cache_all_separate() { # Check cache.direct diff --git a/tests/qemu-iotests/143 b/tests/qemu-iotests/143 index 5ff194450786a2495cb1e258f7bee53cf1a61d2b..d6302cc06d82586dedaaaff0bb4c1a285e9a7457 100755 --- a/tests/qemu-iotests/143 +++ b/tests/qemu-iotests/143 @@ -24,7 +24,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/144 b/tests/qemu-iotests/144 index 4b915718cd1e335b9849797c60c16b8ffdd3b63c..118c0999949d1e5105309d0507bc12d79b4122e0 100755 --- a/tests/qemu-iotests/144 +++ b/tests/qemu-iotests/144 @@ -26,7 +26,6 @@ owner=jcody@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! TMP_SNAP1=${TEST_DIR}/tmp.qcow2 diff --git a/tests/qemu-iotests/145 b/tests/qemu-iotests/145 index c371b3c46a05d4ca83b63aefc0b27cc46617ad96..6ce8a46f92a57548a7a3dcd942d55e61238c2496 100755 --- a/tests/qemu-iotests/145 +++ b/tests/qemu-iotests/145 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/146 b/tests/qemu-iotests/146 index 043711be680e1be9aa137b472c985a82657c6078..3f61351ffe4627e6449ee9da9b4fb89d24849003 100755 --- a/tests/qemu-iotests/146 +++ b/tests/qemu-iotests/146 @@ -24,7 +24,6 @@ owner=jcody@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/150 b/tests/qemu-iotests/150 index ee8f6375f695fc172ea26d7214a954032d7fc93b..955b877efa1e85249bf99c2e74502ef029ef4c16 100755 --- a/tests/qemu-iotests/150 +++ b/tests/qemu-iotests/150 @@ -24,7 +24,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/153 b/tests/qemu-iotests/153 index 0daeb1b0058793c33eea5631d5111af4fa30dfd1..3120a61da472b9ebc56157762e0d7e45d904ba7f 100755 --- a/tests/qemu-iotests/153 +++ b/tests/qemu-iotests/153 @@ -24,7 +24,6 @@ owner=famz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" tmp=/tmp/$$ status=1 # failure is the default! @@ -71,7 +70,7 @@ _run_cmd() (echo "$@"; "$@" 2>&1 1>/dev/null) | _filter_testdir } -function _do_run_qemu() +_do_run_qemu() { ( if ! test -t 0; then @@ -83,7 +82,7 @@ function _do_run_qemu() ) | $QEMU -nographic -monitor stdio -serial none "$@" 1>/dev/null } -function _run_qemu_with_images() +_run_qemu_with_images() { _do_run_qemu \ $(for i in $@; do echo "-drive if=none,file=$i"; done) 2>&1 \ diff --git a/tests/qemu-iotests/154 b/tests/qemu-iotests/154 index fde03b0dc8c282ed15f046246f00bdacaad8a213..4a4abf0589009096ba1fc9c6c30bce4354dd7a57 100755 --- a/tests/qemu-iotests/154 +++ b/tests/qemu-iotests/154 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/156 b/tests/qemu-iotests/156 index 0a9a09802e1062ab5855df118a64c78fd5a0fa09..f97f96f6668111d36108f6a08b5385ce32aabb5a 100755 --- a/tests/qemu-iotests/156 +++ b/tests/qemu-iotests/156 @@ -32,7 +32,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/157 b/tests/qemu-iotests/157 index 2bf02be465cafa2e706f95fb67609585c0117049..6fb26596ada093c3ed8072a767350d0b786ac53e 100755 --- a/tests/qemu-iotests/157 +++ b/tests/qemu-iotests/157 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() @@ -41,7 +40,7 @@ _supported_fmt generic _supported_proto file _supported_os Linux -function do_run_qemu() +do_run_qemu() { ( if ! test -t 0; then @@ -54,7 +53,7 @@ function do_run_qemu() echo } -function run_qemu() +run_qemu() { do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_imgfmt \ | _filter_qemu | _filter_generated_node_ids diff --git a/tests/qemu-iotests/158 b/tests/qemu-iotests/158 index 24ac600a4a4dfb734003040be10fad58c69f161d..d277ddcc9435ba47993e7ce8e8d9e201c161f507 100755 --- a/tests/qemu-iotests/158 +++ b/tests/qemu-iotests/158 @@ -24,7 +24,6 @@ owner=berrange@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/159 b/tests/qemu-iotests/159 index 9b0e1ecc90db4718f94749b76c7d29c99f85fe32..e74b2739dea611629e0d22a35242531ebe464939 100755 --- a/tests/qemu-iotests/159 +++ b/tests/qemu-iotests/159 @@ -23,7 +23,6 @@ owner=fullmanet@gmail.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 _cleanup() diff --git a/tests/qemu-iotests/160 b/tests/qemu-iotests/160 index 5c910e5bfc167399379ca378f042fef47b3f0b43..92fff45d104502f5d5ecd36079c5f0359b9ae29b 100755 --- a/tests/qemu-iotests/160 +++ b/tests/qemu-iotests/160 @@ -23,7 +23,6 @@ owner=fullmanet@gmail.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 _cleanup() diff --git a/tests/qemu-iotests/162 b/tests/qemu-iotests/162 index 477a80636040cd0be3f1a277f0b3fa6cdcc487bd..ef02d844a209366d83c23f2a20305a404aa73a3c 100755 --- a/tests/qemu-iotests/162 +++ b/tests/qemu-iotests/162 @@ -25,7 +25,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/170 b/tests/qemu-iotests/170 index b79359fc4e4f68b9fdb8e1f2fdfce8761f8187d3..861eabf5cc09104873be1a2b5ea92fd601ee7e50 100755 --- a/tests/qemu-iotests/170 +++ b/tests/qemu-iotests/170 @@ -23,7 +23,6 @@ owner=fullmanet@gmail.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 _cleanup() diff --git a/tests/qemu-iotests/171 b/tests/qemu-iotests/171 index bcfaaf1be2553aae0de1b017fd4be6dee80244fb..5b46069fded464040590b0f36c79461f452bd155 100755 --- a/tests/qemu-iotests/171 +++ b/tests/qemu-iotests/171 @@ -25,7 +25,6 @@ owner=tgolembi@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/172 b/tests/qemu-iotests/172 index 02c5f79bab8582fcf5212148f32314012b922463..1e60a7e3d68192cefd8c2b921a20e5bff2a4f329 100755 --- a/tests/qemu-iotests/172 +++ b/tests/qemu-iotests/172 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() @@ -47,7 +46,7 @@ if [ "$QEMU_DEFAULT_MACHINE" != "pc" ]; then _notrun "Requires a PC machine" fi -function do_run_qemu() +do_run_qemu() { ( if ! test -t 0; then @@ -60,7 +59,7 @@ function do_run_qemu() echo } -function check_floppy_qtree() +check_floppy_qtree() { echo echo Testing: "$@" | _filter_testdir @@ -76,7 +75,7 @@ function check_floppy_qtree() _filter_win32 | _filter_qemu } -function check_cache_mode() +check_cache_mode() { echo "info block none0" | QEMU_OPTIONS="" do_run_qemu -drive if=none,file="$TEST_IMG" "$@" | diff --git a/tests/qemu-iotests/173 b/tests/qemu-iotests/173 index bdaa092979eab1c503afb799a912185226aef1f6..1fe8c5d738164c8d763d9a59ab09a7ebd44e9155 100755 --- a/tests/qemu-iotests/173 +++ b/tests/qemu-iotests/173 @@ -24,7 +24,6 @@ owner=jcody@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/174 b/tests/qemu-iotests/174 index 552879db3227743e0679a53c9caef6f9714c7ed3..d8bb05c4e2199fcccaa6b5d4d98e8b7e28372261 100755 --- a/tests/qemu-iotests/174 +++ b/tests/qemu-iotests/174 @@ -24,7 +24,6 @@ owner=nirsof@gmail.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/175 b/tests/qemu-iotests/175 index ca56e827cde28dcdccf94980aa6458d1dc1d6eee..ebbeb6e74cd8e23eca77339cafcea967a27f3922 100755 --- a/tests/qemu-iotests/175 +++ b/tests/qemu-iotests/175 @@ -24,7 +24,6 @@ owner=nirsof@gmail.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/176 b/tests/qemu-iotests/176 index 32baa116dd0b09f7c5160771bccbc3e0caa41e61..4ecd5894a392fe97ba48007fb7487a7d14ea03b6 100755 --- a/tests/qemu-iotests/176 +++ b/tests/qemu-iotests/176 @@ -29,7 +29,6 @@ owner=mreitz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() @@ -51,7 +50,7 @@ _supported_os Linux # Persistent dirty bitmaps require compat=1.1 _unsupported_imgopts 'compat=0.10' -function run_qemu() +run_qemu() { $QEMU -nographic -qmp stdio -serial none "$@" 2>&1 \ | _filter_testdir | _filter_qmp | _filter_qemu \ diff --git a/tests/qemu-iotests/177 b/tests/qemu-iotests/177 index 396986da8941ae3d1508fe9114d615daf887de1a..f0c1155e8077c156e1c6bee7dee304d7c7cc783a 100755 --- a/tests/qemu-iotests/177 +++ b/tests/qemu-iotests/177 @@ -24,7 +24,6 @@ owner=eblake@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() @@ -86,7 +85,7 @@ $QEMU_IO -c "open -o $options,$limits blkdebug::$TEST_IMG" \ echo echo "== verify image content ==" -function verify_io() +verify_io() { if ($QEMU_IMG info -f "$IMGFMT" "$TEST_IMG" | grep "compat: 0.10" > /dev/null); then diff --git a/tests/qemu-iotests/178 b/tests/qemu-iotests/178 index 6af52c653a7bb6a60ba74cc0158989ee985ae29e..3f4b4a4564289c75d04fb8ba4a64334b3e6c2e5a 100755 --- a/tests/qemu-iotests/178 +++ b/tests/qemu-iotests/178 @@ -24,7 +24,6 @@ owner=stefanha@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/179 b/tests/qemu-iotests/179 index 115944a7532e81f95e16fd2c7e4e6975954f0587..304063163645adf76741dfe98c43a69224aeeb28 100755 --- a/tests/qemu-iotests/179 +++ b/tests/qemu-iotests/179 @@ -24,7 +24,6 @@ owner=eblake@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/181 b/tests/qemu-iotests/181 index e02979378da466b5f5902988a48f96c04e125b14..0c44108dac140e5f6ab7871f13cd9ead228b6dea 100755 --- a/tests/qemu-iotests/181 +++ b/tests/qemu-iotests/181 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! MIG_SOCKET="${TEST_DIR}/migrate" diff --git a/tests/qemu-iotests/182 b/tests/qemu-iotests/182 index 3b7689c1d5cf813c151cc5fac935c4caf89583e2..9e078c5484d2c88ed6835844c55b3e3875e7ab02 100755 --- a/tests/qemu-iotests/182 +++ b/tests/qemu-iotests/182 @@ -24,7 +24,6 @@ owner=famz@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" tmp=/tmp/$$ status=1 # failure is the default! diff --git a/tests/qemu-iotests/183 b/tests/qemu-iotests/183 index c49e1ad6efb2564e811f67b8c294af19e79ae4b3..ebb5e304ac7043ab402940801fd9f8e22a9f2faa 100755 --- a/tests/qemu-iotests/183 +++ b/tests/qemu-iotests/183 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! MIG_SOCKET="${TEST_DIR}/migrate" diff --git a/tests/qemu-iotests/184 b/tests/qemu-iotests/184 index 2b68284d58faa89ae09a99f802760357dcfa58f9..0af7a73aca13a06d50e927ff81ac081c80058494 100755 --- a/tests/qemu-iotests/184 +++ b/tests/qemu-iotests/184 @@ -24,7 +24,6 @@ owner="Manos Pitsidianakis" seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! trap "exit \$status" 0 1 2 3 15 @@ -35,14 +34,14 @@ trap "exit \$status" 0 1 2 3 15 _supported_os Linux -function do_run_qemu() +do_run_qemu() { echo Testing: "$@" | _filter_imgfmt $QEMU -nographic -qmp-pretty stdio -serial none "$@" echo } -function run_qemu() +run_qemu() { do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qemu | _filter_qmp\ | _filter_qemu_io | _filter_generated_node_ids \ diff --git a/tests/qemu-iotests/185 b/tests/qemu-iotests/185 index 7dcfdeac60520c648ed304c4d073dc124eaafe32..d8f1505cd83b5957657f357e371376e4cf67a829 100755 --- a/tests/qemu-iotests/185 +++ b/tests/qemu-iotests/185 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/186 b/tests/qemu-iotests/186 index 0aa4395a57a3dc637a5768576a7d3d6506824f94..c27dc953b6f52a639ecc1704b77ba0fe226c72c4 100755 --- a/tests/qemu-iotests/186 +++ b/tests/qemu-iotests/186 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() @@ -45,7 +44,7 @@ if [ "$QEMU_DEFAULT_MACHINE" != "pc" ]; then _notrun "Requires a PC machine" fi -function do_run_qemu() +do_run_qemu() { echo Testing: "$@" @@ -60,7 +59,7 @@ function do_run_qemu() echo } -function check_info_block() +check_info_block() { echo "info block" | do_run_qemu "$@" | _filter_win32 | _filter_hmp | _filter_qemu | diff --git a/tests/qemu-iotests/187 b/tests/qemu-iotests/187 index 7bb783363c3386c50ae86f2b66792b7ec9d3d3a1..1feddca5081315687f0b414f161357c98dd96aa3 100755 --- a/tests/qemu-iotests/187 +++ b/tests/qemu-iotests/187 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/188 b/tests/qemu-iotests/188 index 83ed03e33eead02e3f44c63a34c99c0be7d757d1..af40e496eedb1d7d1546063658c7424424ff4b7b 100755 --- a/tests/qemu-iotests/188 +++ b/tests/qemu-iotests/188 @@ -24,7 +24,6 @@ owner=berrange@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/189 b/tests/qemu-iotests/189 index e6954757226935370f1a58195f08b5d44190656a..222bec133b6e512fe6560e3a7dd01158d44dd91b 100755 --- a/tests/qemu-iotests/189 +++ b/tests/qemu-iotests/189 @@ -24,7 +24,6 @@ owner=berrange@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/190 b/tests/qemu-iotests/190 index 8f808fef5d99a8883383e30838e498991beb0f67..95ba06d8f48a02a6a3d8a9de765cf94814c70958 100755 --- a/tests/qemu-iotests/190 +++ b/tests/qemu-iotests/190 @@ -24,7 +24,6 @@ owner=eblake@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/191 b/tests/qemu-iotests/191 index d6860e72f7c2d4a954c24000a4bc55f452c01a70..198272ea3b04415e480b01b48b2d9fb3624c8e62 100755 --- a/tests/qemu-iotests/191 +++ b/tests/qemu-iotests/191 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/192 b/tests/qemu-iotests/192 index 595f0d786ab8a14c172e9599516a2595e5efa567..415c706db5482f22baff692fe11d7412bdeb9bac 100755 --- a/tests/qemu-iotests/192 +++ b/tests/qemu-iotests/192 @@ -25,7 +25,6 @@ owner=famz@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/195 b/tests/qemu-iotests/195 index e7a403ded2fc6d56af3ce98229aa7982e410a46b..a977c9798e3a5a222b9247cf3a6d5be1da56f38d 100755 --- a/tests/qemu-iotests/195 +++ b/tests/qemu-iotests/195 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() @@ -42,14 +41,14 @@ _supported_fmt qcow2 _supported_proto file _supported_os Linux -function do_run_qemu() +do_run_qemu() { echo Testing: "$@" $QEMU -nographic -qmp-pretty stdio -serial none "$@" echo } -function run_qemu() +run_qemu() { do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_imgfmt | _filter_qemu \ | _filter_qmp | _filter_qemu_io \ diff --git a/tests/qemu-iotests/197 b/tests/qemu-iotests/197 index 0369aa5cff006d26029a97df0ab1e288e900cfa6..8170f5d4ab1962d4e09d6046f8e8d1bedf309808 100755 --- a/tests/qemu-iotests/197 +++ b/tests/qemu-iotests/197 @@ -24,7 +24,6 @@ owner=eblake@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! # get standard environment, filters and checks diff --git a/tests/qemu-iotests/198 b/tests/qemu-iotests/198 index 54eaaf51534aa4e7d1b4e2d99d662f6d092f08d9..4d961f4f3a538dc4f2cc1ff3f7748028b2cbcdfd 100755 --- a/tests/qemu-iotests/198 +++ b/tests/qemu-iotests/198 @@ -24,7 +24,6 @@ owner=berrange@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/200 b/tests/qemu-iotests/200 index ddbdedc476fb03da734d61172a4e6976123a99cb..b9ebd5a8c77d651df3e7b35ae400e24c11702338 100755 --- a/tests/qemu-iotests/200 +++ b/tests/qemu-iotests/200 @@ -26,7 +26,6 @@ owner=jcody@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/204 b/tests/qemu-iotests/204 index feb69d2ada6b132ef4789d1e69cf30f92d709ada..30f0653ce973f2b3eb65b5730d5ed4909de87585 100755 --- a/tests/qemu-iotests/204 +++ b/tests/qemu-iotests/204 @@ -24,7 +24,6 @@ owner=eblake@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() @@ -94,7 +93,7 @@ $QEMU_IO -c "open -o $options,$limits blkdebug::$TEST_IMG" \ echo echo "== verify image content ==" -function verify_io() +verify_io() { echo read -P 22 0 1000 echo read -P 33 1000 128k diff --git a/tests/qemu-iotests/214 b/tests/qemu-iotests/214 index c46ca2a6dde02f715ecede2039cd72f5ec66a75c..7a2d5391bb7f6702b86f0338d705f83ebb74be44 100755 --- a/tests/qemu-iotests/214 +++ b/tests/qemu-iotests/214 @@ -22,7 +22,6 @@ seq=$(basename "$0") echo "QA output created by $seq" -here=$PWD status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/215 b/tests/qemu-iotests/215 index 2e616ed659bf7d32d5ebe09f019134722afc021f..230fd2551a5ff0e7891bc827fe01ecd6358d9f58 100755 --- a/tests/qemu-iotests/215 +++ b/tests/qemu-iotests/215 @@ -21,7 +21,6 @@ seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! # get standard environment, filters and checks diff --git a/tests/qemu-iotests/221 b/tests/qemu-iotests/221 index 41c4e4bdf887fbb2f35a1eb86f704e3d0bcc57cb..06f48f1f23d3680534d1f650623d1b97776e3f2f 100755 --- a/tests/qemu-iotests/221 +++ b/tests/qemu-iotests/221 @@ -21,7 +21,6 @@ seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/223 b/tests/qemu-iotests/223 index 8b1859c2dd3b569a8f672940141892c66d0ec2b5..72419e03388f40ecaa7921c2546dbf2350e3981a 100755 --- a/tests/qemu-iotests/223 +++ b/tests/qemu-iotests/223 @@ -21,7 +21,6 @@ seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() @@ -43,14 +42,14 @@ _supported_os Linux # Persistent dirty bitmaps require compat=1.1 _unsupported_imgopts 'compat=0.10' -function do_run_qemu() +do_run_qemu() { echo Testing: "$@" $QEMU -nographic -qmp stdio -serial none "$@" echo } -function run_qemu() +run_qemu() { do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qmp \ | _filter_qemu | _filter_imgfmt \ diff --git a/tests/qemu-iotests/225 b/tests/qemu-iotests/225 index f2ee715685fa84dc1461742f76f0bd8454507596..e42ee94ff014b9091c1143cd07768a616f8c3311 100755 --- a/tests/qemu-iotests/225 +++ b/tests/qemu-iotests/225 @@ -24,7 +24,6 @@ owner=mreitz@redhat.com seq=$(basename $0) echo "QA output created by $seq" -here=$PWD status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/226 b/tests/qemu-iotests/226 index 8ec3e612ddbaf69cca7ea3ccc1a879dd7a9b0b59..aec413b23c494299b8ed2a75d2da5ac05cd21121 100755 --- a/tests/qemu-iotests/226 +++ b/tests/qemu-iotests/226 @@ -25,7 +25,6 @@ owner=jsnow@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/227 b/tests/qemu-iotests/227 index 9a5f7f9f148529551106472cf1e3f51082f5b42b..be1b636af06612c017237f6bd28e7f1183c0c7f6 100755 --- a/tests/qemu-iotests/227 +++ b/tests/qemu-iotests/227 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=$(basename $0) echo "QA output created by $seq" -here=$PWD status=1 # failure is the default! _cleanup() @@ -41,14 +40,14 @@ _supported_fmt generic _supported_proto file _supported_os Linux -function do_run_qemu() +do_run_qemu() { echo Testing: "$@" $QEMU -nographic -qmp-pretty stdio -serial none "$@" echo } -function run_qemu() +run_qemu() { do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qmp \ | _filter_qemu | _filter_imgfmt \ diff --git a/tests/qemu-iotests/229 b/tests/qemu-iotests/229 index ff851ec431f36c67107bc4609d7dcf0770b1d86e..86602437fff07fc7e7b681da52db08437dcdd7a5 100755 --- a/tests/qemu-iotests/229 +++ b/tests/qemu-iotests/229 @@ -25,7 +25,6 @@ owner=jcody@redhat.com seq="$(basename $0)" echo "QA output created by $seq" -here="$PWD" status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/231 b/tests/qemu-iotests/231 index 3e283708b4c7c3290632135b5b79d5ef9b6ef9d7..e9f8aaacd34db6a53829a8402f0180a3aaf724db 100755 --- a/tests/qemu-iotests/231 +++ b/tests/qemu-iotests/231 @@ -26,7 +26,6 @@ owner=jcody@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() diff --git a/tests/qemu-iotests/232 b/tests/qemu-iotests/232 index bc2972d1248af270897152b86a69f937dda3d0c2..0708b8b155e73ec2471c4a18a7b4a6ecfdc561f7 100755 --- a/tests/qemu-iotests/232 +++ b/tests/qemu-iotests/232 @@ -24,7 +24,6 @@ owner=kwolf@redhat.com seq=`basename $0` echo "QA output created by $seq" -here=`pwd` status=1 # failure is the default! _cleanup() @@ -42,7 +41,7 @@ _supported_fmt generic _supported_proto file _supported_os Linux -function do_run_qemu() +do_run_qemu() { echo Testing: "$@" ( @@ -56,13 +55,13 @@ function do_run_qemu() echo } -function run_qemu() +run_qemu() { do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qemu | _filter_hmp | _filter_generated_node_ids | _filter_imgfmt } -function run_qemu_info_block() +run_qemu_info_block() { echo "info block -n" | run_qemu "$@" | grep -e "(file" -e "QEMU_PROG" } diff --git a/tests/qemu-iotests/233 b/tests/qemu-iotests/233 new file mode 100755 index 0000000000000000000000000000000000000000..a4da60d0ade54291ec5805fc2d4bb98d84ff5152 --- /dev/null +++ b/tests/qemu-iotests/233 @@ -0,0 +1,112 @@ +#!/bin/bash +# +# Test NBD TLS certificate / authorization integration +# +# Copyright (C) 2018 Red Hat, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# creator +owner=berrange@redhat.com + +seq=$(basename $0) +echo "QA output created by $seq" + +status=1 # failure is the default! + +_cleanup() +{ + nbd_server_stop + _cleanup_test_img + tls_x509_cleanup +} +trap "_cleanup; exit \$status" 0 1 2 3 15 + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter +. ./common.pattern +. ./common.tls +. ./common.nbd + +_supported_fmt raw qcow2 +_supported_proto file +# If porting to non-Linux, consider using socat instead of ss in common.nbd +_supported_os Linux +_require_command QEMU_NBD + +nbd_server_set_tcp_port +tls_x509_init + +echo +echo "== preparing TLS creds ==" + +tls_x509_create_root_ca "ca1" +tls_x509_create_root_ca "ca2" +tls_x509_create_server "ca1" "server1" +tls_x509_create_client "ca1" "client1" +tls_x509_create_client "ca2" "client2" + +echo +echo "== preparing image ==" +_make_test_img 64M +$QEMU_IO -c 'w -P 0x11 1m 1m' "$TEST_IMG" | _filter_qemu_io + +echo +echo "== check TLS client to plain server fails ==" +nbd_server_start_tcp_socket "$TEST_IMG" + +$QEMU_IMG info --image-opts \ + --object tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0 \ + driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \ + 2>&1 | sed "s/$nbd_tcp_port/PORT/g" + +nbd_server_stop + +echo +echo "== check plain client to TLS server fails ==" + +nbd_server_start_tcp_socket --object tls-creds-x509,dir=${tls_dir}/server1,endpoint=server,id=tls0,verify-peer=yes --tls-creds tls0 "$TEST_IMG" + +$QEMU_IMG info nbd://localhost:$nbd_tcp_port 2>&1 | sed "s/$nbd_tcp_port/PORT/g" + +echo +echo "== check TLS works ==" +$QEMU_IMG info --image-opts \ + --object tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0 \ + driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \ + 2>&1 | sed "s/$nbd_tcp_port/PORT/g" + +echo +echo "== check TLS with different CA fails ==" +$QEMU_IMG info --image-opts \ + --object tls-creds-x509,dir=${tls_dir}/client2,endpoint=client,id=tls0 \ + driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \ + 2>&1 | sed "s/$nbd_tcp_port/PORT/g" + +echo +echo "== perform I/O over TLS ==" +QEMU_IO_OPTIONS=$QEMU_IO_OPTIONS_NO_FMT +$QEMU_IO -c 'r -P 0x11 1m 1m' -c 'w -P 0x22 1m 1m' --image-opts \ + --object tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0 \ + driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \ + 2>&1 | _filter_qemu_io + +$QEMU_IO -f qcow2 -r -U -c 'r -P 0x22 1m 1m' "$TEST_IMG" | _filter_qemu_io + +# success, all done +echo "*** done" +rm -f $seq.full +status=0 diff --git a/tests/qemu-iotests/233.out b/tests/qemu-iotests/233.out new file mode 100644 index 0000000000000000000000000000000000000000..94acd9b947935d09205c9660769e908ca20d43f8 --- /dev/null +++ b/tests/qemu-iotests/233.out @@ -0,0 +1,40 @@ +QA output created by 233 + +== preparing TLS creds == +Generating a self signed certificate... +Generating a self signed certificate... +Generating a signed certificate... +Generating a signed certificate... +Generating a signed certificate... + +== preparing image == +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 +wrote 1048576/1048576 bytes at offset 1048576 +1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +== check TLS client to plain server fails == +qemu-img: Could not open 'driver=nbd,host=127.0.0.1,port=PORT,tls-creds=tls0': Denied by server for option 5 (starttls) +server reported: TLS not configured + +== check plain client to TLS server fails == +qemu-img: Could not open 'nbd://localhost:PORT': TLS negotiation required before option 8 (structured reply) +server reported: Option 0x8 not permitted before TLS + +== check TLS works == +image: nbd://127.0.0.1:PORT +file format: nbd +virtual size: 64M (67108864 bytes) +disk size: unavailable + +== check TLS with different CA fails == +option negotiation failed: Verify failed: No certificate was found. +qemu-img: Could not open 'driver=nbd,host=127.0.0.1,port=PORT,tls-creds=tls0': The certificate hasn't got a known issuer + +== perform I/O over TLS == +read 1048576/1048576 bytes at offset 1048576 +1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 1048576/1048576 bytes at offset 1048576 +1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +read 1048576/1048576 bytes at offset 1048576 +1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +*** done diff --git a/tests/qemu-iotests/check b/tests/qemu-iotests/check index aa94c6c7ea906e592a33fe53ab04c12de1cd7b00..89ed275988a16673a102803c726051b60e49916e 100755 --- a/tests/qemu-iotests/check +++ b/tests/qemu-iotests/check @@ -80,17 +80,17 @@ _full_imgfmt_details() _full_platform_details() { - os=`uname -s` - host=`hostname -s` - kernel=`uname -r` - platform=`uname -m` + os=$(uname -s) + host=$(hostname -s) + kernel=$(uname -r) + platform=$(uname -m) echo "$os/$platform $host $kernel" } # $1 = prog to look for set_prog_path() { - p=`command -v $1 2> /dev/null` + p=$(command -v $1 2> /dev/null) if [ -n "$p" -a -x "$p" ]; then type -p "$p" else @@ -99,7 +99,7 @@ set_prog_path() } if [ -z "$TEST_DIR" ]; then - TEST_DIR=`pwd`/scratch + TEST_DIR=$PWD/scratch fi if [ ! -e "$TEST_DIR" ]; then @@ -147,9 +147,9 @@ do if $group then # arg after -g - group_list=`sed -n <"$source_iotests/group" -e 's/$/ /' -e "/^[0-9][0-9][0-9].* $r /"'{ + group_list=$(sed -n <"$source_iotests/group" -e 's/$/ /' -e "/^[0-9][0-9][0-9].* $r /"'{ s/ .*//p -}'` +}') if [ -z "$group_list" ] then echo "Group \"$r\" is empty or not defined?" @@ -173,9 +173,9 @@ s/ .*//p # arg after -x # Populate $tmp.list with all tests awk '/^[0-9]{3,}/ {print $1}' "${source_iotests}/group" > $tmp.list 2>/dev/null - group_list=`sed -n <"$source_iotests/group" -e 's/$/ /' -e "/^[0-9][0-9][0-9].* $r /"'{ + group_list=$(sed -n <"$source_iotests/group" -e 's/$/ /' -e "/^[0-9][0-9][0-9].* $r /"'{ s/ .*//p -}'` +}') if [ -z "$group_list" ] then echo "Group \"$r\" is empty or not defined?" @@ -193,7 +193,7 @@ s/ .*//p rm -f $tmp.sed fi echo "/^$t\$/d" >>$tmp.sed - numsed=`expr $numsed + 1` + numsed=$(expr $numsed + 1) done sed -f $tmp.sed <$tmp.list >$tmp.tmp mv $tmp.tmp $tmp.list @@ -433,12 +433,12 @@ testlist options ;; [0-9]*-[0-9]*) - eval `echo $r | sed -e 's/^/start=/' -e 's/-/ end=/'` + eval $(echo $r | sed -e 's/^/start=/' -e 's/-/ end=/') ;; [0-9]*-) - eval `echo $r | sed -e 's/^/start=/' -e 's/-//'` - end=`echo [0-9][0-9][0-9] [0-9][0-9][0-9][0-9] | sed -e 's/\[0-9]//g' -e 's/ *$//' -e 's/.* //'` + eval $(echo $r | sed -e 's/^/start=/' -e 's/-//') + end=$(echo [0-9][0-9][0-9] [0-9][0-9][0-9][0-9] | sed -e 's/\[0-9]//g' -e 's/ *$//' -e 's/.* //') if [ -z "$end" ] then echo "No tests in range \"$r\"?" @@ -455,8 +455,8 @@ testlist options esac # get rid of leading 0s as can be interpreted as octal - start=`echo $start | sed 's/^0*//'` - end=`echo $end | sed 's/^0*//'` + start=$(echo $start | sed 's/^0*//') + end=$(echo $end | sed 's/^0*//') if $xpand then @@ -531,7 +531,7 @@ fi # should be sort -n, but this did not work for Linux when this # was ported from IRIX # -list=`sort $tmp.list` +list=$(sort $tmp.list) rm -f $tmp.list $tmp.tmp $tmp.sed if [ -z "$QEMU_PROG" ] @@ -590,7 +590,7 @@ fi export QEMU_NBD_PROG="$(type -p "$QEMU_NBD_PROG")" if [ -z "$QEMU_VXHS_PROG" ]; then - export QEMU_VXHS_PROG="`set_prog_path qnio_server`" + export QEMU_VXHS_PROG="$(set_prog_path qnio_server)" fi if [ -x "$build_iotests/socket_scm_helper" ] @@ -616,7 +616,7 @@ _wallclock() _timestamp() { - now=`date "+%T"` + now=$(date "+%T") printf %s " [$now]" } @@ -642,9 +642,9 @@ END { if (NR > 0) { if [ -f $tmp.expunged ] then - notrun=`wc -l <$tmp.expunged | sed -e 's/ *//g'` - try=`expr $try - $notrun` - list=`echo "$list" | sed -f $tmp.expunged` + notrun=$(wc -l <$tmp.expunged | sed -e 's/ *//g') + try=$(expr $try - $notrun) + list=$(echo "$list" | sed -f $tmp.expunged) fi echo "" >>check.log @@ -682,8 +682,8 @@ trap "_wrapup; exit \$status" 0 1 2 3 15 [ -f $TIMESTAMP_FILE ] || touch $TIMESTAMP_FILE -FULL_IMGFMT_DETAILS=`_full_imgfmt_details` -FULL_HOST_DETAILS=`_full_platform_details` +FULL_IMGFMT_DETAILS=$(_full_imgfmt_details) +FULL_HOST_DETAILS=$(_full_platform_details) cat <>$tmp.time + echo "$seq $(expr $stop - $start)" >>$tmp.time fi else echo " - output mismatch (see $seq.out.bad)" @@ -824,14 +824,14 @@ do if $err then bad="$bad $seq" - n_bad=`expr $n_bad + 1` + n_bad=$(expr $n_bad + 1) quick=false fi - [ -f $seq.notrun ] || try=`expr $try + 1` + [ -f $seq.notrun ] || try=$(expr $try + 1) seq="after_$seq" done interrupt=false -status=`expr $n_bad` +status=$(expr $n_bad) exit diff --git a/tests/qemu-iotests/common.config b/tests/qemu-iotests/common.config index 102aa6878a96f8d7bf2d65d3f727a17ad992d83b..9f460f203da87688787356eef54ac06d5b334a78 100644 --- a/tests/qemu-iotests/common.config +++ b/tests/qemu-iotests/common.config @@ -21,12 +21,10 @@ export LANG=C PATH=".:$PATH" -HOSTOS=`uname -s` -arch=`uname -m` +HOSTOS=$(uname -s) +arch=$(uname -m) [[ "$arch" =~ "ppc64" ]] && qemu_arch=ppc64 || qemu_arch="$arch" -export PWD=`pwd` - # make sure we have a standard umask umask 022 diff --git a/tests/qemu-iotests/common.nbd b/tests/qemu-iotests/common.nbd new file mode 100644 index 0000000000000000000000000000000000000000..233187a25ccf6e141605b57f3d87e2bfa3bd1212 --- /dev/null +++ b/tests/qemu-iotests/common.nbd @@ -0,0 +1,109 @@ +#!/bin/bash +# -*- shell-script-mode -*- +# +# Helpers for NBD server related config +# +# Copyright (C) 2018 Red Hat, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +nbd_unix_socket="${TEST_DIR}/qemu-nbd.sock" +nbd_tcp_addr="127.0.0.1" +nbd_pid_file="${TEST_DIR}/qemu-nbd.pid" + +nbd_server_stop() +{ + local NBD_PID + if [ -f "$nbd_pid_file" ]; then + read NBD_PID < "$nbd_pid_file" + rm -f "$nbd_pid_file" + if [ -n "$NBD_PID" ]; then + kill "$NBD_PID" + fi + fi + rm -f "$nbd_unix_socket" +} + +nbd_server_wait_for_unix_socket() +{ + pid=$1 + + for ((i = 0; i < 300; i++)) + do + if [ -r "$nbd_unix_socket" ]; then + return + fi + kill -s 0 $pid 2>/dev/null + if test $? != 0 + then + echo "qemu-nbd unexpectedly quit" + exit 1 + fi + sleep 0.1 + done + echo "Failed in check of unix socket created by qemu-nbd" + exit 1 +} + +nbd_server_start_unix_socket() +{ + nbd_server_stop + $QEMU_NBD -v -t -k "$nbd_unix_socket" "$@" & + nbd_server_wait_for_unix_socket $! +} + +nbd_server_set_tcp_port() +{ + (ss --help) >/dev/null 2>&1 || _notrun "ss utility not found, skipping test" + + for ((port = 10809; port <= 10909; port++)) + do + if ! ss -tln | grep -sqE ":$port\b"; then + nbd_tcp_port=$port + return + fi + done + + echo "Cannot find free TCP port for nbd in range 10809-10909" + exit 1 +} + +nbd_server_wait_for_tcp_socket() +{ + pid=$1 + + for ((i = 0; i < 300; i++)) + do + if ss -tln | grep -sqE ":$nbd_tcp_port\b"; then + return + fi + kill -s 0 $pid 2>/dev/null + if test $? != 0 + then + echo "qemu-nbd unexpectedly quit" + exit 1 + fi + sleep 0.1 + done + echo "Failed in check of TCP socket created by qemu-nbd" + exit 1 +} + +nbd_server_start_tcp_socket() +{ + nbd_server_stop + $QEMU_NBD -v -t -b $nbd_tcp_addr -p $nbd_tcp_port "$@" & + nbd_server_wait_for_tcp_socket $! +} diff --git a/tests/qemu-iotests/common.pattern b/tests/qemu-iotests/common.pattern index 34f4a8dc9b464e538ffa94f53a45f894b02e6f65..b67bb3413607e5315ed3a5f6e5edf1c5f48abd79 100644 --- a/tests/qemu-iotests/common.pattern +++ b/tests/qemu-iotests/common.pattern @@ -16,7 +16,7 @@ # along with this program. If not, see . # -function do_is_allocated() { +do_is_allocated() { local start=$1 local size=$2 local step=$3 @@ -27,11 +27,11 @@ function do_is_allocated() { done } -function is_allocated() { +is_allocated() { do_is_allocated "$@" | $QEMU_IO "$TEST_IMG" | _filter_qemu_io } -function do_io() { +do_io() { local op=$1 local start=$2 local size=$3 @@ -45,22 +45,22 @@ function do_io() { done } -function io_pattern() { +io_pattern() { do_io "$@" | $QEMU_IO "$TEST_IMG" | _filter_qemu_io } -function io() { +io() { local start=$2 local pattern=$(( (start >> 9) % 256 )) do_io "$@" $pattern | $QEMU_IO "$TEST_IMG" | _filter_qemu_io } -function io_zero() { +io_zero() { do_io "$@" 0 | $QEMU_IO "$TEST_IMG" | _filter_qemu_io } -function io_test() { +io_test() { local op=$1 local offset=$2 local cluster_size=$3 @@ -100,7 +100,7 @@ function io_test() { offset=$((offset + num_large * ( l2_size + half_cluster ))) } -function io_test2() { +io_test2() { local orig_offset=$1 local cluster_size=$2 local num=$3 diff --git a/tests/qemu-iotests/common.qemu b/tests/qemu-iotests/common.qemu index dadde2a266c16e96bd4f2f611b0ee4264c9f077d..7c87b897fa3da10ad5136aad76c11fec8d65cbd5 100644 --- a/tests/qemu-iotests/common.qemu +++ b/tests/qemu-iotests/common.qemu @@ -60,7 +60,7 @@ _in_fd=4 # $3: A string to search for in the response; if found, this indicates # failure and the test is either aborted (if $qemu_error_no_exit # is not set) or ${QEMU_STATUS[$1]} is set to -1 (otherwise). -function _timed_wait_for() +_timed_wait_for() { local h=${1} shift @@ -131,7 +131,7 @@ function _timed_wait_for() # strings the response will be scanned for. The first of the two # indicates success, the latter indicates failure. Failure is handled # like a timeout. -function _send_qemu_cmd() +_send_qemu_cmd() { local h=${1} local count=1 @@ -186,7 +186,7 @@ function _send_qemu_cmd() # Returns: # $QEMU_HANDLE: set to a handle value to communicate with this QEMU instance. # -function _launch_qemu() +_launch_qemu() { local comm= local fifo_out= @@ -262,7 +262,7 @@ function _launch_qemu() # If $wait is set to anything other than the empty string, the process will not # be killed but only waited for, and any output will be forwarded to stdout. If # $wait is empty, the process will be killed and all output will be suppressed. -function _cleanup_qemu() +_cleanup_qemu() { # QEMU_PID[], QEMU_IN[], QEMU_OUT[] all use same indices for i in "${!QEMU_OUT[@]}" diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc index 70ca65b49b3dee17f8ec39146ec14221ebf32a4e..e15e7a7c8e693c56ff0efa8894b30aa535851347 100644 --- a/tests/qemu-iotests/common.rc +++ b/tests/qemu-iotests/common.rc @@ -160,7 +160,7 @@ fi ORIG_TEST_IMG="$TEST_IMG" if [ -z "$TEST_DIR" ]; then - TEST_DIR=`pwd`/scratch + TEST_DIR=$PWD/scratch fi QEMU_TEST_DIR="${TEST_DIR}" diff --git a/tests/qemu-iotests/common.tls b/tests/qemu-iotests/common.tls new file mode 100644 index 0000000000000000000000000000000000000000..39f17c1b999fff49632851d84883681793dd724a --- /dev/null +++ b/tests/qemu-iotests/common.tls @@ -0,0 +1,137 @@ +#!/bin/bash +# +# Helpers for TLS related config +# +# Copyright (C) 2018 Red Hat, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +tls_dir="${TEST_DIR}/tls" + +tls_x509_cleanup() +{ + rm -f "${tls_dir}"/*.pem + rm -f "${tls_dir}"/*/*.pem + rmdir "${tls_dir}"/* + rmdir "${tls_dir}" +} + + +tls_x509_init() +{ + mkdir -p "${tls_dir}" + + # use a fixed key so we don't waste system entropy on + # each test run + cat > "${tls_dir}/key.pem" < "${tls_dir}/ca.info" <&1 | head -1 + + rm -f "${tls_dir}/ca.info" +} + + +tls_x509_create_server() +{ + caname=$1 + name=$2 + + mkdir -p "${tls_dir}/$name" + cat > "${tls_dir}/cert.info" <&1 | head -1 + ln -s "${tls_dir}/$caname-cert.pem" "${tls_dir}/$name/ca-cert.pem" + ln -s "${tls_dir}/key.pem" "${tls_dir}/$name/server-key.pem" + + rm -f "${tls_dir}/cert.info" +} + + +tls_x509_create_client() +{ + caname=$1 + name=$2 + + mkdir -p "${tls_dir}/$name" + cat > "${tls_dir}/cert.info" <&1 | head -1 + ln -s "${tls_dir}/$caname-cert.pem" "${tls_dir}/$name/ca-cert.pem" + ln -s "${tls_dir}/key.pem" "${tls_dir}/$name/client-key.pem" + + rm -f "${tls_dir}/cert.info" +} diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group index 4d194716f28b740eb7c4e4ee83754139d16c155a..2722103381e4003154a8b1cb0836a43f0602fa19 100644 --- a/tests/qemu-iotests/group +++ b/tests/qemu-iotests/group @@ -229,3 +229,4 @@ 229 auto quick 231 auto quick 232 auto quick +233 auto quick