#!/usr/bin/env python3 """Run the Mbed TLS demo scripts. """ import glob import subprocess import sys def run_demo(demo): """Run the specified demo script. Return True if it succeeds.""" returncode = subprocess.call([demo]) return returncode == 0 def run_demos(demos): """Run the specified demos and print summary information about failures. Return True if all demos passed and False if a demo fails. """ failures = [] for demo in demos: print('#### {} ####'.format(demo)) if not run_demo(demo): failures.append(demo) print('{}: FAIL'.format(demo)) print('') successes = len(demos) - len(failures) print('{}/{} demos passed'.format(successes, len(demos))) if failures: print('Failures:', *failures) return not failures def run_all_demos(): """Run all the available demos. Return True if all demos passed and False if a demo fails. """ all_demos = glob.glob('programs/*/*_demo.sh') return run_demos(all_demos) if __name__ == '__main__': if not run_all_demos(): sys.exit(1)