Skip to content

Commit d57f083

Browse files
committed
MOD-14486: Fix crash on odd word count in space-separated moduleArgs
fix_modulesArgs crashed with sys.exit(1) when a space-separated moduleArgs string had an odd number of words. This is a valid scenario when module args have single-word flags or multi-word values. Instead of crashing, fall back to treating the string as a single arg (the pre-v0.7.22 behavior) when the word count is odd.
1 parent 0f50113 commit d57f083

1 file changed

Lines changed: 4 additions & 6 deletions

File tree

RLTest/utils.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -122,14 +122,12 @@ def fix_modulesArgs(modules, modulesArgs, defaultArgs=None, haveSeqs=True):
122122
# transformed into [['arg', ...]]
123123
parts = split_by_semicolon(modulesArgs)
124124
if len(parts) == 1:
125-
# No semicolons found - treat as space-separated key-value pairs
125+
# No semicolons found - try to treat as space-separated key-value pairs
126126
words = parts[0].split()
127-
if len(words) % 2 != 0:
128-
print(Colors.Bred(f"Error in args: odd number of words in key-value pairs: '{modulesArgs}'. "
129-
f"Use semicolons to separate args with multiple values (e.g. 'KEY1 V1; KEY2 V2 V3')."))
130-
sys.exit(1)
131-
if len(words) > 2:
127+
if len(words) > 2 and len(words) % 2 == 0:
128+
# Even number of words: split into key-value pairs
132129
parts = [f"{words[i]} {words[i + 1]}" for i in range(0, len(words), 2)]
130+
# Odd number of words or <= 2 words: keep as-is (single arg string)
133131
modulesArgs = [parts]
134132
elif type(modulesArgs) == list:
135133
args = []

0 commit comments

Comments
 (0)