Skip to content

Commit

Permalink
Added additional_config selector for debug configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
cmaglie committed Nov 23, 2023
1 parent a0f46ed commit 28fa62a
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 0 deletions.
6 changes: 6 additions & 0 deletions commands/debug/debug_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,12 @@ func getDebugProperties(req *rpc.GetDebugConfigRequest, pme *packagemanager.Expl
for k, v := range toolProperties.SubTree("debug").AsMap() {
debugProperties.Set(k, toolProperties.ExpandPropsInString(v))
}
if debugAdditionalConfig, ok := toolProperties.GetOk("debug.additional_config"); ok {
debugAdditionalConfig = toolProperties.ExpandPropsInString(debugAdditionalConfig)
for k, v := range toolProperties.SubTree(debugAdditionalConfig).AsMap() {
debugProperties.Set(k, toolProperties.ExpandPropsInString(v))
}
}

if !debugProperties.ContainsKey("executable") {
return nil, &arduino.FailedDebugError{Message: tr("Debugging not supported for board %s", req.GetFqbn())}
Expand Down
57 changes: 57 additions & 0 deletions internal/integrationtest/debug/debug_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -272,5 +272,62 @@ func testAllDebugInformation(t *testing.T, env *integrationtest.Environment, cli
}`)
}

{
// Mixing programmer and additional_config
jsonDebugOut, _, err := cli.Run("debug", "-b", "my:samd:my3", "-P", "my_cold_ice", sketchPath.String(), "--info", "--format", "json")
require.NoError(t, err)
debugOut := requirejson.Parse(t, jsonDebugOut)
debugOut.MustContain(`
{
"toolchain": "gcc",
"toolchain_path": "gcc-path",
"toolchain_prefix": "gcc-prefix",
"server": "openocd",
"server_path": "openocd-path",
"server_configuration": {
"path": "openocd-path",
"scripts_dir": "openocd-scripts-dir",
"scripts": [
"cold_ice_script"
]
},
"custom_configs": {
"cortex-debug": {
"test1": "true"
}
},
"svd_file": "test1.svd",
"programmer": "my_cold_ice"
}`)
}

{
// Mixing programmer and additional_config selected by another variable
jsonDebugOut, _, err := cli.Run("debug", "-b", "my:samd:my4", "-P", "my_cold_ice", sketchPath.String(), "--info", "--format", "json")
require.NoError(t, err)
debugOut := requirejson.Parse(t, jsonDebugOut)
debugOut.MustContain(`
{
"toolchain": "gcc",
"toolchain_path": "gcc-path",
"toolchain_prefix": "gcc-prefix",
"server": "openocd",
"server_path": "openocd-path",
"server_configuration": {
"path": "openocd-path",
"scripts_dir": "openocd-scripts-dir",
"scripts": [
"cold_ice_script"
]
},
"custom_configs": {
"cortex-debug": {
"test2": "true"
}
},
"svd_file": "test2.svd",
"programmer": "my_cold_ice"
}`)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,28 @@ my2.debug.server.openocd.path=openocd-path
my2.debug.server.openocd.scripts_dir=openocd-scripts-dir
my2.debug.server.openocd.script=single-script
my2.debug.svd_file=svd-file

my3.name=My third Cool Board
my3.build.core=arduino:arduino
my3.build.variant=arduino:mkr1000
my3.debug.toolchain.path=gcc-path
my3.debug.toolchain.prefix=gcc-prefix
my3.debug.server.openocd.path=openocd-path
my3.debug.server.openocd.scripts_dir=openocd-scripts-dir
my3.debug.server.openocd.script=single-script
# this one will be overwritten by additional_config
my3.debug.svd_file=svd-file
my3.debug.additional_config=build.debug.config.test1

my4.name=My fourth Cool Board
my4.build.core=arduino:arduino
my4.build.variant=arduino:mkr1000
my4.debug.toolchain.path=gcc-path
my4.debug.toolchain.prefix=gcc-prefix
my4.debug.server.openocd.path=openocd-path
my4.debug.server.openocd.scripts_dir=openocd-scripts-dir
my4.debug.server.openocd.script=single-script
my4.build.mcu=test2
# this one will be overwritten by additional_config
my4.debug.svd_file=svd-file
my4.debug.additional_config=build.debug.config.{build.mcu}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
build.debug.config.test1.svd_file=test1.svd
build.debug.config.test1.cortex-debug.custom.test1=true

build.debug.config.test2.svd_file=test2.svd
build.debug.config.test2.cortex-debug.custom.test2=true

0 comments on commit 28fa62a

Please sign in to comment.