@@ -235,7 +235,7 @@ func pkgnames(pkgs []*pkg.LocalPackage) string {
235235 return s
236236}
237237
238- func testRunCmd (cmd * cobra.Command , args []string , exclude string , executeShell bool ) {
238+ func testRunCmd (cmd * cobra.Command , args []string , exclude string , executeShell bool , valgrind bool ) {
239239 if len (args ) < 1 {
240240 NewtUsage (cmd , nil )
241241 }
@@ -320,7 +320,7 @@ func testRunCmd(cmd *cobra.Command, args []string, exclude string, executeShell
320320 util .StatusMessage (util .VERBOSITY_DEFAULT , "Testing package %s\n " ,
321321 pack .FullName ())
322322
323- err = b .SelfTestExecute ()
323+ err = b .SelfTestExecute (valgrind )
324324 if err == nil {
325325 passedPkgs = append (passedPkgs , pack )
326326 } else {
@@ -435,6 +435,7 @@ func sizeRunCmd(cmd *cobra.Command, args []string, ram bool, flash bool, section
435435func AddBuildCommands (cmd * cobra.Command ) {
436436 var printShellCmds bool
437437 var executeShell bool
438+ var valgrind bool
438439
439440 buildCmd := & cobra.Command {
440441 Use : "build <target-name> [target-names...]" ,
@@ -474,12 +475,14 @@ func AddBuildCommands(cmd *cobra.Command) {
474475 Use : "test <package-name> [package-names...] | all" ,
475476 Short : "Executes unit tests for one or more packages" ,
476477 Run : func (cmd * cobra.Command , args []string ) {
477- testRunCmd (cmd , args , exclude , executeShell )
478+ testRunCmd (cmd , args , exclude , executeShell , valgrind )
478479 },
479480 }
480481 testCmd .Flags ().StringVarP (& exclude , "exclude" , "e" , "" , "Comma separated list of packages to exclude" )
481482 testCmd .Flags ().BoolVar (& executeShell , "executeShell" , false ,
482483 "Execute build command using /bin/sh (Linux and MacOS only)" )
484+ testCmd .Flags ().BoolVar (& valgrind , "valgrind" , false ,
485+ "Run test executables under Valgrind" )
483486 cmd .AddCommand (testCmd )
484487 AddTabCompleteFn (testCmd , func () []string {
485488 return append (testablePkgList (), "all" , "allexcept" )
0 commit comments