diff mbox

[v4,2/2] qemu-io: Add regression tests

Message ID 20170131135703.5638-3-nirsof@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Nir Soffer Jan. 31, 2017, 1:57 p.m. UTC
From: Nir Soffer <nsoffer@redhat.com>

Add regression tests checking that qemu-io fail with non-zero exit code
when reading non-existing file or using the wrong format.

Signed-off-by: Nir Soffer <nirsof@gmail.com>
---
 tests/qemu-iotests/173     | 59 ++++++++++++++++++++++++++++++++++++++++++++++
 tests/qemu-iotests/173.out |  9 +++++++
 tests/qemu-iotests/group   |  1 +
 3 files changed, 69 insertions(+)
 create mode 100755 tests/qemu-iotests/173
 create mode 100644 tests/qemu-iotests/173.out

Comments

Eric Blake Jan. 31, 2017, 2:53 p.m. UTC | #1
On 01/31/2017 07:57 AM, Nir Soffer wrote:
> From: Nir Soffer <nsoffer@redhat.com>
> 
> Add regression tests checking that qemu-io fail with non-zero exit code

s/fail/fails/

> when reading non-existing file or using the wrong format.
> 
> Signed-off-by: Nir Soffer <nirsof@gmail.com>

Odd to have the 'From:' and the 'S-o-b:' from different addresses.  More
on that below...

> ---
>  tests/qemu-iotests/173     | 59 ++++++++++++++++++++++++++++++++++++++++++++++
>  tests/qemu-iotests/173.out |  9 +++++++
>  tests/qemu-iotests/group   |  1 +
>  3 files changed, 69 insertions(+)
>  create mode 100755 tests/qemu-iotests/173
>  create mode 100644 tests/qemu-iotests/173.out
> 
> diff --git a/tests/qemu-iotests/173 b/tests/qemu-iotests/173
> new file mode 100755
> index 0000000..1d1fd6d
> --- /dev/null
> +++ b/tests/qemu-iotests/173
> @@ -0,0 +1,59 @@
> +#!/bin/bash
> +#
> +# Test that qemu-io fail with non-zero exit code
> +#
> +# Copyright (C) 2017 Red Hat, Inc.

A bit unusual to use a Red Hat copyright,...

> +#
> +# 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 <http://www.gnu.org/licenses/>.
> +#
> +
> +# creator
> +owner=nirsof@gmail.com

...but a personal address.  But as I understand, Red Hat doesn't see
anything wrong with that, so the copyright line is no need to respin
(other companies may have different policies, but that's up to employees
of those companies to comply with).  Still, you may want to check
whether .mailmap needs an entry, and/or fix your git config settings to
use a consistent address, since mixing email addresses in the git log
can make it harder to trace which email address you prefer.

> +
> +_supported_fmt raw

Is it worth making this test work for more than just raw?

> +
> +
> +size=256K
> +_make_test_img $size
> +
> +echo
> +echo "== reading wrong format should fail =="
> +$QEMU_IO -f qcow2 -c "read 0 $size" "$TEST_IMG" 2>&1 | _filter_testdir

If we widen the test to support additional formats, then the '-f qcow2'
would have to be variable to guarantee that it is not the same type as
the current format.

I guess that the point of this test is to ensure qemu-io behaves sanely,
and we've done that with a single format (even if it means that test
doesn't get run on other formats, we aren't really losing much because
it is not a format-specific failure).  So I guess I'm okay with your
decision to just support raw.

> +test "${PIPESTATUS[0]}" -eq 1 || _fail "did not fail"

Thank goodness this is a bash script, as that is a bashism.  But it
works for me.

> +++ b/tests/qemu-iotests/group
> @@ -165,3 +165,4 @@
>  170 rw auto quick
>  171 rw auto quick
>  172 auto
> +173 auto

I already have a pending patch series that adds test 173; it's a trivial
merge conflict for whoever lands second, although if you have a reason
to respin, you may want to grab 174.
https://lists.gnu.org/archive/html/qemu-devel/2016-12/msg02834.html
diff mbox

Patch

diff --git a/tests/qemu-iotests/173 b/tests/qemu-iotests/173
new file mode 100755
index 0000000..1d1fd6d
--- /dev/null
+++ b/tests/qemu-iotests/173
@@ -0,0 +1,59 @@ 
+#!/bin/bash
+#
+# Test that qemu-io fail with non-zero exit code
+#
+# Copyright (C) 2017 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 <http://www.gnu.org/licenses/>.
+#
+
+# creator
+owner=nirsof@gmail.com
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+here=`pwd`
+status=1	# failure is the default!
+
+_cleanup()
+{
+	_cleanup_test_img
+}
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+# get standard environment, filters and checks
+. ./common.rc
+. ./common.filter
+
+_supported_fmt raw
+
+
+size=256K
+_make_test_img $size
+
+echo
+echo "== reading wrong format should fail =="
+$QEMU_IO -f qcow2 -c "read 0 $size" "$TEST_IMG" 2>&1 | _filter_testdir
+test "${PIPESTATUS[0]}" -eq 1 || _fail "did not fail"
+
+echo
+echo "== reading missing file should fail =="
+$QEMU_IO -c "read 0 $size" "$TEST_DIR/missing" 2>&1 | _filter_testdir
+test "${PIPESTATUS[0]}" -eq 1 || _fail "did not fail"
+
+# success, all done
+echo "*** done"
+rm -f $seq.full
+status=0
diff --git a/tests/qemu-iotests/173.out b/tests/qemu-iotests/173.out
new file mode 100644
index 0000000..47012a3
--- /dev/null
+++ b/tests/qemu-iotests/173.out
@@ -0,0 +1,9 @@ 
+QA output created by 173
+Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=262144
+
+== reading wrong format should fail ==
+can't open device TEST_DIR/t.raw: Image is not in qcow2 format
+
+== reading missing file should fail ==
+can't open device TEST_DIR/missing: Could not open 'TEST_DIR/missing': No such file or directory
+*** done
diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group
index 866c1a0..069a5f3 100644
--- a/tests/qemu-iotests/group
+++ b/tests/qemu-iotests/group
@@ -165,3 +165,4 @@ 
 170 rw auto quick
 171 rw auto quick
 172 auto
+173 auto