I wanted help SYNOPSIS output that was regular enough to parse. Enforcing/correcting the following is the first step: >From fa58b801ea80f52a10d48ab75a359ffe06c4be40 Mon Sep 17 00:00:00 2001 From: Jim Meyering <meyering@xxxxxxxxxx> Date: Fri, 21 Nov 2008 10:58:36 +0100 Subject: [PATCH] tests: new test: virsh-synopsis * tests/virsh-synopsis: new file * tests/Makefile.am (test_scripts): Add virsh-synopsis. * src/virsh.c: Correct help SYNOPSIS for each of seven commands. When I first ran this script, "make check" failed like this: ... invalid help SYNOPSIS for net-create: create a network from an XML <file> invalid help SYNOPSIS for net-define: define a network from an XML <file> invalid help SYNOPSIS for net-start: start <network> invalid help SYNOPSIS for pool-create: create a pool from an XML <file> invalid help SYNOPSIS for pool-define: define a pool from an XML <file> invalid help SYNOPSIS for pool-start: start <pool> invalid help SYNOPSIS for vol-create: create <file> FAIL: virsh-synopsis --- src/virsh.c | 17 +++++++++-------- tests/Makefile.am | 1 + tests/virsh-synopsis | 43 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 8 deletions(-) create mode 100755 tests/virsh-synopsis diff --git a/src/virsh.c b/src/virsh.c index 4195781..78c536e 100644 --- a/src/virsh.c +++ b/src/virsh.c @@ -2365,7 +2365,7 @@ cmdNetworkAutostart(vshControl *ctl, const vshCmd *cmd) * "net-create" command */ static const vshCmdInfo info_network_create[] = { - {"syntax", "create a network from an XML <file>"}, + {"syntax", "net-create <file>"}, {"help", gettext_noop("create a network from an XML file")}, {"desc", gettext_noop("Create a network.")}, {NULL, NULL} @@ -2413,7 +2413,7 @@ cmdNetworkCreate(vshControl *ctl, const vshCmd *cmd) * "net-define" command */ static const vshCmdInfo info_network_define[] = { - {"syntax", "define a network from an XML <file>"}, + {"syntax", "net-define <file>"}, {"help", gettext_noop("define (but don't start) a network from an XML file")}, {"desc", gettext_noop("Define a network.")}, {NULL, NULL} @@ -2697,7 +2697,7 @@ cmdNetworkName(vshControl *ctl, const vshCmd *cmd) * "net-start" command */ static const vshCmdInfo info_network_start[] = { - {"syntax", "start <network>"}, + {"syntax", "net-start <network>"}, {"help", gettext_noop("start a (previously defined) inactive network")}, {"desc", gettext_noop("Start a network.")}, {NULL, NULL} @@ -2862,14 +2862,15 @@ cmdPoolAutostart(vshControl *ctl, const vshCmd *cmd) * "pool-create" command */ static const vshCmdInfo info_pool_create[] = { - {"syntax", "create a pool from an XML <file>"}, + {"syntax", "pool-create <file>"}, {"help", gettext_noop("create a pool from an XML file")}, {"desc", gettext_noop("Create a pool.")}, {NULL, NULL} }; static const vshCmdOptDef opts_pool_create[] = { - {"file", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("file containing an XML pool description")}, + {"file", VSH_OT_DATA, VSH_OFLAG_REQ, + gettext_noop("file containing an XML pool description")}, {NULL, 0, 0, NULL} }; @@ -3000,7 +3001,7 @@ cmdPoolCreateAs(vshControl *ctl, const vshCmd *cmd) * "pool-define" command */ static const vshCmdInfo info_pool_define[] = { - {"syntax", "define a pool from an XML <file>"}, + {"syntax", "pool-define <file>"}, {"help", gettext_noop("define (but don't start) a pool from an XML file")}, {"desc", gettext_noop("Define a pool.")}, {NULL, NULL} @@ -3727,7 +3728,7 @@ cmdPoolName(vshControl *ctl, const vshCmd *cmd) * "pool-start" command */ static const vshCmdInfo info_pool_start[] = { - {"syntax", "start <pool>"}, + {"syntax", "pool-start <pool>"}, {"help", gettext_noop("start a (previously defined) inactive pool")}, {"desc", gettext_noop("Start a pool.")}, {NULL, NULL} @@ -3965,7 +3966,7 @@ cmdPoolUuid(vshControl *ctl, const vshCmd *cmd) * "vol-create" command */ static const vshCmdInfo info_vol_create[] = { - {"syntax", "create <file>"}, + {"syntax", "vol-create <file>"}, {"help", gettext_noop("create a vol from an XML file")}, {"desc", gettext_noop("Create a vol.")}, {NULL, NULL} diff --git a/tests/Makefile.am b/tests/Makefile.am index 0b4eebd..bec3791 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -58,6 +58,7 @@ test_scripts += \ undefine \ vcpupin virsh-all + virsh-synopsis endif EXTRA_DIST += $(test_scripts) diff --git a/tests/virsh-synopsis b/tests/virsh-synopsis new file mode 100755 index 0000000..6ce58a2 --- /dev/null +++ b/tests/virsh-synopsis @@ -0,0 +1,43 @@ +#!/bin/sh +# ensure that each command's help "SYNOPSIS" line starts with the command name + +# Copyright (C) 2008 Free Software Foundation, 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 3 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/>. + +if test "$VERBOSE" = yes; then + set -x + virsh --version +fi + +. $srcdir/test-lib.sh + +fail=0 + +test_url=test:///default + +virsh -c $test_url help > cmds || framework_failure +cmds=$(sed -n 's/^ \([^ ][^ ]*\) .*/\1/p' cmds) || framework_failure +test -n "$cmds" || framework_failure + +for i in $cmds; do + virsh -c $test_url help $i > help || fail=1 + grep -A1 '^ SYNOPSIS$' help > synopsis \ + || { echo 1>&2 missing or invalid help SYNOPSIS for $i; fail=1; } + sed -n 2p synopsis > s2 || framework_failure + grep -E "^ $i( |$)" s2 > /dev/null \ + || { echo 1>&2 "invalid help SYNOPSIS for $i:"; cat s2 1>&2; fail=1; } +done + +(exit $fail); exit $fail -- 1.6.0.4.1021.g4320 -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list