@@ -3020,12 +3020,15 @@ def help_():
3020
3020
dict (name = ['-m' , '--make-program' ], choices = ['gmake' , 'make' , 'mingw32-make' , 'ninja' ], help = 'Which make program to use' ),
3021
3021
dict (name = ['-g' , '--generator' ], choices = ['Unix Makefiles' , 'MinGW Makefiles' , 'Ninja' ], help = 'Which CMake generator to use' ),
3022
3022
dict (name = ['-r' , '--regex' ], help = 'Run tests matching regular expression' ),
3023
- dict (name = '--build' , help = 'Build directory. Default: mbed-os/UNITTESTS/build /' ),
3023
+ dict (name = '--build' , help = 'Build directory. Default: BUILD/unittests /' ),
3024
3024
dict (name = '--new' , help = 'generate files for a new unit test' , metavar = "FILEPATH" ),
3025
3025
help = 'Create, build and run unit tests' )
3026
3026
def unittest_ (compile_only = False , run_only = False , clean = False , debug = False , coverage = None , make_program = None , generator = None , regex = None , build = None , new = None ):
3027
+ # Find the root of the program
3027
3028
program = Program (getcwd (), False )
3028
3029
program .check_requirements (True )
3030
+ # Save original working directory
3031
+ orig_path = getcwd ()
3029
3032
3030
3033
mbed_os_dir = program .get_os_dir ()
3031
3034
if mbed_os_dir is None :
@@ -3038,20 +3041,27 @@ def unittest_(compile_only=False, run_only=False, clean=False, debug=False, cove
3038
3041
env = program .get_env ()
3039
3042
3040
3043
if os .path .exists (tool ):
3041
- popen ([python_cmd , tool ]
3042
- + (["--compile" ] if compile_only else [])
3043
- + (["--run" ] if run_only 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" , build ] if build else [])
3051
- + (["--new" , new ] if new else [])
3052
- + (["--verbose" ] if verbose else [])
3053
- + remainder ,
3054
- env = env )
3044
+ with cd (program .path ):
3045
+ # Setup the build path if not specified
3046
+ build_path = build
3047
+ if not build_path :
3048
+ build_path = os .path .join (os .path .relpath (program .path , orig_path ), program .build_dir , 'unittests' )
3049
+
3050
+ # Run unit testing tools
3051
+ popen ([python_cmd , tool ]
3052
+ + (["--compile" ] if compile_only else [])
3053
+ + (["--run" ] if run_only else [])
3054
+ + (["--clean" ] if clean else [])
3055
+ + (["--debug" ] if debug else [])
3056
+ + (["--coverage" , coverage ] if coverage else [])
3057
+ + (["--make-program" , make_program ] if make_program else [])
3058
+ + (["--generator" , generator ] if generator else [])
3059
+ + (["--regex" , regex ] if regex else [])
3060
+ + ["--build" , build_path ]
3061
+ + (["--new" , new ] if new else [])
3062
+ + (["--verbose" ] if verbose else [])
3063
+ + remainder ,
3064
+ env = env )
3055
3065
else :
3056
3066
warning ("Unit testing is not supported with this Mbed OS version." )
3057
3067
0 commit comments