[rtems-tools commit] tester/rt: use shlex.split to split command args

Chris Johns chrisj at rtems.org
Wed Jun 21 00:15:17 UTC 2023


Module:    rtems-tools
Branch:    master
Commit:    60e793a17c3847f0a297bb593c1eda9c73e2df52
Changeset: http://git.rtems.org/rtems-tools/commit/?id=60e793a17c3847f0a297bb593c1eda9c73e2df52

Author:    Muhammad Sulthan Mazaya <msulthanmazaya at gmail.com>
Date:      Tue Jun 20 08:47:00 2023 +1000

tester/rt: use shlex.split to split command args

The regular split-by-space function used to split command arguments
creates compatibility issues with many shell command syntaxes. A
specific example is the handling of string arguments, as shown below:

%define renode_args -e start_opts -e "s %{bsp_resc_script}"

Thus, it is changed to use shlex.split instead. It splits
the command arguments using shell-like syntax. More about shlex
module here: https://docs.python.org/3/library/shlex.html

---

 tester/rt/config.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tester/rt/config.py b/tester/rt/config.py
index 8a433af..c0c31de 100644
--- a/tester/rt/config.py
+++ b/tester/rt/config.py
@@ -37,6 +37,7 @@ from __future__ import print_function
 import datetime
 import os
 import re
+import shlex
 import threading
 
 from rtemstoolkit import configuration
@@ -326,7 +327,7 @@ class file(config.file):
             if len(_data):
                 ds = [_data[0]]
                 if len(_data) > 1:
-                    ds += _data[1].split()
+                    ds += shlex.split(_data[1], posix=False)
             ds = self.expand(ds)
 
             if _directive == '%console':



More information about the vc mailing list