qemu-iotests: Don't create fifos / pidfiles with protocol paths

Trying to create, use, and remove fifos and pidfiles on protocol paths
(e.g. nfs://localhost/scratch/qemu-nbd.pid) is obviously broken.

Use the local $TEST_DIR path before it is 'protocolized' for these
files.

Signed-off-by: Jeff Cody <jcody@redhat.com>
Message-id: bb4a731a35bc4ac81fe3db17479dd686315317c7.1485392617.git.jcody@redhat.com
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
Jeff Cody 2017-01-25 20:08:21 -05:00 committed by Max Reitz
parent 418661e032
commit 846a1d118e
3 changed files with 12 additions and 10 deletions

View File

@ -109,7 +109,7 @@ _qemu_wrapper()
{
(
if [ -n "${QEMU_NEED_PID}" ]; then
echo $BASHPID > "${TEST_DIR}/qemu-${_QEMU_HANDLE}.pid"
echo $BASHPID > "${QEMU_TEST_DIR}/qemu-${_QEMU_HANDLE}.pid"
fi
exec "$QEMU_PROG" $QEMU_OPTIONS "$@"
)
@ -151,7 +151,7 @@ _qemu_io_wrapper()
_qemu_nbd_wrapper()
{
(
echo $BASHPID > "${TEST_DIR}/qemu-nbd.pid"
echo $BASHPID > "${QEMU_TEST_DIR}/qemu-nbd.pid"
exec "$QEMU_NBD_PROG" $QEMU_NBD_OPTIONS "$@"
)
}
@ -186,6 +186,8 @@ if [ -z "$TEST_DIR" ]; then
TEST_DIR=`pwd`/scratch
fi
QEMU_TEST_DIR="${TEST_DIR}"
if [ ! -e "$TEST_DIR" ]; then
mkdir "$TEST_DIR"
fi

View File

@ -27,8 +27,8 @@
QEMU_COMM_TIMEOUT=10
QEMU_FIFO_IN="${TEST_DIR}/qmp-in-$$"
QEMU_FIFO_OUT="${TEST_DIR}/qmp-out-$$"
QEMU_FIFO_IN="${QEMU_TEST_DIR}/qmp-in-$$"
QEMU_FIFO_OUT="${QEMU_TEST_DIR}/qmp-out-$$"
QEMU_HANDLE=0
@ -204,9 +204,9 @@ function _cleanup_qemu()
for i in "${!QEMU_OUT[@]}"
do
local QEMU_PID
if [ -f "${TEST_DIR}/qemu-${i}.pid" ]; then
read QEMU_PID < "${TEST_DIR}/qemu-${i}.pid"
rm -f "${TEST_DIR}/qemu-${i}.pid"
if [ -f "${QEMU_TEST_DIR}/qemu-${i}.pid" ]; then
read QEMU_PID < "${QEMU_TEST_DIR}/qemu-${i}.pid"
rm -f "${QEMU_TEST_DIR}/qemu-${i}.pid"
if [ -z "${wait}" ] && [ -n "${QEMU_PID}" ]; then
kill -KILL ${QEMU_PID} 2>/dev/null
fi

View File

@ -193,11 +193,11 @@ _cleanup_test_img()
case "$IMGPROTO" in
nbd)
if [ -f "${TEST_DIR}/qemu-nbd.pid" ]; then
if [ -f "${QEMU_TEST_DIR}/qemu-nbd.pid" ]; then
local QEMU_NBD_PID
read QEMU_NBD_PID < "${TEST_DIR}/qemu-nbd.pid"
read QEMU_NBD_PID < "${QEMU_TEST_DIR}/qemu-nbd.pid"
kill ${QEMU_NBD_PID}
rm -f "${TEST_DIR}/qemu-nbd.pid"
rm -f "${QEMU_TEST_DIR}/qemu-nbd.pid"
fi
rm -f "$TEST_IMG_FILE"
;;