QA output created by 051

=== Test minimal ACE ===
Setup file
-rwxrw-r-- id1 id2 file1

--- Test get and set of ACL ---
Note: Old interface gave an empty ACL - now output an ACL
file1 [u::rwx,g::rw-,o::r--]
Try using single colon separator
Note: Old interface FAILed because of single colon - new one allows it
Expect to PASS
file1 [u::r--,g::rwx,o::rw-]

--- Test sync of ACL with std permissions ---
-r--rwxrw- id1 id2 file1
-rw-rwxrw- id1 id2 file1
file1 [u::rw-,g::rwx,o::rw-]

--- Test owner permissions ---
file1 [u::r-x,g::---,o::---]
Expect to PASS
Test was executed
Expect to FAIL
./file1: Permission denied

--- Test group permissions ---
file1 [u::---,g::r-x,o::---]
Expect to FAIL - acl1 is owner
./file1: Permission denied
Expect to PASS - acl2 matches group
Test was executed
Expect to PASS - acl2 matches sup group
Test was executed
Expect to FAIL - acl3 is not in group
./file1: Permission denied

--- Test other permissions ---
file1 [u::---,g::---,o::r-x]
Expect to FAIL - acl1 is owner
./file1: Permission denied
Expect to FAIL - acl2 is in group
./file1: Permission denied
Expect to FAIL - acl2 is in sup. group
./file1: Permission denied
Expect to PASS - acl3 is not owner or in group
Test was executed

=== Test Extended ACLs ===

--- Test adding a USER ACE ---
Expect to FAIL as no MASK provided
chacl: access ACL 'u::---,g::---,o::---,u:id2:r-x': Missing or wrong entry at entry 3
Ensure that ACL has not been changed
file1 [u::---,g::---,o::r-x]
Expect to PASS - USER ACE matches user
file1 [u::---,u:id2:r-x,g::---,m::rwx,o::---]
Test was executed
Expect to FAIL - USER ACE does not match user
./file1: Permission denied

--- Test adding a GROUP ACE ---
Expect to FAIL as no MASK provided
chacl: access ACL 'u::---,g::---,o::---,g:id2:r-x': Missing or wrong entry at entry 3
Ensure that ACL has not been changed
file1 [u::---,u:id2:r-x,g::---,m::rwx,o::---]
file1 [u::---,g::---,g:id2:r-x,m::rwx,o::---]
Expect to PASS - GROUP ACE matches group
Test was executed
Expect to PASS - GROUP ACE matches sup group
Test was executed
Expect to FAIL - GROUP ACE does not match group
./file1: Permission denied

--- Test MASK ---
file1 [u::---,g::---,g:id2:r-x,m::-w-,o::---]
Expect to FAIL as MASK prohibits execution
./file1: Permission denied
Expect to FAIL as MASK prohibits execution
./file1: Permission denied
Expect to PASS as MASK allows execution
Test was executed

--- Test ACE priority ---
Expect to FAIL as should match on owner
./file1: Permission denied
Expect to PASS as should match on user
Test was executed

=== Test can read ACLs without access permissions ===
file1 [u::---,g::---,o::---]

=== Test Default ACLs ===
acldir [u::rwx,g::rwx,o::rwx/u::r-x,g::r--,o::---]
-r--r----- 0 0 file2
file2 [u::r--,g::r--,o::---]
-r--r----- 0 0 file3
file3 [u::r--,g::r--,o::---]

=== Removing ACLs ===
file1 [u::---,g::---,o::---]
acldir [u::rwx,g::rwx,o::rwx/u::r-x,g::r--,o::---]
acldir/file2 [u::r--,g::r--,o::---]
Remove ACLs...
Note: Old interface would mean empty ACLs - now we show mode ACLs
file1 [u::---,g::---,o::---]
acldir [u::rwx,g::rwx,o::rwx]
acldir/file2 [u::r--,g::r--,o::---]

=== Recursive change ACL ===
Change #1...
root [u::rwx,g::-w-,o::--x]
root/a [u::rwx,g::-w-,o::--x]
root/a/1 [u::rwx,g::-w-,o::--x]
root/a/1/mumble [u::rwx,g::-w-,o::--x]
root/a/2 [u::rwx,g::-w-,o::--x]
root/a/2/mumble [u::rwx,g::-w-,o::--x]
root/a/3 [u::rwx,g::-w-,o::--x]
root/a/3/mumble [u::rwx,g::-w-,o::--x]
root/a/4 [u::rwx,g::-w-,o::--x]
root/a/4/mumble [u::rwx,g::-w-,o::--x]
root/a/5 [u::rwx,g::-w-,o::--x]
root/a/5/mumble [u::rwx,g::-w-,o::--x]
root/a/6 [u::rwx,g::-w-,o::--x]
root/a/6/mumble [u::rwx,g::-w-,o::--x]
root/a/7 [u::rwx,g::-w-,o::--x]
root/a/7/mumble [u::rwx,g::-w-,o::--x]
root/a/8 [u::rwx,g::-w-,o::--x]
root/a/8/mumble [u::rwx,g::-w-,o::--x]
root/a/9 [u::rwx,g::-w-,o::--x]
root/a/9/mumble [u::rwx,g::-w-,o::--x]
root/a/0 [u::rwx,g::-w-,o::--x]
root/a/0/mumble [u::rwx,g::-w-,o::--x]
root/b [u::rwx,g::-w-,o::--x]
root/b/c1 [u::rwx,g::-w-,o::--x]
root/b/c1/1 [u::rwx,g::-w-,o::--x]
root/b/c2 [u::rwx,g::-w-,o::--x]
root/b/c2/2 [u::rwx,g::-w-,o::--x]
root/b/c3 [u::rwx,g::-w-,o::--x]
root/b/c3/3 [u::rwx,g::-w-,o::--x]
root/b/c4 [u::rwx,g::-w-,o::--x]
root/b/c4/4 [u::rwx,g::-w-,o::--x]
root/b/c5 [u::rwx,g::-w-,o::--x]
root/b/c5/5 [u::rwx,g::-w-,o::--x]
root/b/c6 [u::rwx,g::-w-,o::--x]
root/b/c6/6 [u::rwx,g::-w-,o::--x]
root/b/c7 [u::rwx,g::-w-,o::--x]
root/b/c7/7 [u::rwx,g::-w-,o::--x]
root/b/c8 [u::rwx,g::-w-,o::--x]
root/b/c8/8 [u::rwx,g::-w-,o::--x]
root/b/c9 [u::rwx,g::-w-,o::--x]
root/b/c9/9 [u::rwx,g::-w-,o::--x]
root/b/c0 [u::rwx,g::-w-,o::--x]
root/b/c0/0 [u::rwx,g::-w-,o::--x]
Change #2...
root [u::---,g::---,o::---]
root/a [u::---,g::---,o::---]
root/a/1 [u::---,g::---,o::---]
root/a/1/mumble [u::---,g::---,o::---]
root/a/2 [u::---,g::---,o::---]
root/a/2/mumble [u::---,g::---,o::---]
root/a/3 [u::---,g::---,o::---]
root/a/3/mumble [u::---,g::---,o::---]
root/a/4 [u::---,g::---,o::---]
root/a/4/mumble [u::---,g::---,o::---]
root/a/5 [u::---,g::---,o::---]
root/a/5/mumble [u::---,g::---,o::---]
root/a/6 [u::---,g::---,o::---]
root/a/6/mumble [u::---,g::---,o::---]
root/a/7 [u::---,g::---,o::---]
root/a/7/mumble [u::---,g::---,o::---]
root/a/8 [u::---,g::---,o::---]
root/a/8/mumble [u::---,g::---,o::---]
root/a/9 [u::---,g::---,o::---]
root/a/9/mumble [u::---,g::---,o::---]
root/a/0 [u::---,g::---,o::---]
root/a/0/mumble [u::---,g::---,o::---]
root/b [u::---,g::---,o::---]
root/b/c1 [u::---,g::---,o::---]
root/b/c1/1 [u::---,g::---,o::---]
root/b/c2 [u::---,g::---,o::---]
root/b/c2/2 [u::---,g::---,o::---]
root/b/c3 [u::---,g::---,o::---]
root/b/c3/3 [u::---,g::---,o::---]
root/b/c4 [u::---,g::---,o::---]
root/b/c4/4 [u::---,g::---,o::---]
root/b/c5 [u::---,g::---,o::---]
root/b/c5/5 [u::---,g::---,o::---]
root/b/c6 [u::---,g::---,o::---]
root/b/c6/6 [u::---,g::---,o::---]
root/b/c7 [u::---,g::---,o::---]
root/b/c7/7 [u::---,g::---,o::---]
root/b/c8 [u::---,g::---,o::---]
root/b/c8/8 [u::---,g::---,o::---]
root/b/c9 [u::---,g::---,o::---]
root/b/c9/9 [u::---,g::---,o::---]
root/b/c0 [u::---,g::---,o::---]
root/b/c0/0 [u::---,g::---,o::---]

=== Test out error messages for ACL text parsing  ===
Note: Old interface gave more informative error msgs
+ chacl u file1
chacl: u - Invalid argument
+ chacl u: file1
chacl: u: - Invalid argument
+ chacl u:rumpledumpleunknownuser file1
chacl: u:rumpledumpleunknownuser - Invalid argument
+ chacl u:rumpledumpleunknownuser: file1
chacl: u:rumpledumpleunknownuser: - Invalid argument
+ chacl g:rumpledumpleunknowngrp file1
chacl: g:rumpledumpleunknowngrp - Invalid argument
+ chacl g:rumpledumpleunknowngrp: file1
chacl: g:rumpledumpleunknowngrp: - Invalid argument
+ chacl o:user1:rwx file1
chacl: o:user1:rwx - Invalid argument
+ chacl m:user1:rwx file1
chacl: m:user1:rwx - Invalid argument
+ chacl a::rwx file1
chacl: a::rwx - Invalid argument
+ set +x

=== Test out large ACLs  ===
1 below xfs acl max
# file: largeaclfile
# owner: root
# group: root
user::rwx
user:1:rwx
user:2:rwx
user:3:rwx
user:4:rwx
user:5:rwx
user:6:rwx
user:7:rwx
user:8:rwx
user:9:rwx
user:10:rwx
user:11:rwx
user:12:rwx
user:13:rwx
user:14:rwx
user:15:rwx
user:16:rwx
user:17:rwx
user:18:rwx
user:19:rwx
user:20:rwx
group::rwx
mask::rwx
other::rwx

xfs acl max
# file: largeaclfile
# owner: root
# group: root
user::rwx
user:1:rwx
user:2:rwx
user:3:rwx
user:4:rwx
user:5:rwx
user:6:rwx
user:7:rwx
user:8:rwx
user:9:rwx
user:10:rwx
user:11:rwx
user:12:rwx
user:13:rwx
user:14:rwx
user:15:rwx
user:16:rwx
user:17:rwx
user:18:rwx
user:19:rwx
user:20:rwx
user:21:rwx
group::rwx
mask::rwx
other::rwx

1 above xfs acl max
chacl: cannot set access acl on "largeaclfile": Invalid argument
# file: largeaclfile
# owner: root
# group: root
user::rwx
user:1:rwx
user:2:rwx
user:3:rwx
user:4:rwx
user:5:rwx
user:6:rwx
user:7:rwx
user:8:rwx
user:9:rwx
user:10:rwx
user:11:rwx
user:12:rwx
user:13:rwx
user:14:rwx
user:15:rwx
user:16:rwx
user:17:rwx
user:18:rwx
user:19:rwx
user:20:rwx
user:21:rwx
group::rwx
mask::rwx
other::rwx

use 16 aces
# file: largeaclfile
# owner: root
# group: root
user::rwx
user:1:rwx
user:2:rwx
user:3:rwx
user:4:rwx
user:5:rwx
user:6:rwx
user:7:rwx
user:8:rwx
user:9:rwx
user:10:rwx
user:11:rwx
user:12:rwx
group::rwx
mask::rwx
other::rwx

use 17 aces
# file: largeaclfile
# owner: root
# group: root
user::rwx
user:1:rwx
user:2:rwx
user:3:rwx
user:4:rwx
user:5:rwx
user:6:rwx
user:7:rwx
user:8:rwx
user:9:rwx
user:10:rwx
user:11:rwx
user:12:rwx
user:13:rwx
group::rwx
mask::rwx
other::rwx

