diff options
author | Petteri Aimonen <jpa@git.mail.kapsi.fi> | 2014-07-20 14:55:47 +0300 |
---|---|---|
committer | Petteri Aimonen <jpa@git.mail.kapsi.fi> | 2014-07-20 14:55:47 +0300 |
commit | 5749606f5d2f0a0c64cb6e021b7bd40b74ce45ee (patch) | |
tree | 5572a99881a7896512cb88adf35c8c201711a0d5 | |
parent | eaa3c7b157ffd2a308dfc6d35d79309a9aacbcef (diff) |
Add support for inverted patterns in test framework.
-rw-r--r-- | tests/site_scons/site_init.py | 17 |
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 |