blob: 3d4b1e0c6585564789e0368c47441a19ebac79f4 [file] [log] [blame]
Gilles Peskine2fcf04f2019-06-14 18:23:03 +02001#!/usr/bin/env python3
2"""Run the Mbed TLS demo scripts.
3"""
4import glob
5import subprocess
6import sys
7
8def run_demo(demo):
9 """Run the specified demo script. Return True if it succeeds."""
10 returncode = subprocess.call([demo])
11 return returncode == 0
12
13def run_demos(demos):
14 """Run the specified demos and print summary information about failures.
15
16 Return True if all demos passed and False if a demo fails.
17 """
18 failures = []
19 for demo in demos:
20 print('#### {} ####'.format(demo))
21 if not run_demo(demo):
22 failures.append(demo)
23 print('{}: FAIL'.format(demo))
24 print('')
25 successes = len(demos) - len(failures)
26 print('{}/{} demos passed'.format(successes, len(demos)))
27 if failures:
28 print('Failures:', *failures)
29 return not failures
30
31def run_all_demos():
32 """Run all the available demos.
33
34 Return True if all demos passed and False if a demo fails.
35 """
36 all_demos = glob.glob('programs/*/*_demo.sh')
37 return run_demos(all_demos)
38
39if __name__ == '__main__':
40 if not run_all_demos():
41 sys.exit(1)