diff --git a/bootloader/LibCheckpointAlpha b/bootloader/LibCheckpointAlpha index 58019e3..b313732 160000 --- a/bootloader/LibCheckpointAlpha +++ b/bootloader/LibCheckpointAlpha @@ -1 +1 @@ -Subproject commit 58019e356e9cec8ef4310cc4fe710ae8af48e618 +Subproject commit b3137321622584d35ebb9f8c70fe1a7e2041f506 diff --git a/workloads/linux/spec2006/spec06.json b/workloads/linux/spec2006/spec06.json index 1faa7c0..e8916d7 100644 --- a/workloads/linux/spec2006/spec06.json +++ b/workloads/linux/spec2006/spec06.json @@ -827,7 +827,11 @@ "args": [ "-v", "t5.xml", - "xalanc.xsl" + "xalanc.xsl", + ">", + "out.log", + "2>", + "err.log" ], "type": [ "int", diff --git a/workloads/linux/spec2006/spec2006-package.py b/workloads/linux/spec2006/spec2006-package.py index 7f817dd..c15d7d3 100644 --- a/workloads/linux/spec2006/spec2006-package.py +++ b/workloads/linux/spec2006/spec2006-package.py @@ -310,24 +310,22 @@ def apply_benchmark_post_setup(bench_dir, spec_root, elf, spec_cfg): def shell_command(binary_name, args): before_redirect = [] - stdin_file = None + redirects = [] iterator = iter(args) for arg in iterator: - if arg == "<": + if arg in ("<", ">", ">>", "2>", "2>>"): try: - stdin_file = next(iterator) + redirect_file = next(iterator) except StopIteration as exc: - raise RuntimeError("input redirection without file") from exc - rest = list(iterator) - if rest: - raise RuntimeError(f"unsupported arguments after input redirection: {rest}") - break + raise RuntimeError(f"{arg} redirection without file") from exc + redirects.append(f"{arg} {shlex.quote(redirect_file)}") + continue before_redirect.append(arg) words = ["./" + binary_name] + before_redirect cmd = " ".join(shlex.quote(x) for x in words) - if stdin_file is not None: - cmd += " < " + shlex.quote(stdin_file) + if redirects: + cmd += " " + " ".join(redirects) return cmd