1
0
mirror of https://github.com/ARMmbed/mbedtls.git synced 2025-05-17 04:11:45 +08:00

Add --quiet option to suppress demos' output

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
Gilles Peskine 2020-04-26 22:51:05 +02:00
parent 086f85f055
commit 9fdc657cbf

View File

@ -1,44 +1,57 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
"""Run the Mbed TLS demo scripts. """Run the Mbed TLS demo scripts.
""" """
import argparse
import glob import glob
import subprocess import subprocess
import sys import sys
def run_demo(demo): def run_demo(demo, quiet=False):
"""Run the specified demo script. Return True if it succeeds.""" """Run the specified demo script. Return True if it succeeds."""
returncode = subprocess.call([demo]) args = {}
if quiet:
args['stdout'] = subprocess.DEVNULL
args['stderr'] = subprocess.DEVNULL
returncode = subprocess.call([demo], **args)
return returncode == 0 return returncode == 0
def run_demos(demos): def run_demos(demos, quiet=False):
"""Run the specified demos and print summary information about failures. """Run the specified demos and print summary information about failures.
Return True if all demos passed and False if a demo fails. Return True if all demos passed and False if a demo fails.
""" """
failures = [] failures = []
for demo in demos: for demo in demos:
print('#### {} ####'.format(demo)) if not quiet:
success = run_demo(demo) print('#### {} ####'.format(demo))
success = run_demo(demo, quiet=quiet)
if not success: if not success:
failures.append(demo) failures.append(demo)
print('{}: FAIL'.format(demo)) if not quiet:
print('') print('{}: FAIL'.format(demo))
if not quiet:
print('')
successes = len(demos) - len(failures) successes = len(demos) - len(failures)
print('{}/{} demos passed'.format(successes, len(demos))) print('{}/{} demos passed'.format(successes, len(demos)))
if failures: if failures:
print('Failures:', *failures) print('Failures:', *failures)
return not failures return not failures
def run_all_demos(): def run_all_demos(quiet=False):
"""Run all the available demos. """Run all the available demos.
Return True if all demos passed and False if a demo fails. Return True if all demos passed and False if a demo fails.
""" """
all_demos = glob.glob('programs/*/*_demo.sh') all_demos = glob.glob('programs/*/*_demo.sh')
return run_demos(all_demos) return run_demos(all_demos, quiet=quiet)
def main(): def main():
success = run_all_demos() parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument('--quiet', '-q',
action='store_true',
help="suppress the output of demos")
options = parser.parse_args()
success = run_all_demos(quiet=options.quiet)
sys.exit(0 if success else 1) sys.exit(0 if success else 1)
if __name__ == '__main__': if __name__ == '__main__':