[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 03/10] qemu-iotests: automatically clean up bash
From: |
Jeff Cody |
Subject: |
[Qemu-devel] [PATCH v5 03/10] qemu-iotests: automatically clean up bash protocol servers |
Date: |
Tue, 17 Oct 2017 12:31:48 -0400 |
For bash tests, this allows 'check' to reap all launch protocol
servers / processes, after a test has finished running.
Signed-off-by: Jeff Cody <address@hidden>
---
tests/qemu-iotests/check | 13 +++++++
tests/qemu-iotests/common.rc | 93 +++++++++++++++++++++++++++++---------------
2 files changed, 75 insertions(+), 31 deletions(-)
diff --git a/tests/qemu-iotests/check b/tests/qemu-iotests/check
index 5ae34bf..b4ab646 100755
--- a/tests/qemu-iotests/check
+++ b/tests/qemu-iotests/check
@@ -757,6 +757,8 @@ do
fi
export OUTPUT_DIR=$PWD
if $debug; then
+ # Do this in a sub-shell, so we are operating on the right
+ # TEST_DIR / QEMU_TEST_DIR
(
export TEST_DIR=$TEST_DIR_SEQ
cd "$source_iotests";
@@ -766,6 +768,8 @@ do
$run_command -d 2>&1 | tee $tmp.out
)
else
+ # Do this in a sub-shell, so we are operating on the right
+ # TEST_DIR / QEMU_TEST_DIR
(
export TEST_DIR=$TEST_DIR_SEQ
cd "$source_iotests";
@@ -837,6 +841,15 @@ do
fi
fi
+ # Do this in a sub-shell, so we are operating on the right
+ # TEST_DIR / QEMU_TEST_DIR
+ (
+ export TEST_DIR=$TEST_DIR_SEQ
+ . "$source_iotests/common.config"
+ . "$source_iotests/common.rc"
+
+ _cleanup_protocols
+ )
rm -rf "$TEST_DIR_SEQ"
fi
diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc
index 0e8a33c..a345ffd 100644
--- a/tests/qemu-iotests/common.rc
+++ b/tests/qemu-iotests/common.rc
@@ -101,7 +101,7 @@ _qemu_nbd_wrapper()
_qemu_vxhs_wrapper()
{
(
- echo $BASHPID > "${TEST_DIR}/qemu-vxhs.pid"
+ echo $BASHPID > "${QEMU_TEST_DIR}/qemu-vxhs.pid"
exec "$QEMU_VXHS_PROG" $QEMU_VXHS_OPTIONS "$@"
)
}
@@ -248,7 +248,7 @@ _make_test_img()
# Start QNIO server on image directory for vxhs protocol
if [ $IMGPROTO = "vxhs" ]; then
- eval "$QEMU_VXHS -d $TEST_DIR > /dev/null &"
+ eval "$QEMU_VXHS -d $QEMU_TEST_DIR > /dev/null &"
sleep 1 # Wait for server to come up.
fi
}
@@ -264,29 +264,64 @@ _rm_test_img()
rm -f "$img"
}
+_cleanup_nbd()
+{
+ if [ -f "${QEMU_TEST_DIR}/qemu-nbd.pid" ]; then
+ local QEMU_NBD_PID
+ read QEMU_NBD_PID < "${QEMU_TEST_DIR}/qemu-nbd.pid"
+ rm -f "${QEMU_TEST_DIR}/qemu-nbd.pid"
+ kill ${QEMU_NBD_PID} >/dev/null 2>&1
+ fi
+}
+
+_cleanup_vxhs()
+{
+ if [ -f "${QEMU_TEST_DIR}/qemu-vxhs.pid" ]; then
+ local QEMU_VXHS_PID
+ read QEMU_VXHS_PID < "${QEMU_TEST_DIR}/qemu-vxhs.pid"
+ rm -f "${QEMU_TEST_DIR}/qemu-vxhs.pid"
+ kill ${QEMU_VXHS_PID} >/dev/null 2>&1
+ fi
+}
+
+_cleanup_rbd()
+{
+ rbd --no-progress rm "$QEMU_TEST_DIR/t.$IMGFMT" > /dev/null
+}
+
+_cleanup_sheepdog()
+{
+ collie vdi delete "$QEMU_TEST_DIR/t.$IMGFMT"
+}
+
+
+_cleanup_protocols()
+{
+ # Some tests (e.g. 058) start some protocols
+ # even though the protocol was not specified when running
+ # check. If the wrappers create pidfiles, go ahead and clean
+ # up without checking $IMGPROTO.
+ _cleanup_nbd
+ _cleanup_vxhs
+
+ case "$IMGPROTO" in
+
+ rbd)
+ _cleanup_rbd
+ ;;
+
+ sheepdog)
+ _cleanup_sheepdog
+ ;;
+
+ esac
+}
+
_cleanup_test_img()
{
+ _cleanup_protocols
+
case "$IMGPROTO" in
-
- nbd)
- if [ -f "${QEMU_TEST_DIR}/qemu-nbd.pid" ]; then
- local QEMU_NBD_PID
- read QEMU_NBD_PID < "${QEMU_TEST_DIR}/qemu-nbd.pid"
- kill ${QEMU_NBD_PID}
- rm -f "${QEMU_TEST_DIR}/qemu-nbd.pid"
- fi
- rm -f "$TEST_IMG_FILE"
- ;;
- vxhs)
- if [ -f "${TEST_DIR}/qemu-vxhs.pid" ]; then
- local QEMU_VXHS_PID
- read QEMU_VXHS_PID < "${TEST_DIR}/qemu-vxhs.pid"
- kill ${QEMU_VXHS_PID} >/dev/null 2>&1
- rm -f "${TEST_DIR}/qemu-vxhs.pid"
- fi
- rm -f "$TEST_IMG_FILE"
- ;;
-
file)
_rm_test_img "$TEST_DIR/t.$IMGFMT"
_rm_test_img "$TEST_DIR/t.$IMGFMT.orig"
@@ -298,16 +333,12 @@ _cleanup_test_img()
TEST_IMG="$ORIG_TEST_IMG"
fi
;;
-
- rbd)
- rbd --no-progress rm "$TEST_DIR/t.$IMGFMT" > /dev/null
- ;;
-
- sheepdog)
- collie vdi delete "$TEST_DIR/t.$IMGFMT"
- ;;
-
esac
+
+ if [ -n "$TEST_IMG_FILE" ]
+ then
+ rm -f "$TEST_IMG_FILE"
+ fi
}
_check_test_img()
--
2.9.5
- [Qemu-devel] [PATCH v5 00/10] qemu-iotests improvements, Jeff Cody, 2017/10/17
- [Qemu-devel] [PATCH v5 01/10] qemu-iotests: refuse to run if TEST_DIR contains spaces, Jeff Cody, 2017/10/17
- [Qemu-devel] [PATCH v5 02/10] qemu-iotests: set TEST_DIR to a unique dir for each test, Jeff Cody, 2017/10/17
- [Qemu-devel] [PATCH v5 03/10] qemu-iotests: automatically clean up bash protocol servers,
Jeff Cody <=
- Re: [Qemu-devel] [PATCH v5 03/10] qemu-iotests: automatically clean up bash protocol servers, Eric Blake, 2017/10/17
- Re: [Qemu-devel] [PATCH v5 03/10] qemu-iotests: automatically clean up bash protocol servers, Paolo Bonzini, 2017/10/18
- Re: [Qemu-devel] [PATCH v5 03/10] qemu-iotests: automatically clean up bash protocol servers, Jeff Cody, 2017/10/18
- Re: [Qemu-devel] [PATCH v5 03/10] qemu-iotests: automatically clean up bash protocol servers, Paolo Bonzini, 2017/10/18
- Re: [Qemu-devel] [PATCH v5 03/10] qemu-iotests: automatically clean up bash protocol servers, Jeff Cody, 2017/10/18
- Re: [Qemu-devel] [PATCH v5 03/10] qemu-iotests: automatically clean up bash protocol servers, Paolo Bonzini, 2017/10/18
- Re: [Qemu-devel] [PATCH v5 03/10] qemu-iotests: automatically clean up bash protocol servers, Jeff Cody, 2017/10/18
- Re: [Qemu-devel] [PATCH v5 03/10] qemu-iotests: automatically clean up bash protocol servers, Paolo Bonzini, 2017/10/18
- Re: [Qemu-devel] [PATCH v5 03/10] qemu-iotests: automatically clean up bash protocol servers, Jeff Cody, 2017/10/18
- Re: [Qemu-devel] [PATCH v5 03/10] qemu-iotests: automatically clean up bash protocol servers, Paolo Bonzini, 2017/10/18