aboutsummaryrefslogtreecommitdiff
path: root/tests/site_scons/site_init.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/site_scons/site_init.py')
-rw-r--r--tests/site_scons/site_init.py29
1 files changed, 20 insertions, 9 deletions
diff --git a/tests/site_scons/site_init.py b/tests/site_scons/site_init.py
index 5fb06d6..56e227b 100644
--- a/tests/site_scons/site_init.py
+++ b/tests/site_scons/site_init.py
@@ -27,16 +27,16 @@ def add_nanopb_builders(env):
if env.has_key('ARGS'):
args.extend(env['ARGS'])
- print 'Command line: ' + str(args)
+ print('Command line: ' + str(args))
pipe = subprocess.Popen(args,
stdin = infile,
stdout = open(str(target[0]), 'w'),
stderr = sys.stderr)
result = pipe.wait()
if result == 0:
- print '\033[32m[ OK ]\033[0m Ran ' + args[0]
+ print('\033[32m[ OK ]\033[0m Ran ' + args[0])
else:
- print '\033[31m[FAIL]\033[0m Program ' + args[0] + ' returned ' + str(result)
+ print('\033[31m[FAIL]\033[0m Program ' + args[0] + ' returned ' + str(result))
return result
run_test_builder = Builder(action = run_test,
@@ -70,10 +70,10 @@ def add_nanopb_builders(env):
data1 = open(str(source[0]), 'rb').read()
data2 = open(str(source[1]), 'rb').read()
if data1 == data2:
- print '\033[32m[ OK ]\033[0m Files equal: ' + str(source[0]) + ' and ' + str(source[1])
+ print('\033[32m[ OK ]\033[0m Files equal: ' + str(source[0]) + ' and ' + str(source[1]))
return 0
else:
- print '\033[31m[FAIL]\033[0m Files differ: ' + str(source[0]) + ' and ' + str(source[1])
+ print('\033[31m[FAIL]\033[0m Files differ: ' + str(source[0]) + ' and ' + str(source[1]))
return 1
compare_builder = Builder(action = compare_files,
@@ -85,11 +85,22 @@ 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])
+ print('\033[32m[ OK ]\033[0m All patterns found in ' + str(source[0]))
return 0
match_builder = Builder(action = match_files, suffix = '.matched')