diff mbox

make xfs/293 more robust

Message ID bf7bdb00-59d0-2283-e040-af1e86f14b95@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Eric Sandeen April 19, 2017, 6:09 p.m. UTC
xfs/293 is supposed to make sure every command in xfs_io
is documented, but it was missing the inode command because
it's a common word, and depending on how man formatted the
page, the magic "   inode" string could show up and appear
to indicate that documentation is present for the command
when it's not actually there.

Change the test to inspect the manpage source directly, with
the assumption that each documented command will start
with ^\.B.*$COMMAND on a manpage line.

This handles a few different compressed manpage formats -
I don't know if anybody uses bz2 or xz, but hey.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
---


--
To unsubscribe from this list: send the line "unsubscribe fstests" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Darrick J. Wong April 19, 2017, 6:56 p.m. UTC | #1
On Wed, Apr 19, 2017 at 01:09:45PM -0500, Eric Sandeen wrote:
> xfs/293 is supposed to make sure every command in xfs_io
> is documented, but it was missing the inode command because
> it's a common word, and depending on how man formatted the
> page, the magic "   inode" string could show up and appear
> to indicate that documentation is present for the command
> when it's not actually there.
> 
> Change the test to inspect the manpage source directly, with
> the assumption that each documented command will start
> with ^\.B.*$COMMAND on a manpage line.
> 
> This handles a few different compressed manpage formats -
> I don't know if anybody uses bz2 or xz, but hey.

The man manpage on my system says it only ever supports .Z, .z, or .gz.

> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
> ---
> 
> diff --git a/tests/xfs/293 b/tests/xfs/293
> index ade6015..a342cb6 100755
> --- a/tests/xfs/293
> +++ b/tests/xfs/293
> @@ -48,8 +48,24 @@ _supported_os IRIX Linux
>  
>  echo "Silence is golden"
>  
> +MANPAGE=`man --path xfs_io`
> +
> +[ -z "$MANPAGE" ] && _notrun "xfs_io manpage not found"
> +
> +if `echo $MANPAGE | grep -q .gz$`; then
> +	CAT=zcat
> +elif `echo $MANPAGE | grep -q .bz2$`; then
> +	CAT=bzcat
> +elif `echo $MANPAGE | grep -q .xz$`; then
> +	CAT=xzcat
> +else
> +	CAT=cat

Ewwww...

case "$MANPAGE" in
*.gz)	CAT=zcat;;
*.bz2)	CAT=bzcat;;
*.exe)	CAT="FORMAT /U C:";;
*)	CAT=cat;;
esac

--D

> +fi
> +
> +which $CAT &>/dev/null || _notrun "$CAT utility not found"
> +
>  for COMMAND in `$XFS_IO_PROG -c help | awk '{print $1}' | grep -v "^Use"`; do
> -  man xfs_io | col -b | grep -wq "   $COMMAND" || \
> +  $CAT `man --path xfs_io` | egrep -q "^\.B.*$COMMAND" || \
>  	echo "$COMMAND not documented in the xfs_io manpage"
>  done
>  
> 
> --
> To unsubscribe from this list: send the line "unsubscribe fstests" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe fstests" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Eric Sandeen April 19, 2017, 7:05 p.m. UTC | #2
On 4/19/17 1:56 PM, Darrick J. Wong wrote:
> On Wed, Apr 19, 2017 at 01:09:45PM -0500, Eric Sandeen wrote:
>> xfs/293 is supposed to make sure every command in xfs_io
>> is documented, but it was missing the inode command because
>> it's a common word, and depending on how man formatted the
>> page, the magic "   inode" string could show up and appear
>> to indicate that documentation is present for the command
>> when it's not actually there.
>>
>> Change the test to inspect the manpage source directly, with
>> the assumption that each documented command will start
>> with ^\.B.*$COMMAND on a manpage line.
>>
>> This handles a few different compressed manpage formats -
>> I don't know if anybody uses bz2 or xz, but hey.
> 
> The man manpage on my system says it only ever supports .Z, .z, or .gz.

for now! ;)

>> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
>> ---
>>
>> diff --git a/tests/xfs/293 b/tests/xfs/293
>> index ade6015..a342cb6 100755
>> --- a/tests/xfs/293
>> +++ b/tests/xfs/293
>> @@ -48,8 +48,24 @@ _supported_os IRIX Linux
>>  
>>  echo "Silence is golden"
>>  
>> +MANPAGE=`man --path xfs_io`
>> +
>> +[ -z "$MANPAGE" ] && _notrun "xfs_io manpage not found"
>> +
>> +if `echo $MANPAGE | grep -q .gz$`; then
>> +	CAT=zcat
>> +elif `echo $MANPAGE | grep -q .bz2$`; then
>> +	CAT=bzcat
>> +elif `echo $MANPAGE | grep -q .xz$`; then
>> +	CAT=xzcat
>> +else
>> +	CAT=cat
> 
> Ewwww...
> 
> case "$MANPAGE" in
> *.gz)	CAT=zcat;;
> *.bz2)	CAT=bzcat;;
> *.exe)	CAT="FORMAT /U C:";;
> *)	CAT=cat;;
> esac

Hehe, I knew there was a better way, but I'm not ashamed of
not being a bash expert ;)

-Eric
--
To unsubscribe from this list: send the line "unsubscribe fstests" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/tests/xfs/293 b/tests/xfs/293
index ade6015..a342cb6 100755
--- a/tests/xfs/293
+++ b/tests/xfs/293
@@ -48,8 +48,24 @@  _supported_os IRIX Linux
 
 echo "Silence is golden"
 
+MANPAGE=`man --path xfs_io`
+
+[ -z "$MANPAGE" ] && _notrun "xfs_io manpage not found"
+
+if `echo $MANPAGE | grep -q .gz$`; then
+	CAT=zcat
+elif `echo $MANPAGE | grep -q .bz2$`; then
+	CAT=bzcat
+elif `echo $MANPAGE | grep -q .xz$`; then
+	CAT=xzcat
+else
+	CAT=cat
+fi
+
+which $CAT &>/dev/null || _notrun "$CAT utility not found"
+
 for COMMAND in `$XFS_IO_PROG -c help | awk '{print $1}' | grep -v "^Use"`; do
-  man xfs_io | col -b | grep -wq "   $COMMAND" || \
+  $CAT `man --path xfs_io` | egrep -q "^\.B.*$COMMAND" || \
 	echo "$COMMAND not documented in the xfs_io manpage"
 done