Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: test/examples/examples.py
- Revision:
- 31:8ea194f6145b
diff -r f12ce67666d0 -r 8ea194f6145b test/examples/examples.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/examples/examples.py Wed Jan 04 11:58:24 2017 -0600
@@ -0,0 +1,128 @@
+""" import and bulid a bunch of example programs """
+
+from argparse import ArgumentParser
+import os
+from os.path import dirname, abspath, basename
+import os.path
+import sys
+import subprocess
+import json
+
+ROOT = abspath(dirname(dirname(dirname(dirname(__file__)))))
+sys.path.insert(0, ROOT)
+
+from tools.utils import argparse_force_uppercase_type
+from tools.utils import argparse_many
+from tools.build_api import get_mbed_official_release
+import examples_lib as lib
+from examples_lib import SUPPORTED_TOOLCHAINS, SUPPORTED_IDES
+
+def main():
+ """Entry point"""
+
+ official_targets = get_mbed_official_release("5")
+ official_target_names = [x[0] for x in official_targets]
+
+
+ parser = ArgumentParser()
+ parser.add_argument("-c", dest="config", default="examples.json")
+ parser.add_argument("-e", "--example",
+ help=("filter the examples used in the script"),
+ type=argparse_many(lambda x: x),
+ default=[])
+ subparsers = parser.add_subparsers()
+ import_cmd = subparsers.add_parser("import")
+ import_cmd.set_defaults(fn=do_import)
+ clone_cmd = subparsers.add_parser("clone")
+ clone_cmd.set_defaults(fn=do_clone)
+ deploy_cmd = subparsers.add_parser("deploy")
+ deploy_cmd.set_defaults(fn=do_deploy)
+ version_cmd = subparsers.add_parser("tag")
+ version_cmd.add_argument("tag")
+ version_cmd.set_defaults(fn=do_versionning)
+ compile_cmd = subparsers.add_parser("compile")
+ compile_cmd.set_defaults(fn=do_compile),
+ compile_cmd.add_argument(
+ "toolchains", nargs="*", default=SUPPORTED_TOOLCHAINS,
+ type=argparse_force_uppercase_type(SUPPORTED_TOOLCHAINS,
+ "toolchain")),
+ compile_cmd.add_argument("-m", "--mcu",
+ help=("build for the given MCU (%s)" %
+ ', '.join(official_target_names)),
+ metavar="MCU",
+ type=argparse_many(
+ argparse_force_uppercase_type(
+ official_target_names, "MCU")),
+ default=official_target_names)
+ export_cmd = subparsers.add_parser("export")
+ export_cmd.set_defaults(fn=do_export),
+ export_cmd.add_argument(
+ "ide", nargs="*", default=SUPPORTED_IDES,
+ type=argparse_force_uppercase_type(SUPPORTED_IDES,
+ "ide"))
+ export_cmd.add_argument("-m", "--mcu",
+ help=("build for the given MCU (%s)" %
+ ', '.join(official_target_names)),
+ metavar="MCU",
+ type=argparse_many(
+ argparse_force_uppercase_type(
+ official_target_names, "MCU")),
+ default=official_target_names)
+ args = parser.parse_args()
+ config = json.load(open(os.path.join(os.path.dirname(__file__),
+ args.config)))
+
+ all_examples = []
+ for example in config['examples']:
+ all_examples = all_examples + [basename(x['repo']) for x in lib.get_repo_list(example)]
+ examples = [x for x in all_examples if x in args.example] if args.example else all_examples
+ return args.fn(args, config, examples)
+
+
+def do_export(args, config, examples):
+ """Do export and build step"""
+ results = {}
+ results = lib.export_repos(config, args.ide, args.mcu, examples)
+
+ lib.print_summary(results, export=True)
+ failures = lib.get_num_failures(results, export=True)
+ print("Number of failures = %d" % failures)
+ return failures
+
+
+def do_import(_, config, examples):
+ """Do the import step of this process"""
+ lib.source_repos(config, examples)
+ return 0
+
+
+def do_clone(_, config, examples):
+ """Do the clone step of this process"""
+ lib.clone_repos(config, examples)
+ return 0
+
+
+def do_deploy(_, config, examples):
+ """Do the deploy step of this process"""
+ lib.deploy_repos(config, examples)
+ return 0
+
+
+def do_compile(args, config, examples):
+ """Do the compile step"""
+ results = {}
+ results = lib.compile_repos(config, args.toolchains, args.mcu, examples)
+
+ lib.print_summary(results)
+ failures = lib.get_num_failures(results)
+ print("Number of failures = %d" % failures)
+ return failures
+
+def do_versionning(args, config, examples):
+ """ Test update the mbed-os to the version specified by the tag """
+ lib.update_mbedos_version(config, args.tag, examples)
+ return 0
+
+
+if __name__ == "__main__":
+ sys.exit(main())