summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetteri Aimonen <jpa@git.mail.kapsi.fi>2014-07-20 14:55:47 +0300
committerPetteri Aimonen <jpa@git.mail.kapsi.fi>2014-07-20 14:55:47 +0300
commit5749606f5d2f0a0c64cb6e021b7bd40b74ce45ee (patch)
tree5572a99881a7896512cb88adf35c8c201711a0d5
parenteaa3c7b157ffd2a308dfc6d35d79309a9aacbcef (diff)
Add support for inverted patterns in test framework.
-rw-r--r--tests/site_scons/site_init.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/tests/site_scons/site_init.py b/tests/site_scons/site_init.py
index 5fb06d6e..da5f6d65 100644
--- a/tests/site_scons/site_init.py
+++ b/tests/site_scons/site_init.py
@@ -85,9 +85,20 @@ def add_nanopb_builders(env):
data = open(str(source[0]), 'rU').read()
patterns = open(str(source[1]))
for pattern in patterns:
- if pattern.strip() and not re.search(pattern.strip(), data, re.MULTILINE):
- print '\033[31m[FAIL]\033[0m Pattern not found in ' + str(source[0]) + ': ' + pattern
- return 1
+ if pattern.strip():
+ invert = False
+ if pattern.startswith('! '):
+ invert = True
+ pattern = pattern[2:]
+
+ status = re.search(pattern.strip(), data, re.MULTILINE)
+
+ if not status and not invert:
+ print '\033[31m[FAIL]\033[0m Pattern not found in ' + str(source[0]) + ': ' + pattern
+ return 1
+ elif status and invert:
+ print '\033[31m[FAIL]\033[0m Pattern should not exist, but does in ' + str(source[0]) + ': ' + pattern
+ return 1
else:
print '\033[32m[ OK ]\033[0m All patterns found in ' + str(source[0])
return 0