changeset 15578:79ba5f83de2a

acl: Fix a test failure on newer Solaris 10 with ZFS. * tests/test-sameacls.c (main): Interpret acl GETACLCNT failure with ENOSYS as no ACL. Reported by Jim Meyering.
author Bruno Haible <bruno@clisp.org>
date Tue, 06 Sep 2011 12:05:45 +0200
parents 15d6c13d7aae
children 3ed34b03fca0
files ChangeLog tests/test-sameacls.c
diffstat 2 files changed, 13 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-09-06  Bruno Haible  <bruno@clisp.org>
+
+	acl: Fix a test failure on newer Solaris 10 with ZFS.
+	* tests/test-sameacls.c (main): Interpret acl GETACLCNT failure with
+	ENOSYS as no ACL.
+	Reported by Jim Meyering.
+
 2011-09-06  Bruno Haible  <bruno@clisp.org>
 
 	acl: Update for AIX >= 5.3 with NFS.
--- a/tests/test-sameacls.c
+++ b/tests/test-sameacls.c
@@ -227,7 +227,11 @@
   int count2;
 
   count1 = acl (file1, GETACLCNT, 0, NULL);
+  if (count1 < 0 && errno == ENOSYS) /* Can happen on Solaris 10 with ZFS */
+    count1 = 0;
   count2 = acl (file2, GETACLCNT, 0, NULL);
+  if (count2 < 0 && errno == ENOSYS) /* Can happen on Solaris 10 with ZFS */
+    count2 = 0;
 
   if (count1 < 0)
     {
@@ -253,13 +257,13 @@
       aclent_t *entries2 = XNMALLOC (count2, aclent_t);
       int i;
 
-      if (acl (file1, GETACL, count1, entries1) < count1)
+      if (count1 > 0 && acl (file1, GETACL, count1, entries1) < count1)
         {
           fprintf (stderr, "error retrieving the ACLs of file %s\n", file1);
           fflush (stderr);
           abort ();
         }
-      if (acl (file2, GETACL, count2, entries2) < count1)
+      if (count2 > 0 && acl (file2, GETACL, count2, entries2) < count1)
         {
           fprintf (stderr, "error retrieving the ACLs of file %s\n", file2);
           fflush (stderr);