fix problems with includes now that our previous linux/acl.h has gone away.
[xfstests-dev.git] / src / acl_test.c
index 41afd9945465d28dc2d8ac05baf933ba09c87275..1f5f7a6170aaa06803bf250e3d31b6b3c8e346f7 100644 (file)
  * Use IRIX semantics or Linux semantics if pertinent.
  */
  
-#include "global.h"
-
 #include <errno.h>
-#include <acl.h>
+#include <stdio.h>
+#include <string.h>
+#include <getopt.h>
+#include <sys/acl.h>
 
 char *prog;
 int irixsemantics = 0;
@@ -123,6 +124,46 @@ create_filled_acl(void)
     return acl;
 }
 
+void
+test_acl_get_qualifier(void)
+{
+    struct acl_entry ace;
+    uid_t *uidp;
+
+    printf("*** test out acl_get_qualifier ***\n");
+
+    /* simple ace */
+    ace.ae_tag = ACL_USER;
+    ace.ae_id = 1;
+    ace.ae_perm = 1;
+
+    /* make sure we can get uid and free it */
+    uidp = acl_get_qualifier(&ace); 
+    printf("uid = %d\n", *uidp);
+    acl_free(uidp);
+
+    /* change to another valid tag with a qualifier */
+    ace.ae_tag = ACL_GROUP;
+    uidp = acl_get_qualifier(&ace); 
+    printf("uid = %d\n", *uidp);
+    acl_free(uidp);
+
+    /* let's get some errors */
+
+    ace.ae_tag = ACL_USER_OBJ;
+    uidp = acl_get_qualifier(&ace); 
+    if (uidp == NULL)
+       printf("uidp is NULL: %s\n", strerror(errno));
+    else
+       printf("Error: uidp is NOT NULL\n");
+
+    uidp = acl_get_qualifier(NULL); 
+    if (uidp == NULL)
+       printf("uidp is NULL: %s\n", strerror(errno));
+    else
+       printf("Error: uidp is NOT NULL\n");
+}
+
 int
 main(int argc, char **argv)
 {
@@ -225,5 +266,7 @@ main(int argc, char **argv)
          *       which is done already in a script. 
          */
 
+       test_acl_get_qualifier();
+
        return 0;
 }