@@ -3011,6 +3011,51 @@ def help_():
3011
3011
return parser .print_help ()
3012
3012
3013
3013
3014
+ @subcommand ('unittest' ,
3015
+ dict (name = '--skip-build' , action = 'store_true' , help = 'skip build step' ),
3016
+ dict (name = '--skip-run' , action = 'store_true' , help = 'skip run step' ),
3017
+ dict (name = '--clean' , action = 'store_true' , help = 'clean build data' ),
3018
+ dict (name = ['-d' , '--debug' ], action = 'store_true' , help = 'enable debug build' ),
3019
+ dict (name = '--coverage' , choices = ['html' , 'xml' , 'both' ], help = 'generate code coverage report' ),
3020
+ dict (name = ['-m' , '--make-program' ], choices = ['gmake' , 'make' , 'mingw32-make' , 'ninja' ], help = 'which make program to use' ),
3021
+ dict (name = ['-g' , '--generator' ], choices = ['Unix Makefiles' , 'MinGW Makefiles' , 'Ninja' ], help = 'which CMake generator to use' ),
3022
+ dict (name = ['-r' , '--regex' ], help = 'run tests matching regular expression' ),
3023
+ dict (name = '--build-path' , help = 'specify build path' ),
3024
+ dict (name = '--new' , help = 'generate files for a new unit test' , metavar = "FILEPATH" ),
3025
+ help = 'Create, build and run unit tests' )
3026
+ def unittest_ (skip_build = False , skip_run = False , clean = False , debug = False , coverage = None , make_program = None , generator = None , regex = None , build_path = None , new = None ):
3027
+ program = Program (getcwd (), False )
3028
+ program .check_requirements (True )
3029
+
3030
+ mbed_os_dir = program .get_os_dir ()
3031
+ if mbed_os_dir is None :
3032
+ error ("No Mbed OS directory found." )
3033
+ unittests_dir = os .path .join (mbed_os_dir , "UNITTESTS" )
3034
+
3035
+ tool = os .path .join (unittests_dir , "mbed_unittest.py" )
3036
+
3037
+ # Prepare environment variables
3038
+ env = program .get_env ()
3039
+
3040
+ if os .path .exists (tool ):
3041
+ popen ([python_cmd , tool ]
3042
+ + (["--skip-build" ] if skip_build else [])
3043
+ + (["--skip-run" ] if skip_run else [])
3044
+ + (["--clean" ] if clean else [])
3045
+ + (["--debug" ] if debug else [])
3046
+ + (["--coverage" , coverage ] if coverage else [])
3047
+ + (["--make-program" , make_program ] if make_program else [])
3048
+ + (["--generator" , generator ] if generator else [])
3049
+ + (["--regex" , regex ] if regex else [])
3050
+ + (["--build-path" , build_path ] if build_path else [])
3051
+ + (["--new" , new ] if new else [])
3052
+ + (["--verbose" ] if verbose else [])
3053
+ + remainder ,
3054
+ env = env )
3055
+ else :
3056
+ warning ("Unit testing is not supported with this Mbed OS version." )
3057
+
3058
+
3014
3059
def main ():
3015
3060
global verbose , very_verbose , remainder , cwd_root
3016
3061
0 commit comments