================ @@ -22,6 +25,60 @@ def _disallow(config, execName): config.substitutions.append((" {0} ".format(execName), warning.format(execName))) +def get_lldb_args(config, suffix=""): + lldb_args = [] + if "remote-linux" in config.available_features: + lldb_args += [ + "-O", + '"platform select remote-linux"', + "-O", + f'"platform connect {config.lldb_platform_url}"', + ] + if config.lldb_platform_working_dir: + dir = posixpath.join(f"{config.lldb_platform_working_dir}", "shell") + if suffix: + dir += posixpath.join(dir, f"{suffix}") + lldb_args += [ + "-O", + f'"platform shell mkdir -p {dir}"', + "-O", + f'"platform settings -w {dir}"', + ] + lldb_args += ["--no-lldbinit", "-S", _get_lldb_init_path(config)] + return lldb_args + + +class ShTestLldb(ShTest): + def __init__( + self, execute_external=False, extra_substitutions=[], preamble_commands=[] + ): + super().__init__(execute_external, extra_substitutions, preamble_commands) + + def execute(self, test, litConfig): + # Run each Shell test in a separate directory (on remote). + + # Find directory change command in %lldb substitution. + for i, t in enumerate(test.config.substitutions): + if re.match(t[0], "%lldb"): ---------------- DavidSpickett wrote:
Oh I see, I have this the wrong way around. You're not looking for `%lldb` in something, you're checking whether the pattern in `t[0]` finds a match when applied to `%lldb`. A bit cryptic but ok, if that's what you've got then it makes sense to do it that way. https://github.com/llvm/llvm-project/pull/95986 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits