#!/usr/bin/env python3
'''
Access Control Lists testing based on newpynfs framework
Aurelien Charbon - Bull SA
'''
from random_gen import *
from optparse import OptionParser
import subprocess
import os
import threading
import time
import random
alphabet='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789_-() ~'
t_alphabet=len(alphabet)
def test_longacl(l,path):
# mesures sur le getfacl
test = RandomGen()
u = subprocess.getoutput('rm ' + path + "/*") # clean directory
print("test acl getfacl\n")
for i in range(l):
test.getUserList()
testfile = 'testfile' + str(i)
u = subprocess.getoutput('touch ' + path + "/" + testfile)
print("setfacl with " + str(i) + " entries\n " + u)
for j in range(i):
user = test.uList.pop()
mode = test.createRandomMode()
u = subprocess.getoutput('setfacl -m u:' + user + ':' + mode + " " + path + "/" + testfile)
if u != "":
print("setfacl -m u:" + user + ':' + mode + " " + path + "/" + testfile)
print(u)
def main():
parser = OptionParser()
parser.add_option("-l", "--length", dest="length",type="int",help="max lentgh of ACL")
parser.add_option("-p", "--path", dest="path",help="path of test file")
(options, args) = parser.parse_args()
test_longacl(options.length,options.path)
main()