Subject: Re: bug#10110: tests/id/gnu-zero-uids: skipping with "not running on GNU/Hurd" on Linux
From: Eric Blake <[email-masked]>
To: Bernhard Voelker <[email-masked]>
Cc: [email-masked]
Date: Tue, 22 Nov 2011 12:08:36 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

tag 10110 notabug
thanks

On 11/22/2011 12:01 PM, Bernhard Voelker wrote:
> Hi,
> 
> this new tests is skipped on my OpenSuSE-11.4 system:

This may have been a question better for the [email-masked] list,
rather than opening up a new bug report.  As such, I tagged this as not
a bug, and marked it closed; but we can reopen it if you can propose
better wording that would avoid further confusion.

> 
> ...
> + require_gnu_
> ++ uname
> + test Linux = GNU
> + skip_ 'not running on GNU/Hurd'
> + warn_ 'gnu-zero-uids: skipped test: not running on GNU/Hurd'
> + case $IFS in
> + printf '%s\n' 'gnu-zero-uids: skipped test: not running on GNU/Hurd'
> gnu-zero-uids: skipped test: not running on GNU/Hurd
> + test 9 = 2
> + printf '%s\n' 'gnu-zero-uids: skipped test: not running on GNU/Hurd'
> + sed 1q
> + Exit 77
> 
> I'm confused by this message:
> I do not have a GNU/Hurd system, but the test is skipped.

It made sense to me, short for:

"We are skipping this test, since you are not running the test on
GNU/Hurd, which is the only platform known to be affected by the problem
exposed by the test"

> 
> Shouldn't it be "skipping test: only running on GNU/Hurd"?

That doesn't read right to me, since you _aren't_ running on GNU/Hurd,
but GNU/Linux.

> Or should the test run on Linux and require_gnu_ is buggy?

No.  The test can only pass on a system where getuid() can fail, and the
only known platform where that is the case is GNU/Hurd (GNU/Linux does
not provide the extension of a getuid() that can fail by executing a
process outside the realm of POSIX process ids).

-- 
Eric Blake   [email-masked]    +1-919-301-3266
Libvirt virtualization library http://libvirt.org