Fix up 057 to test the prior bug in acl_get_fd, acl_get_file.

This commit is contained in:
Tim Shimmin
2001-05-29 07:08:24 +00:00
parent 2cb584ef2f
commit 4a846cb27a
7 changed files with 544 additions and 7 deletions
+7 -1
View File
@@ -42,6 +42,7 @@ owner=tes@sherman.melbourne.sgi.com
# get standard environment, filters and checks
. ./common.rc
. ./common.filter
. ./common.attr
seq=`basename $0`
echo "QA output created by $seq"
@@ -102,6 +103,7 @@ rm -f $seq.full
_need_to_be_root
[ -x $acl_get ] || _notrun "$acl_get command not found"
[ -x /bin/chacl ] || _notrun "chacl command not found"
# get dir
cd $TEST_DIR
@@ -115,7 +117,11 @@ touch file1
chmod 752 file1
_get_file file1
# ensure that full blown acls' get/set work, not just minimal ones
_acl_setup_ids
chacl u::rwx,g::rw-,o::---,u:$acl1:r-x,g:$acl1:r--,m::rwx file1 2>&1
chacl -l file1 | _acl_filter_id
_get_file file1 | _acl_filter_id
# success, all done
status=0
+17
View File
@@ -15,3 +15,20 @@ file1: access irix-empty
access, fd, linux-semantics
file1: access u::rwx,g::r-x,o::-w-
file1 [u::rwx,g::rw-,o::---,u:id1:r-x,g:id1:r--,m::rwx]
-rwxrwx--- 0 0 file1
access, default, irix-semantics
file1: access u::rwx,g::rw-,o::---,u:id1:r-x,g:id1:r--,m::rwx
file1: default irix-empty
access, default, linux-semantics
file1: access u::rwx,g::rw-,o::---,u:id1:r-x,g:id1:r--,m::rwx
file1: default linux-empty
access, fd, irix-semantics
file1: access u::rwx,g::rw-,o::---,u:id1:r-x,g:id1:r--,m::rwx
access, fd, linux-semantics
file1: access u::rwx,g::rw-,o::---,u:id1:r-x,g:id1:r--,m::rwx
Executable
+60
View File
@@ -0,0 +1,60 @@
#! /bin/sh
# XFS QA Test No. 058
# $Id: 1.1 $
#
# Test some libacl functions.
#
#-----------------------------------------------------------------------
# Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of version 2 of the GNU General Public License as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it would be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# Further, this software is distributed without any warranty that it is
# free of the rightful claim of any third person regarding infringement
# or the like. Any license provided herein, whether implied or
# otherwise, applies only to this software file. Patent licenses, if
# any, provided herein do not apply to combinations of this program with
# other software, or any other product whatsoever.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write the Free Software Foundation, Inc., 59
# Temple Place - Suite 330, Boston MA 02111-1307, USA.
#
# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
# Mountain View, CA 94043, or:
#
# http://www.sgi.com
#
# For further information regarding this notice, see:
#
# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
#-----------------------------------------------------------------------
#
# creator
owner=tes@sherman.melbourne.sgi.com
seq=`basename $0`
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
# get standard environment, filters and checks
. ./common.rc
. ./common.filter
# real QA test starts here
src/acl_test
# success, all done
status=0
exit
+234
View File
@@ -0,0 +1,234 @@
QA output created by 058
*** test out creating an ACL ***
Test acl_init(ACL_MAX_ENTRIES+1)
acl_test: acl_init(max+1): Invalid argument
Test acl_init(-1)
acl_test: acl_init(-1): Invalid argument
Test acl_init(0)
Test acl_create_entry(NULL, ...)
acl_test: acl_create_entry(NULL,ace1): Invalid argument
Test acl_create_entry(..., NULL)
acl_test: acl_create_entry(NULL,ace1): Invalid argument
Test acl_create_entry(acl1, ace1)
acl_test: acl_create_entry(*null,ace1): Invalid argument
0: creating ace
ACL[n=1]: 0: <tag:0,id:-1,perm:0>
1: creating ace
ACL[n=2]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0>
2: creating ace
ACL[n=3]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0>
3: creating ace
ACL[n=4]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0>
4: creating ace
ACL[n=5]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0>
5: creating ace
ACL[n=6]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0>
6: creating ace
ACL[n=7]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0>
7: creating ace
ACL[n=8]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0>
8: creating ace
ACL[n=9]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0>
9: creating ace
ACL[n=10]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0>
10: creating ace
ACL[n=11]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0>
11: creating ace
ACL[n=12]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0> 11: <tag:0,id:-1,perm:0>
12: creating ace
ACL[n=13]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0> 11: <tag:0,id:-1,perm:0> 12: <tag:0,id:-1,perm:0>
13: creating ace
ACL[n=14]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0> 11: <tag:0,id:-1,perm:0> 12: <tag:0,id:-1,perm:0> 13: <tag:0,id:-1,perm:0>
14: creating ace
ACL[n=15]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0> 11: <tag:0,id:-1,perm:0> 12: <tag:0,id:-1,perm:0> 13: <tag:0,id:-1,perm:0> 14: <tag:0,id:-1,perm:0>
15: creating ace
ACL[n=16]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0> 11: <tag:0,id:-1,perm:0> 12: <tag:0,id:-1,perm:0> 13: <tag:0,id:-1,perm:0> 14: <tag:0,id:-1,perm:0> 15: <tag:0,id:-1,perm:0>
16: creating ace
ACL[n=17]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0> 11: <tag:0,id:-1,perm:0> 12: <tag:0,id:-1,perm:0> 13: <tag:0,id:-1,perm:0> 14: <tag:0,id:-1,perm:0> 15: <tag:0,id:-1,perm:0> 16: <tag:0,id:-1,perm:0>
17: creating ace
ACL[n=18]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0> 11: <tag:0,id:-1,perm:0> 12: <tag:0,id:-1,perm:0> 13: <tag:0,id:-1,perm:0> 14: <tag:0,id:-1,perm:0> 15: <tag:0,id:-1,perm:0> 16: <tag:0,id:-1,perm:0> 17: <tag:0,id:-1,perm:0>
18: creating ace
ACL[n=19]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0> 11: <tag:0,id:-1,perm:0> 12: <tag:0,id:-1,perm:0> 13: <tag:0,id:-1,perm:0> 14: <tag:0,id:-1,perm:0> 15: <tag:0,id:-1,perm:0> 16: <tag:0,id:-1,perm:0> 17: <tag:0,id:-1,perm:0> 18: <tag:0,id:-1,perm:0>
19: creating ace
ACL[n=20]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0> 11: <tag:0,id:-1,perm:0> 12: <tag:0,id:-1,perm:0> 13: <tag:0,id:-1,perm:0> 14: <tag:0,id:-1,perm:0> 15: <tag:0,id:-1,perm:0> 16: <tag:0,id:-1,perm:0> 17: <tag:0,id:-1,perm:0> 18: <tag:0,id:-1,perm:0> 19: <tag:0,id:-1,perm:0>
20: creating ace
ACL[n=21]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0> 11: <tag:0,id:-1,perm:0> 12: <tag:0,id:-1,perm:0> 13: <tag:0,id:-1,perm:0> 14: <tag:0,id:-1,perm:0> 15: <tag:0,id:-1,perm:0> 16: <tag:0,id:-1,perm:0> 17: <tag:0,id:-1,perm:0> 18: <tag:0,id:-1,perm:0> 19: <tag:0,id:-1,perm:0> 20: <tag:0,id:-1,perm:0>
21: creating ace
ACL[n=22]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0> 11: <tag:0,id:-1,perm:0> 12: <tag:0,id:-1,perm:0> 13: <tag:0,id:-1,perm:0> 14: <tag:0,id:-1,perm:0> 15: <tag:0,id:-1,perm:0> 16: <tag:0,id:-1,perm:0> 17: <tag:0,id:-1,perm:0> 18: <tag:0,id:-1,perm:0> 19: <tag:0,id:-1,perm:0> 20: <tag:0,id:-1,perm:0> 21: <tag:0,id:-1,perm:0>
22: creating ace
ACL[n=23]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0> 11: <tag:0,id:-1,perm:0> 12: <tag:0,id:-1,perm:0> 13: <tag:0,id:-1,perm:0> 14: <tag:0,id:-1,perm:0> 15: <tag:0,id:-1,perm:0> 16: <tag:0,id:-1,perm:0> 17: <tag:0,id:-1,perm:0> 18: <tag:0,id:-1,perm:0> 19: <tag:0,id:-1,perm:0> 20: <tag:0,id:-1,perm:0> 21: <tag:0,id:-1,perm:0> 22: <tag:0,id:-1,perm:0>
23: creating ace
ACL[n=24]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0> 11: <tag:0,id:-1,perm:0> 12: <tag:0,id:-1,perm:0> 13: <tag:0,id:-1,perm:0> 14: <tag:0,id:-1,perm:0> 15: <tag:0,id:-1,perm:0> 16: <tag:0,id:-1,perm:0> 17: <tag:0,id:-1,perm:0> 18: <tag:0,id:-1,perm:0> 19: <tag:0,id:-1,perm:0> 20: <tag:0,id:-1,perm:0> 21: <tag:0,id:-1,perm:0> 22: <tag:0,id:-1,perm:0> 23: <tag:0,id:-1,perm:0>
24: creating ace
ACL[n=25]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0> 11: <tag:0,id:-1,perm:0> 12: <tag:0,id:-1,perm:0> 13: <tag:0,id:-1,perm:0> 14: <tag:0,id:-1,perm:0> 15: <tag:0,id:-1,perm:0> 16: <tag:0,id:-1,perm:0> 17: <tag:0,id:-1,perm:0> 18: <tag:0,id:-1,perm:0> 19: <tag:0,id:-1,perm:0> 20: <tag:0,id:-1,perm:0> 21: <tag:0,id:-1,perm:0> 22: <tag:0,id:-1,perm:0> 23: <tag:0,id:-1,perm:0> 24: <tag:0,id:-1,perm:0>
25: creating ace
acl_test: acl_create_entry: Cannot allocate memory
ACL[n=25]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0> 11: <tag:0,id:-1,perm:0> 12: <tag:0,id:-1,perm:0> 13: <tag:0,id:-1,perm:0> 14: <tag:0,id:-1,perm:0> 15: <tag:0,id:-1,perm:0> 16: <tag:0,id:-1,perm:0> 17: <tag:0,id:-1,perm:0> 18: <tag:0,id:-1,perm:0> 19: <tag:0,id:-1,perm:0> 20: <tag:0,id:-1,perm:0> 21: <tag:0,id:-1,perm:0> 22: <tag:0,id:-1,perm:0> 23: <tag:0,id:-1,perm:0> 24: <tag:0,id:-1,perm:0>
26: creating ace
acl_test: acl_create_entry: Cannot allocate memory
ACL[n=25]: 0: <tag:0,id:-1,perm:0> 1: <tag:0,id:-1,perm:0> 2: <tag:0,id:-1,perm:0> 3: <tag:0,id:-1,perm:0> 4: <tag:0,id:-1,perm:0> 5: <tag:0,id:-1,perm:0> 6: <tag:0,id:-1,perm:0> 7: <tag:0,id:-1,perm:0> 8: <tag:0,id:-1,perm:0> 9: <tag:0,id:-1,perm:0> 10: <tag:0,id:-1,perm:0> 11: <tag:0,id:-1,perm:0> 12: <tag:0,id:-1,perm:0> 13: <tag:0,id:-1,perm:0> 14: <tag:0,id:-1,perm:0> 15: <tag:0,id:-1,perm:0> 16: <tag:0,id:-1,perm:0> 17: <tag:0,id:-1,perm:0> 18: <tag:0,id:-1,perm:0> 19: <tag:0,id:-1,perm:0> 20: <tag:0,id:-1,perm:0> 21: <tag:0,id:-1,perm:0> 22: <tag:0,id:-1,perm:0> 23: <tag:0,id:-1,perm:0> 24: <tag:0,id:-1,perm:0>
*** test out getting ACEs ***
Get 1st entry on filled ACL
acl_get_entry -> 1
1: <tag:0,id:-1,perm:0>
Get 2th entry on filled ACL
acl_get_entry -> 1
2: <tag:0,id:-1,perm:0>
Get 3th entry on filled ACL
acl_get_entry -> 1
3: <tag:0,id:-1,perm:0>
Get 4th entry on filled ACL
acl_get_entry -> 1
4: <tag:0,id:-1,perm:0>
Get 5th entry on filled ACL
acl_get_entry -> 1
5: <tag:0,id:-1,perm:0>
Get 6th entry on filled ACL
acl_get_entry -> 1
6: <tag:0,id:-1,perm:0>
Get 7th entry on filled ACL
acl_get_entry -> 1
7: <tag:0,id:-1,perm:0>
Get 8th entry on filled ACL
acl_get_entry -> 1
8: <tag:0,id:-1,perm:0>
Get 9th entry on filled ACL
acl_get_entry -> 1
9: <tag:0,id:-1,perm:0>
Get 10th entry on filled ACL
acl_get_entry -> 1
10: <tag:0,id:-1,perm:0>
Get 11th entry on filled ACL
acl_get_entry -> 1
11: <tag:0,id:-1,perm:0>
Get 12th entry on filled ACL
acl_get_entry -> 1
12: <tag:0,id:-1,perm:0>
Get 13th entry on filled ACL
acl_get_entry -> 1
13: <tag:0,id:-1,perm:0>
Get 14th entry on filled ACL
acl_get_entry -> 1
14: <tag:0,id:-1,perm:0>
Get 15th entry on filled ACL
acl_get_entry -> 1
15: <tag:0,id:-1,perm:0>
Get 16th entry on filled ACL
acl_get_entry -> 1
16: <tag:0,id:-1,perm:0>
Get 17th entry on filled ACL
acl_get_entry -> 1
17: <tag:0,id:-1,perm:0>
Get 18th entry on filled ACL
acl_get_entry -> 1
18: <tag:0,id:-1,perm:0>
Get 19th entry on filled ACL
acl_get_entry -> 1
19: <tag:0,id:-1,perm:0>
Get 20th entry on filled ACL
acl_get_entry -> 1
20: <tag:0,id:-1,perm:0>
Get 21th entry on filled ACL
acl_get_entry -> 1
21: <tag:0,id:-1,perm:0>
Get 22th entry on filled ACL
acl_get_entry -> 1
22: <tag:0,id:-1,perm:0>
Get 23th entry on filled ACL
acl_get_entry -> 1
23: <tag:0,id:-1,perm:0>
Get 24th entry on filled ACL
acl_get_entry -> 1
24: <tag:0,id:-1,perm:0>
Get 25th entry on filled ACL
acl_get_entry -> 1
25: <tag:0,id:-1,perm:0>
Get 26th entry on filled ACL
acl_get_entry -> 0
Get 27th entry on filled ACL
acl_get_entry -> 0
dump empty ACL
Get 1st entry on filled ACL
acl_get_entry -> 0
Get 2th entry on filled ACL
acl_get_entry -> 0
fill an ACL with known bogus values
Get 1st entry on filled ACL
acl_get_entry -> 1
1: <tag:0,id:1,perm:2>
Get 2th entry on filled ACL
acl_get_entry -> 1
2: <tag:1,id:2,perm:3>
Get 3th entry on filled ACL
acl_get_entry -> 1
3: <tag:2,id:3,perm:4>
Get 4th entry on filled ACL
acl_get_entry -> 1
4: <tag:3,id:4,perm:5>
Get 5th entry on filled ACL
acl_get_entry -> 1
5: <tag:4,id:5,perm:6>
Get 6th entry on filled ACL
acl_get_entry -> 1
6: <tag:5,id:6,perm:7>
Get 7th entry on filled ACL
acl_get_entry -> 1
7: <tag:6,id:7,perm:8>
Get 8th entry on filled ACL
acl_get_entry -> 1
8: <tag:7,id:8,perm:9>
Get 9th entry on filled ACL
acl_get_entry -> 1
9: <tag:8,id:9,perm:10>
Get 10th entry on filled ACL
acl_get_entry -> 1
10: <tag:9,id:10,perm:11>
Get 11th entry on filled ACL
acl_get_entry -> 1
11: <tag:10,id:11,perm:12>
Get 12th entry on filled ACL
acl_get_entry -> 1
12: <tag:11,id:12,perm:13>
Get 13th entry on filled ACL
acl_get_entry -> 1
13: <tag:12,id:13,perm:14>
Get 14th entry on filled ACL
acl_get_entry -> 1
14: <tag:13,id:14,perm:15>
Get 15th entry on filled ACL
acl_get_entry -> 1
15: <tag:14,id:15,perm:16>
Get 16th entry on filled ACL
acl_get_entry -> 1
16: <tag:15,id:16,perm:17>
Get 17th entry on filled ACL
acl_get_entry -> 1
17: <tag:16,id:17,perm:18>
Get 18th entry on filled ACL
acl_get_entry -> 1
18: <tag:17,id:18,perm:19>
Get 19th entry on filled ACL
acl_get_entry -> 1
19: <tag:18,id:19,perm:20>
Get 20th entry on filled ACL
acl_get_entry -> 1
20: <tag:19,id:20,perm:21>
Get 21th entry on filled ACL
acl_get_entry -> 1
21: <tag:20,id:21,perm:22>
Get 22th entry on filled ACL
acl_get_entry -> 1
22: <tag:21,id:22,perm:23>
Get 23th entry on filled ACL
acl_get_entry -> 1
23: <tag:22,id:23,perm:24>
Get 24th entry on filled ACL
acl_get_entry -> 1
24: <tag:23,id:24,perm:25>
Get 25th entry on filled ACL
acl_get_entry -> 1
25: <tag:24,id:25,perm:26>
Get 26th entry on filled ACL
acl_get_entry -> 0
Get 27th entry on filled ACL
acl_get_entry -> 0
+4
View File
@@ -29,6 +29,9 @@ logprint dxm@sgi.com
# xfsdump, xfsrestore, xfsinvutil, xfs_copy
xfsdump tes@sgi.com ivanr@sgi.com
# chacl, libacl
acl tes@sgi.com ajag@sgi.com
# xfs_growfs
growfs ajag@sgi.com
@@ -106,3 +109,4 @@ auto dxm@sgi.com
055 xfsdump auto
056 xfsdump auto
057 acl auto
058 acl auto
+10 -6
View File
@@ -33,9 +33,9 @@
TOPDIR = ..
include $(TOPDIR)/include/builddefs
TARGETS = alloc acl_get bstat devzero dirstress fault feature fsstress \
fill fill2 holes ioctl loggen lstat64 nametest permname \
randholes truncfile usemem runas
TARGETS = alloc acl_get acl_test bstat devzero dirstress fault feature \
fsstress fill fill2 holes ioctl loggen lstat64 nametest permname \
randholes runas truncfile usemem
ifeq ($(HAVE_DB), true)
TARGETS += dbtest
endif
@@ -80,6 +80,10 @@ LOGGEN_OBJECTS = loggen.o $(LIBXFS)
loggen: $(HFILES) $(LOGGEN_OBJECTS)
$(CCF) -o $@ $(LDFLAGS) $(LOGGEN_OBJECTS) $(LDLIBS)
ACL_OBJECTS = acl_get.o $(LIBACL)
acl_get: $(HFILES) $(ACL_OBJECTS)
$(CCF) -o $@ $(LDFLAGS) $(ACL_OBJECTS) $(LDLIBS)
ACLGET_OBJECTS = acl_get.o $(LIBACL)
acl_get: $(HFILES) $(ACLGET_OBJECTS)
$(CCF) -o $@ $(LDFLAGS) $(ACLGET_OBJECTS) $(LDLIBS)
ACLTEST_OBJECTS = acl_test.o $(LIBACL)
acl_test: $(HFILES) $(ACLTEST_OBJECTS)
$(CCF) -o $@ $(LDFLAGS) $(ACLTEST_OBJECTS) $(LDLIBS)
+212
View File
@@ -0,0 +1,212 @@
/*
* Copyright (c) 2001 Silicon Graphics, Inc. All Rights Reserved.
*
* This prog is free software; you can redistribute it and/or modify it
* under the terms of version 2 of the GNU General Public License as
* published by the Free Software Foundation.
*
* This prog is distributed in the hope that it would be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* Further, this software is distributed without any warranty that it is
* free of the rightful claim of any third person regarding infringement
* or the like. Any license provided herein, whether implied or
* otherwise, applies only to this software file. Patent licenses, if
* any, provided herein do not apply to combinations of this prog with
* other software, or any other product whatsoever.
*
* You should have received a copy of the GNU General Public License along
* with this prog; if not, write the Free Software Foundation, Inc., 59
* Temple Place - Suite 330, Boston MA 02111-1307, USA.
*
* Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
* Mountain View, CA 94043, or:
*
* http://www.sgi.com
*
* For further information regarding this notice, see:
*
* http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
*/
/*
* Test our various libacl functions.
* Use IRIX semantics or Linux semantics if pertinent.
*/
#include "global.h"
#include <errno.h>
#include <acl.h>
char *prog;
int irixsemantics = 0;
void usage(void)
{
fprintf(stderr, "usage: %s\n"
" -i - use irix semantics\n"
,prog);
}
void
print_err(char *msg)
{
printf("%s: %s: %s\n", prog, msg, strerror(errno));
}
void
dump_ace(acl_entry_t ace)
{
printf("<tag:%d,id:%d,perm:%u>",
ace->ae_tag, ace->ae_id, ace->ae_perm);
}
void
dump_acl(acl_t acl)
{
int i;
printf("ACL[n=%d]: ", acl->acl_cnt);
for (i=0;i<acl->acl_cnt;i++) {
acl_entry_t ace = &acl->acl_entry[i];
printf("%d: ", i);
dump_ace(ace);
printf(" ");
}
printf("\n");
}
void
dump_acl_by_entry(acl_t acl)
{
int sts, i;
acl_entry_t ace;
printf("Get 1st entry on filled ACL\n");
sts = acl_get_entry(acl, ACL_FIRST_ENTRY, &ace);
printf("acl_get_entry -> %d\n", sts);
if (sts > 0) {
printf("1: "); dump_ace(ace); printf("\n");
}
for(i=2;i<=acl->acl_cnt+2;i++) {
printf("Get %dth entry on filled ACL\n", i);
sts = acl_get_entry(acl, ACL_NEXT_ENTRY, &ace);
printf("acl_get_entry -> %d\n", sts);
if (sts > 0) {
printf("%d: ",i); dump_ace(ace); printf("\n");
}
}
}
/*
* create a full acl with entries with known bogus values
*/
acl_t
create_filled_acl(void)
{
acl_t acl;
int i;
acl = acl_init(ACL_MAX_ENTRIES);
for(i=0;i<ACL_MAX_ENTRIES;i++) {
acl_entry_t ace = &acl->acl_entry[i];
ace->ae_tag = i;
ace->ae_id = i+1;
ace->ae_perm = i+2;
acl->acl_cnt++;
}
return acl;
}
int
main(int argc, char **argv)
{
int c, i;
acl_t acl1, acl2, acl3;
acl_entry_t ace1;
prog = basename(argv[0]);
while ((c = getopt(argc, argv, "i")) != -1) {
switch (c) {
case 'i':
irixsemantics = 1;
break;
case '?':
usage();
return 1;
}
}
if (irixsemantics) {
acl_set_compat(ACL_COMPAT_IRIXGET);
}
/* ---------------------------------------------- */
printf("*** test out creating an ACL ***\n");
printf("Test acl_init(ACL_MAX_ENTRIES+1)\n");
acl1 = acl_init(ACL_MAX_ENTRIES+1);
if (acl1 == NULL) {
print_err("acl_init(max+1)");
}
printf("Test acl_init(-1)\n");
acl1 = acl_init(-1);
if (acl1 == NULL) {
print_err("acl_init(-1)");
}
printf("Test acl_init(0)\n");
acl1 = acl_init(0);
if (acl1 == NULL) {
print_err("acl_init(0)");
}
printf("Test acl_create_entry(NULL, ...)\n");
if (acl_create_entry(NULL, &ace1) == -1) {
print_err("acl_create_entry(NULL,ace1)");
}
printf("Test acl_create_entry(..., NULL)\n");
if (acl_create_entry(&acl1, NULL) == -1) {
print_err("acl_create_entry(NULL,ace1)");
}
printf("Test acl_create_entry(acl1, ace1)\n");
acl1 = NULL;
if (acl_create_entry(&acl1, &ace1) == -1) {
print_err("acl_create_entry(*null,ace1)");
}
acl_free(acl1);
acl1 = acl_init(0);
for (i=0;i<=ACL_MAX_ENTRIES+1;i++) {
printf("%d: creating ace\n", i);
if (acl_create_entry(&acl1, &ace1) == -1) {
print_err("acl_create_entry");
}
dump_acl(acl1);
}
/* ---------------------------------------------- */
printf("*** test out getting ACEs ***\n");
dump_acl_by_entry(acl1);
printf("dump empty ACL\n");
acl2 = acl_init(0);
if (acl2 == NULL) {
print_err("acl_init(0)");
}
dump_acl_by_entry(acl2);
printf("fill an ACL with known bogus values\n");
acl3 = create_filled_acl();
dump_acl_by_entry(acl3);
/* ---------------------------------------------- */
return 0;
}