]> xenbits.xensource.com Git - libvirt.git/commitdiff
scripts: check-aclrules: use regular expressions less often
authorJán Tomko <jtomko@redhat.com>
Wed, 20 Nov 2019 18:13:29 +0000 (19:13 +0100)
committerJán Tomko <jtomko@redhat.com>
Fri, 22 Nov 2019 10:40:52 +0000 (11:40 +0100)
Use a simple
  if "substr" in line
before running a regular expression, which saves time,
especially if the regex has a capture group.

This reduces runtime of the check by almost 78 % for me.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
scripts/check-aclrules.py

index d145e59164e9fb57755c971689b6eee74a88edbf..dfd5fa48265c2f7ec88e2e29688af94c68dc1793 100755 (executable)
@@ -150,13 +150,21 @@ def process_file(filename):
                 # Looks for anything which appears to be a function
                 # body name. Doesn't matter if we pick up bogus stuff
                 # here, as long as we don't miss valid stuff
-                m = re.search(r'''\b(\w+)\(''', line)
+                m = None
+                if "(" in line:
+                    m = re.search(r'''\b(\w+)\(''', line)
                 if m is not None:
                     maybefunc = m.group(1)
             elif brace > 0:
-                ensureacl = re.search(r'''(\w+)EnsureACL''', line)
-                checkacl = re.search(r'''(\w+)CheckACL''', line)
-                stub = re.search(r'''\b(\w+)\(''', line)
+                ensureacl = None
+                checkacl = None
+                stub = None
+                if "EnsureACL" in line:
+                    ensureacl = re.search(r'''(\w+)EnsureACL''', line)
+                if "CheckACL" in line:
+                    checkacl = re.search(r'''(\w+)CheckACL''', line)
+                if "(" in line:
+                    stub = re.search(r'''\b(\w+)\(''', line)
                 if ensureacl is not None:
                     # Record the fact that maybefunc contains an
                     # ACL call, and make sure it is the right call!
@@ -210,7 +218,9 @@ def process_file(filename):
             # every func listed there, has an impl which calls
             # an ACL function
             if intable:
-                assign = re.search(r'''\.(\w+)\s*=\s*(\w+),?''', line)
+                assign = None
+                if "=" in line:
+                    assign = re.search(r'''\.(\w+)\s*=\s*(\w+),?''', line)
                 if "}" in line:
                     intable = False
                     table = None
@@ -237,8 +247,10 @@ def process_file(filename):
                                   file=sys.stderr)
                             errs = True
             else:
-                m = re.search(r'''^(?:static\s+)?(vir(?:\w+)?Driver)\s+''',
-                              line)
+                m = None
+                if "Driver" in line:
+                    m = re.search(r'''^(?:static\s+)?(vir(?:\w+)?Driver)\s+''',
+                                  line)
                 if m is not None:
                     name = m.group(1)
                     if name not in ["virNWFilterCallbackDriver",