Skip to content

Commit 0c0573f

Browse files
authored
debug: Enforce programmer selection (#2394)
* debug: Enforce programmer selection * Fixed unit tests * Increase code coverage
1 parent ef72bde commit 0c0573f

File tree

3 files changed

+26
-8
lines changed

3 files changed

+26
-8
lines changed

Diff for: commands/debug/debug_info.go

+9-8
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,15 @@ func getDebugProperties(req *rpc.GetDebugConfigRequest, pme *packagemanager.Expl
108108
}
109109
}
110110

111-
if req.GetProgrammer() != "" {
112-
if p, ok := platformRelease.Programmers[req.GetProgrammer()]; ok {
113-
toolProperties.Merge(p.Properties)
114-
} else if refP, ok := referencedPlatformRelease.Programmers[req.GetProgrammer()]; ok {
115-
toolProperties.Merge(refP.Properties)
116-
} else {
117-
return nil, &arduino.ProgrammerNotFoundError{Programmer: req.GetProgrammer()}
118-
}
111+
if req.GetProgrammer() == "" {
112+
return nil, &arduino.MissingProgrammerError{}
113+
}
114+
if p, ok := platformRelease.Programmers[req.GetProgrammer()]; ok {
115+
toolProperties.Merge(p.Properties)
116+
} else if refP, ok := referencedPlatformRelease.Programmers[req.GetProgrammer()]; ok {
117+
toolProperties.Merge(refP.Properties)
118+
} else {
119+
return nil, &arduino.ProgrammerNotFoundError{Programmer: req.GetProgrammer()}
119120
}
120121

121122
var importPath *paths.Path

Diff for: commands/debug/debug_test.go

+16
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,21 @@ func TestGetCommandLine(t *testing.T) {
6363
pm := pmb.Build()
6464
pme, release := pm.NewExplorer()
6565
defer release()
66+
67+
{
68+
// Check programmer required
69+
_, err := getCommandLine(req, pme)
70+
require.Error(t, err)
71+
}
72+
73+
{
74+
// Check programmer not found
75+
req.Programmer = "not-existent"
76+
_, err := getCommandLine(req, pme)
77+
require.Error(t, err)
78+
}
79+
80+
req.Programmer = "edbg"
6681
command, err := getCommandLine(req, pme)
6782
require.Nil(t, err)
6883
commandToTest := strings.Join(command, " ")
@@ -76,6 +91,7 @@ func TestGetCommandLine(t *testing.T) {
7691
SketchPath: sketchPath.String(),
7792
Interpreter: "mi1",
7893
ImportDir: sketchPath.Join("build", "arduino-test.samd.mkr1000").String(),
94+
Programmer: "edbg",
7995
}
8096

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

0 commit comments

Comments
 (0)