--- /dev/null
+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
--- /dev/null
+/*
+ * 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;
+}