Skip to content

Commit

Permalink
debug: Enforce programmer selection (#2394)
Browse files Browse the repository at this point in the history
* debug: Enforce programmer selection

* Fixed unit tests

* Increase code coverage
  • Loading branch information
cmaglie committed Oct 31, 2023
1 parent c1db8cb commit b65df52
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 8 deletions.
17 changes: 9 additions & 8 deletions commands/debug/debug_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -108,14 +108,15 @@ func getDebugProperties(req *rpc.GetDebugConfigRequest, pme *packagemanager.Expl
}
}

if req.GetProgrammer() != "" {
if p, ok := platformRelease.Programmers[req.GetProgrammer()]; ok {
toolProperties.Merge(p.Properties)
} else if refP, ok := referencedPlatformRelease.Programmers[req.GetProgrammer()]; ok {
toolProperties.Merge(refP.Properties)
} else {
return nil, &arduino.ProgrammerNotFoundError{Programmer: req.GetProgrammer()}
}
if req.GetProgrammer() == "" {
return nil, &arduino.MissingProgrammerError{}
}
if p, ok := platformRelease.Programmers[req.GetProgrammer()]; ok {
toolProperties.Merge(p.Properties)
} else if refP, ok := referencedPlatformRelease.Programmers[req.GetProgrammer()]; ok {
toolProperties.Merge(refP.Properties)
} else {
return nil, &arduino.ProgrammerNotFoundError{Programmer: req.GetProgrammer()}
}

var importPath *paths.Path
Expand Down
16 changes: 16 additions & 0 deletions commands/debug/debug_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,21 @@ func TestGetCommandLine(t *testing.T) {
pm := pmb.Build()
pme, release := pm.NewExplorer()
defer release()

{
// Check programmer required
_, err := getCommandLine(req, pme)
require.Error(t, err)
}

{
// Check programmer not found
req.Programmer = "not-existent"
_, err := getCommandLine(req, pme)
require.Error(t, err)
}

req.Programmer = "edbg"
command, err := getCommandLine(req, pme)
require.Nil(t, err)
commandToTest := strings.Join(command, " ")
Expand All @@ -76,6 +91,7 @@ func TestGetCommandLine(t *testing.T) {
SketchPath: sketchPath.String(),
Interpreter: "mi1",
ImportDir: sketchPath.Join("build", "arduino-test.samd.mkr1000").String(),
Programmer: "edbg",
}

goldCommand2 := fmt.Sprintf("%s/arduino-test/tools/arm-none-eabi-gcc/7-2017q4/bin/arm-none-eabi-gdb%s", dataDir, toolExtension) +
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
edbg.name=edbg

0 comments on commit b65df52

Please sign in to comment.