diff mbox

[v1,RFC,0/9] Update tests/qemu-iotests cases for multi-platform support

Message ID 20141127120831.66e0b980@bee
State New
Headers show

Commit Message

Michael Mueller Nov. 27, 2014, 11:08 a.m. UTC
On Thu, 27 Nov 2014 10:30:33 +0100
Max Reitz <mreitz@redhat.com> wrote:

> On 2014-11-13 at 11:36, Mao Chuan Li wrote:
> > Currently the qemu-iotest framework is focused on the x86 platform. The suite should be
> > usable by other platforms as well. To enable multi-platform usage, this patch set enhances
> > the framework scripts to address this. By using the default machine type of the platform one
> > can add specific output files if it deviates from the default. Secondly, single test cases
> > can be adjusted as well when e.g. devices have different names or are not supported at all.
> >
> > Mao Chuan Li (9):
> >    qemu-iotests: run qemu with -nodefaults
> >    qemu-iotests: qemu machine type support
> >    qemu-iotests: add core_pattern access functions
> >    qemu-iotests: fix test 039
> 
> >    qemu-iotests: s390x: fix test 071
> >    qemu-iotests: s390x: fix test 087
> 
> To me, the main difference between the current test output and the new 
> s390-specific seems to be lines about CD and floppy disk; due to patch 
> 1, they are gone from x86 as well, though. Therefore, we don't need 
> special s390 output, but need to apply the changes directly to 071.out 
> and 087.out.

perfect, that's fully in our interest.

> 
> Furthermore, after patch 1, tests 067 and 091 fail for me on x86, too. I 
> don't know why 091 fails, but 067 fails because CD and floppy are 
> missing from the block-query result and the DEVICE_TRAY_MOVED events are 
> missing from QMP output in general (which is completely fine, we just 
> need to adjust the reference output accordingly).
> 
> Max
> 
> >    qemu-iotests: s390x: fix test 041
> >    qemu-iotests: s390x: fix test 055
> >    qemu-iotests: s390x: fix test 051
> 

We have two more test 060 and 082 that fail with the following difference to
the reference output. We analyzed it and it turns out that the size on disk is
file system dependent. In our case it ran on a s390/ext3. Thus we think comparing
the size on disk should be filtered. With other file system like ext4 or tmpfs we
get also 196K. We don't want to enforce a specific file system to be used.    

060         - output mismatch (see 060.out.bad)

Comments

Kevin Wolf Nov. 27, 2014, 11:27 a.m. UTC | #1
Am 27.11.2014 um 12:08 hat Michael Mueller geschrieben:
> On Thu, 27 Nov 2014 10:30:33 +0100
> Max Reitz <mreitz@redhat.com> wrote:
> 
> > On 2014-11-13 at 11:36, Mao Chuan Li wrote:
> > > Currently the qemu-iotest framework is focused on the x86 platform. The suite should be
> > > usable by other platforms as well. To enable multi-platform usage, this patch set enhances
> > > the framework scripts to address this. By using the default machine type of the platform one
> > > can add specific output files if it deviates from the default. Secondly, single test cases
> > > can be adjusted as well when e.g. devices have different names or are not supported at all.
> > >
> > > Mao Chuan Li (9):
> > >    qemu-iotests: run qemu with -nodefaults
> > >    qemu-iotests: qemu machine type support
> > >    qemu-iotests: add core_pattern access functions
> > >    qemu-iotests: fix test 039
> > 
> > >    qemu-iotests: s390x: fix test 071
> > >    qemu-iotests: s390x: fix test 087
> > 
> > To me, the main difference between the current test output and the new 
> > s390-specific seems to be lines about CD and floppy disk; due to patch 
> > 1, they are gone from x86 as well, though. Therefore, we don't need 
> > special s390 output, but need to apply the changes directly to 071.out 
> > and 087.out.
> 
> perfect, that's fully in our interest.
> 
> > 
> > Furthermore, after patch 1, tests 067 and 091 fail for me on x86, too. I 
> > don't know why 091 fails, but 067 fails because CD and floppy are 
> > missing from the block-query result and the DEVICE_TRAY_MOVED events are 
> > missing from QMP output in general (which is completely fine, we just 
> > need to adjust the reference output accordingly).
> > 
> > Max
> > 
> > >    qemu-iotests: s390x: fix test 041
> > >    qemu-iotests: s390x: fix test 055
> > >    qemu-iotests: s390x: fix test 051
> > 
> 
> We have two more test 060 and 082 that fail with the following difference to
> the reference output. We analyzed it and it turns out that the size on disk is
> file system dependent. In our case it ran on a s390/ext3. Thus we think comparing
> the size on disk should be filtered. With other file system like ext4 or tmpfs we
> get also 196K. We don't want to enforce a specific file system to be used.    
> 
> 060         - output mismatch (see 060.out.bad)
> --- /home/mimu/prog/qemu/tests/qemu-iotests/060.out	2014-11-07 09:34:09.106410738 +0100
> +++ 060.out.bad	2014-11-27 11:32:43.342907638 +0100
> @@ -14,7 +14,7 @@
>  image: TEST_DIR/t.qcow2
>  file format: qcow2
>  virtual size: 64M (67108864 bytes)
> -disk size: 196K
> +disk size: 200K
>  cluster_size: 65536
>  Format specific information:
>      compat: 1.1
> 
> Would this be excaptable with replacing the out file
> 
> diff --git a/tests/qemu-iotests/060 b/tests/qemu-iotests/060
> index 9772d36..3f608ed 100755
> --- a/tests/qemu-iotests/060
> +++ b/tests/qemu-iotests/060
> @@ -77,7 +77,7 @@ $QEMU_IO -c "$OPEN_RW" -c "write -P 0x2a 0 512" | _filter_qemu_io
>  $PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
>  
>  # This information should be available through qemu-img info
> -$QEMU_IMG info "$TEST_IMG" | _filter_testdir
> +$QEMU_IMG info "$TEST_IMG" | _filter_testdir | _filter_disk_size

_img_info already filters the size out. The reason why it isn't used
here is that it also filters all of the format specific information out.
We could probably make that part optional and then reuse it here.

Kevin
diff mbox

Patch

--- /home/mimu/prog/qemu/tests/qemu-iotests/060.out	2014-11-07 09:34:09.106410738 +0100
+++ 060.out.bad	2014-11-27 11:32:43.342907638 +0100
@@ -14,7 +14,7 @@ 
 image: TEST_DIR/t.qcow2
 file format: qcow2
 virtual size: 64M (67108864 bytes)
-disk size: 196K
+disk size: 200K
 cluster_size: 65536
 Format specific information:
     compat: 1.1

Would this be excaptable with replacing the out file

diff --git a/tests/qemu-iotests/060 b/tests/qemu-iotests/060
index 9772d36..3f608ed 100755
--- a/tests/qemu-iotests/060
+++ b/tests/qemu-iotests/060
@@ -77,7 +77,7 @@  $QEMU_IO -c "$OPEN_RW" -c "write -P 0x2a 0 512" | _filter_qemu_io
 $PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
 
 # This information should be available through qemu-img info
-$QEMU_IMG info "$TEST_IMG" | _filter_testdir
+$QEMU_IMG info "$TEST_IMG" | _filter_testdir | _filter_disk_size
 
 # Try to open the image R/W (which should fail)
 $QEMU_IO -c "$OPEN_RW" -c "read 0 512" 2>&1 | _filter_qemu_io \
diff --git a/tests/qemu-iotests/common.filter b/tests/qemu-iotests/common.filter
index 3acdb30..fe6729d 100644
--- a/tests/qemu-iotests/common.filter
+++ b/tests/qemu-iotests/common.filter
@@ -220,5 +220,10 @@  _filter_qemu_img_map()
         -e 's/Mapped to *//' | _filter_testdir | _filter_imgfmt
 }
 
+_filter_disk_size()
+{
+    sed -e '/^disk size: .*$/d'
+}
+
 # make sure this script returns success
 /bin/true