twister: handle quotes for configuration options
Add support handling quotes for configuration options in extra args by
escaping them properly instead of removing the quotes altogether. For
other options in extra_args quotes are removes as usual.
Add similar support in west build command also.
Add a unit test to check this functionality.
Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
diff --git a/scripts/west_commands/build.py b/scripts/west_commands/build.py
index bcc5106..f7a605f 100644
--- a/scripts/west_commands/build.py
+++ b/scripts/west_commands/build.py
@@ -317,7 +317,11 @@
if data == 'extra_configs':
args = ["-D{}".format(arg.replace('"', '\"')) for arg in arg_list]
elif data == 'extra_args':
- args = ["-D{}".format(arg.replace('"', '')) for arg in arg_list]
+ # Retain quotes around config options
+ config_options = [arg for arg in arg_list if arg.startswith("CONFIG_")]
+ non_config_options = [arg for arg in arg_list if not arg.startswith("CONFIG_")]
+ args = ["-D{}".format(a.replace('"', '\"')) for a in config_options]
+ args.extend(["-D{}".format(arg.replace('"', '')) for arg in non_config_options])
elif data == 'extra_conf_files':
extra_conf_files.extend(arg_list)
continue