Subject: Re: bug#16532: Test Fail: "tests/chown/separator"

From: Pádraig Brady <[email-masked]>
Date: Fri, 24 Jan 2014 02:32:50 +0000

On 01/24/2014 01:43 AM, Pádraig Brady wrote:
> On 01/24/2014 01:38 AM, Assaf Gordon wrote:
>> This patch makes the test skip on my server (did not test it on other systems).
>>
>> On 01/23/2014 08:09 PM, Pádraig Brady wrote:
>>> On 01/23/2014 11:41 PM, Assaf Gordon wrote:
>>
>>>> So I guess this is not a bug, and can be closed.
>>>> I'll just ignore this failure on this system.
>>>
>>> It is a false failure though so would be worth avoiding.
>>> It's important to have robust tests we and builders can rely on.
>>>
>>> Would something along the following be possible?
>>>
>>> test $(getent group $group | wc -l) != 1 || skip_ "multiple ids for group $group: $(getent group $group)"
>>>
>>
>>
>> From 3737105eacbb23cbe453a3d210359fea614b7154 Mon Sep 17 00:00:00 2001
>> From: =?UTF-8?q?P=C3=A1draig=20Brady?= <[email-masked]>
>> Date: Thu, 23 Jan 2014 20:34:52 -0500
>> Subject: [PATCH] tests: skip chown/separator with duplicated groups
>>
>> * tests/chwon/separator.sh: skip test if the user's group has
> 
> s/chwon/chown/
> 
>> multiple entries.
>> Fixes http://bugs.gnu.org/16532
>> ---
>>  tests/chown/separator.sh | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/tests/chown/separator.sh b/tests/chown/separator.sh
>> index f64b738..ec33f4a 100755
>> --- a/tests/chown/separator.sh
>> +++ b/tests/chown/separator.sh
>> @@ -31,6 +31,9 @@ test -n "$id_g" || framework_failure_
>>  id_gn=$(id -gn) || framework_failure_
>>  test -n "$id_gn" || framework_failure_
>>
>> +test $(getent group $id_gn | wc -l) != 1 ||

Actually I messed up the login in the suggestion.
I think the above should be s/!=/=/ which I've done
in the attached patch.

If you could confirm it was skipped on your system
it would be great.

I'll push soon anyway.

>> +  skip_ "multiple ids for group $id_gn: $(getent group $id_gn)"

I also protected the $id_gn with quotes in case
there were spaces in the group name or something.

thanks,
Pádraig.

>From 9ad5f9f8d8e15c9f47173427714bfd6bcff2730e Mon Sep 17 00:00:00 2001
From: Assaf Gordon <[email-masked]>
Date: Thu, 23 Jan 2014 20:34:52 -0500
Subject: [PATCH] tests: skip chown/separator with conflicting group IDs

* tests/chown/separator.sh: skip test if the user's group has
multiple entries.
Fixes http://bugs.gnu.org/16532
---
 tests/chown/separator.sh |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/tests/chown/separator.sh b/tests/chown/separator.sh
index f64b738..ed3635d 100755
--- a/tests/chown/separator.sh
+++ b/tests/chown/separator.sh
@@ -31,6 +31,11 @@ test -n "$id_g" || framework_failure_
 id_gn=$(id -gn) || framework_failure_
 test -n "$id_gn" || framework_failure_
 
+# Systems with both local and external groups with conflicting IDs,
+# were seen to fail this test erroneously with EPERM errors.
+test $(getent group "$id_gn" | wc -l) = 1 ||
+  skip_ "multiple IDs for group '$id_gn': $(getent group "$id_gn")"
+
 # FreeBSD 6.x's getgrnam fails to look up a group name containing
 # a space. On such a system, skip this test if the group name contains
 # a byte not in the portable filename character set.
-- 
1.7.7.6