file1 []
Expect to FAIL
chacl: "u::r--,g::rwx,o:rw-" is an invalid ACL specification.
+cannot find permission separator after char ":" (position 16)
Expect to PASS
file1 [u::r--,g::rwx,o::rw-]
--- Test adding a USER ACE ---
Expect to FAIL as no MASK provided
chacl: "u::---,g::---,o::---,u:id2:r-x" is an invalid ACL specification.
+mask required and no mask
Ensure that ACL has not been changed
file1 [u::---,g::---,o::r-x]
Expect to PASS - USER ACE matches user
--- Test adding a GROUP ACE ---
Expect to FAIL as no MASK provided
chacl: "u::---,g::---,o::---,g:id2:r-x" is an invalid ACL specification.
+mask required and no mask
Ensure that ACL has not been changed
file1 [u::---,g::---,o::---,u:id2:r-x,m::rwx]
file1 [u::---,g::---,o::---,g:id2:r-x,m::rwx]
file1 []
acldir []
acldir/file2 []
+
+=== 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 ===
++ chacl u file1
+chacl: "u" is an invalid ACL specification.
+could not find qualifier separator after tag "u"
++ chacl u: file1
+chacl: "u:" is an invalid ACL specification.
+cannot find permission separator after char ":" (position 2)
++ chacl u:rumpledumpleunknownuser file1
+chacl: "u:rumpledumpleunknownuser" is an invalid ACL specification.
+cannot find permission separator after char ":" (position 2)
++ chacl u:rumpledumpleunknownuser: file1
+chacl: "u:rumpledumpleunknownuser:" is an invalid ACL specification.
+cannot find user "rumpledumpleunknownuser"
++ chacl g:rumpledumpleunknowngrp file1
+chacl: "g:rumpledumpleunknowngrp" is an invalid ACL specification.
+cannot find permission separator after char ":" (position 2)
++ chacl g:rumpledumpleunknowngrp: file1
+chacl: "g:rumpledumpleunknowngrp:" is an invalid ACL specification.
+cannot find group "rumpledumpleunknowngrp"
++ chacl o:user1:rwx file1
+chacl: "o:user1:rwx" is an invalid ACL specification.
+garbage after other tag: "user1"
++ chacl m:user1:rwx file1
+chacl: "m:user1:rwx" is an invalid ACL specification.
+garbage after mask tag: "user1"
++ chacl a::rwx file1
+chacl: "a::rwx" is an invalid ACL specification.
+invalid tag: "a"
++ set +x