aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2017-09-29 10:31:05 -0400
committerJack Lloyd <[email protected]>2017-09-29 10:31:05 -0400
commit1e72c64886c71ece2ffbda80d3863d12965cc01b (patch)
treea9017d9a74864d628f34d79a750ae35c6b043ea0
parent2860028d21d93bbbf33966e7e511a9e19da770ca (diff)
More futzing with the build em all script
[ci skip]
-rwxr-xr-xsrc/scripts/build_tests.py67
1 files changed, 36 insertions, 31 deletions
diff --git a/src/scripts/build_tests.py b/src/scripts/build_tests.py
index 875b3d111..c83eb7cdd 100755
--- a/src/scripts/build_tests.py
+++ b/src/scripts/build_tests.py
@@ -36,42 +36,40 @@ def get_concurrency():
except ImportError:
return def_concurrency
-def run_test_build(configure_py, modules, include):
- cmdline = [configure_py]
+def try_to_run(cmdline):
+ print("Running %s ... " % (' '.join(cmdline)))
+ cmd = subprocess.Popen(cmdline, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ (stdout, stderr) = cmd.communicate()
+
+ if cmd.returncode != 0:
+ print("FAILURE")
+ print(stdout.decode('ascii'))
+ print(stderr.decode('ascii'))
+
+ sys.stdout.flush()
+
+ return (cmd.returncode == 0)
+
+def run_test_build(configure_py, modules, include, run_tests = False):
+ config = [configure_py]
if include:
- cmdline.append('--minimized')
+ config.append('--minimized')
if modules:
- cmdline.append('--enable-modules=' + ','.join(modules))
+ config.append('--enable-modules=' + ','.join(modules))
else:
- cmdline.append('--disable-modules=' + ','.join(modules))
+ config.append('--disable-modules=' + ','.join(modules))
- print("Testing", cmdline)
- configure = subprocess.Popen(cmdline, stdout=subprocess.PIPE)
- configure.communicate()
+ if try_to_run(config) is False:
+ return False
- if configure.returncode != 0:
- raise Exception("Running %s failed" % (' '.join(cmdline)))
+ if try_to_run(['make', '-j', str(get_concurrency())]) is False:
+ return False
- make = subprocess.Popen(['make', '-j', str(get_concurrency())],
- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- (stdout, stderr) = make.communicate()
+ if run_tests is False:
+ return True
- if make.returncode != 0:
- print("Build failed:")
- print(stdout.decode('ascii'))
- print(stderr.decode('ascii'))
-
- tests = subprocess.Popen(['./botan-test'],
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- (stdout, stderr) = tests.communicate()
- if tests.returncode != 0:
- print("Tests failed:")
- print(stdout.decode('ascii'))
- print(stderr.decode('ascii'))
-
- sys.stdout.flush()
+ return try_to_run(['./botan-test'])
def main(args):
@@ -80,15 +78,22 @@ def main(args):
configure_py = './configure.py'
modules = get_module_list(configure_py)
+ cant_disable = ['block', 'hash', 'hex', 'mac', 'modes', 'rng', 'stream', 'utils']
+ always_include = ['sha2_32', 'sha2_64', 'aes']
+
for module in sorted(modules):
- extra = ['sha2_32', 'sha2_64', 'aes']
- if module in extra:
+ continue
+ if module in always_include or module in cant_disable:
continue # already testing it
+
+ extra = []
if module == 'auto_rng':
extra.append('dev_random')
- run_test_build(configure_py, [module] + extra, True)
+ run_test_build(configure_py, [module] + always_include + extra, True)
for module in sorted(modules):
+ if module in cant_disable or module in always_include:
+ continue
run_test_build(configure_py, [module], False)