[lvm-devel] test/t1000-lvcreate-usage.sh: exercise lvcreate

Jim Meyering jim at meyering.net
Mon Sep 17 19:39:03 UTC 2007


Alasdair G Kergon <agk at redhat.com> wrote:

> On Mon, Sep 17, 2007 at 04:42:59PM +0200, Jim Meyering wrote:
>> 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)
>
> Can you make that easier to parse?

The idea is that you don't bother to parse it unless something fails :)
But see proposed rewordings below.

> Should every test have a reference number (perhaps derived from its

All of those tests come from the same file: t1000-lvcreate-usage.
Currently, I have these files:

  $ ls -1 t[0-9]*.sh
  t0000-basic.sh*
  t1000-lvcreate-usage.sh*
  t3000-lvcreate-pvtags.sh*
  t4000-pv-range-overflow.sh*

The numbers are pretty arbitrary, now.
Ideally, you'd put simplest tests early and ones that rely on
more and more functionality/tools later.

> filename?) that is not going to change and appears on the output line?

IMHO, the combination of the file name, t1000-lvcreate-usage,
and the textual "title" of each test within that file is sufficient
to identify it.

> Should each test belong to a defined category, e.g. 'lvcreate' above.
> What role do the *s serve?  Would a wider range of characters make
> the output more readable?

The output format is from that of git's tests.

> Can the version of the test also appear in the test logs along with
> complete command output?

If you want more output, you can run the test with --debug --verbose.
Or set those options in test/Makefile.in.  This is the first line of
that file:

    #TEST_OPTS=--verbose --debug

> [I noticed a '>/dev/null' earlier that ought
> to disappear:-) ]

If you mean the one in t1000*'s cleanup_ function, then
I'd rather not remove it.  Otherwise, currently you'd see
this at the end of the test:

    0 logical volume(s) in volume group "t1000-test-vg-11070" now active
    Volume group "t1000-test-vg-11070" successfully removed

> 'ok' with 'must fail' is misleading - try inverting the descriptions
> e.g. 'rejects negative stripesizes'  (plural as I'd assume a range of
> values are being tested each time)

How about these rewordings:

    ./t1000-lvcreate-usage.sh
    *   ok 1: set up temp files, loopback devices, PVs, and a VG
    *   ok 2: lvcreate rejects a negative stripesize
    *   ok 3: lvcreate rejects a too-large stripesize
    *   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 rejects an invalid number of stripes
    *   ok 7: lvcreate rejects an invalid stripe size




More information about the lvm-devel mailing list