[lvm-devel] test/t1000-lvcreate-usage.sh: exercise lvcreate
Jim Meyering
jim at meyering.net
Mon Sep 17 14:42:59 UTC 2007
Dave and I were talking last week about the lack of
integration tests, and since he was working on lvcreate
and I'd just created this test framework, he sent me a bunch
of commands he'd been using to test lvcreate; Today I
made them work with the new framework.
When I run the new test by itself, it does this:
# cd test && ./t1000-lvcreate-usage.sh
* ok 1: set up temp files, loopback devices, PVs, and a VG
* ok 2: lvcreate w/negative stripesize must fail
* ok 3: lvcreate w/too-large stripesize must fail
* ok 4: lvcreate w/single stripe succeeds with diagnostics to stdout
* ok 5: lvcreate w/no stripe size succeeds with diagnostics to stdout
* ok 6: lvcreate w/invalid number of stripes must fail
* ok 7: lvcreate w/invalid stripe size must fail
* passed all 7 test(s)
[Remember, I'm new to LVM, so if there are better/cleaner ways to test
these things, please let me know, soon. Otherwise, anything that's ugly
or plain wrong in this test may end up being copy/pasted into new tests.
Of course, if there's too much commonality, things will be factored out
into shell functions that are shared, but still... ]
Here's the patch:
Test how lvcreate handles its command-line options.
* test/t1000-lvcreate-usage.sh: New tests.
* test/Makefile.in (T): Add it.
Derived from test cases by Dave Wysochanski.
Signed-off-by: Jim Meyering <jim at meyering.net>
---
test/Makefile.in | 1 +
test/t1000-lvcreate-usage.sh | 70 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 71 insertions(+), 0 deletions(-)
create mode 100755 test/t1000-lvcreate-usage.sh
diff --git a/test/Makefile.in b/test/Makefile.in
index a7f2876..b54560f 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -32,6 +32,7 @@ SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
# T = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh)
T = \
t0000-basic.sh \
+ t1000-lvcreate-usage.sh \
t3000-lvcreate-pvtags.sh \
t4000-pv-range-overflow.sh
diff --git a/test/t1000-lvcreate-usage.sh b/test/t1000-lvcreate-usage.sh
new file mode 100755
index 0000000..5f04b3e
--- /dev/null
+++ b/test/t1000-lvcreate-usage.sh
@@ -0,0 +1,70 @@
+#!/bin/sh
+
+test_description='Exercise some lvcreate diagnostics'
+privileges_required_=1
+
+. ./test-lib.sh
+
+cleanup_()
+{
+ test -n "$vg" && {
+ vgchange -an "$vg"
+ lvremove -ff "$vg"
+ vgremove "$vg"
+ } > /dev/null
+ test -n "$d1" && losetup -d "$d1"
+ test -n "$d2" && losetup -d "$d2"
+ rm -f "$f1" "$f2"
+}
+
+test_expect_success \
+ 'set up temp files, loopback devices, PVs, and a VG' \
+ 'f1="$(pwd)/1" && d1=$(loop_setup_ "$f1") &&
+ f2="$(pwd)/2" && d2=$(loop_setup_ "$f2") &&
+ pvcreate $d1 $d2 &&
+ vg=$(this_test_)-test-vg-$$ &&
+ vgcreate $vg $d1 $d2'
+
+lv=lvcreate-usage-$$
+
+test_expect_success \
+ 'lvcreate w/negative stripesize must fail' \
+ 'lvcreate -L 64M -n $lv -i2 --stripesize -4 $vg 2>err; test $? = 3 &&
+ grep "^ Negative stripesize is invalid\$" err'
+
+test_expect_success \
+ 'lvcreate w/too-large stripesize must fail' \
+ 'lvcreate -L 64M -n $lv -i2 --stripesize 4294967291 $vg 2>err; test $? = 3 &&
+ grep "^ Stripe size cannot be larger than 512.00 GB\$" err'
+
+test_expect_success \
+ 'lvcreate w/single stripe succeeds with diagnostics to stdout' \
+ 'lvcreate -L 64M -n $lv -i1 --stripesize 4 $vg >out 2>err &&
+ grep "^ Redundant stripes argument: default is 1\$" out &&
+ grep "^ Ignoring stripesize argument with single stripe\$" out &&
+ lvdisplay $vg &&
+ lvremove -ff $vg'
+
+test_expect_success \
+ 'lvcreate w/no stripe size succeeds with diagnostics to stdout' \
+ 'lvcreate -L 64M -n $lv -i2 $vg > out &&
+ grep "^ Using default stripesize" out &&
+ lvdisplay $vg &&
+ lvremove -ff $vg'
+
+test_expect_success \
+ 'lvcreate w/invalid number of stripes must fail' \
+ 'lvcreate -L 64M -n $lv -i129 $vg 2>err; test $? = 3 &&
+ grep "^ Number of stripes (129) must be between 1 and 128\$" err'
+
+# The case on lvdisplay output is to verify that the LV was not created.
+test_expect_success \
+ 'lvcreate w/invalid stripe size must fail' \
+ 'lvcreate -L 64M -n $lv -i2 --stripesize 3 $vg 2>err; test $? = 3 &&
+ grep "^ Invalid stripe size 3\.00 KB\$" err &&
+ case "$(lvdisplay $vg)" in "") true ;; *) false ;; esac'
+
+test_done
+# Local Variables:
+# indent-tabs-mode: nil
+# End:
--
1.5.3.1.19.gb5ef6-dirty
More information about the lvm-devel
mailing list