On 2015-02-04 at 22:44, Xiao Guang Chen wrote:
From: Mao Chuan Li <maoch...@linux.vnet.ibm.com>
This patch adds qemu machine type support to the io test suite. Based on
the qemu default machine type the reference output file can now vary
from the default to a machine specific output file if necessary. That
shall allow all platforms to use this test suite.
Reviewed-by: Michael Mueller <m...@linux.vnet.ibm.com>
Signed-off-by: Mao Chuan Li <maoch...@linux.vnet.ibm.com>
---
tests/qemu-iotests/check | 5 +++++
tests/qemu-iotests/common.config | 1 +
tests/qemu-iotests/iotests.py | 1 +
3 files changed, 7 insertions(+)
diff --git a/tests/qemu-iotests/check b/tests/qemu-iotests/check
index baeae80..c72429b 100755
--- a/tests/qemu-iotests/check
+++ b/tests/qemu-iotests/check
@@ -324,6 +324,11 @@ do
fi
reference="$source_iotests/$seq.out"
+ reference_machine="$source_iotests/$seq.$QEMU_DEFAULT_MACHINE.out"
+ if [ -f $reference_machine ]; then
Maybe this should be [ -f "$reference_machine" ]. I guess spaces in the
directory name will break the qemu-iotests anyway, but there's no reason
not to use quotes here.
+ reference=$reference_machine
+ fi
+
if [ "$CACHEMODE" = "none" ]; then
[ -f "$source_iotests/$seq.out.nocache" ] &&
reference="$source_iotests/$seq.out.nocache"
fi
diff --git a/tests/qemu-iotests/common.config b/tests/qemu-iotests/common.config
index cff91e1..6ded76a 100644
--- a/tests/qemu-iotests/common.config
+++ b/tests/qemu-iotests/common.config
@@ -107,6 +107,7 @@ export QEMU="$QEMU_PROG $QEMU_OPTIONS"
export QEMU_IMG=$QEMU_IMG_PROG
export QEMU_IO="$QEMU_IO_PROG $QEMU_IO_OPTIONS"
export QEMU_NBD=$QEMU_NBD_PROG
+export QEMU_DEFAULT_MACHINE=$($QEMU -machine ? | awk '/(default)/{print $1}')
Interesting that "-machine ?" works. I would have expected it needed to
be "-machine \?".
Apparently bash does not replace wildcard characters if there is no
match (in contrast, zsh errors out in that case). Therefore, this only
works as long as there is no single-character-named file in the
directory where "check" is executed (test: "touch i; ./check").
Therefore, I think this needs to be "-machine \?" after all.
Max
[ -f /etc/qemu-iotest.config ] && . /etc/qemu-iotest.config
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index 87002e0..8d3f047 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -39,6 +39,7 @@ imgproto = os.environ.get('IMGPROTO', 'file')
test_dir = os.environ.get('TEST_DIR', '/var/tmp')
output_dir = os.environ.get('OUTPUT_DIR', '.')
cachemode = os.environ.get('CACHEMODE')
+qemu_default_machine = os.environ.get('QEMU_DEFAULT_MACHINE')
socket_scm_helper = os.environ.get('SOCKET_SCM_HELPER', 'socket_scm_helper')