[
  {
    "wd": "/tmp/stable",
    "env": [
      "BISECT_STAGE=someBisectStage",
      "HOME=/user/home"
    ],
    "wrapper": {
      "cmd": {
        "path": "./x86_64-cros-linux-gnu-clang",
        "args": [
          "main.cc"
        ]
      }
    },
    "cmds": [
      {
        "cmd": {
          "path": "/usr/bin/env",
          "args": [
            "python3",
            "-c",
            "\nimport bisect_driver\nimport shlex\nimport sys\n\ndef ExpandArgs(args, target):\n\tfor arg in args:\n\t\tif arg[0] == '@':\n\t\t\twith open(arg[1:], 'r', encoding='utf-8') as f:\n\t\t\t\tExpandArgs(shlex.split(f.read()), target)\n\t\telse:\n\t\t\ttarget.append(arg)\n\treturn target\n\nstage = sys.argv[1]\ndir = sys.argv[2]\nexecargs = ExpandArgs(sys.argv[3:], [])\n\nsys.exit(bisect_driver.bisect_driver(stage, dir, execargs))\n",
            "someBisectStage",
            "/tmp/sysroot_bisect",
            "/usr/bin/ccache",
            "../../usr/bin/clang",
            "--sysroot=/usr/x86_64-cros-linux-gnu",
            "-Qunused-arguments",
            "-fno-addrsig",
            "-fdebug-default-version=5",
            "-Wno-tautological-constant-compare",
            "-Wno-tautological-unsigned-enum-zero-compare",
            "-Wno-unknown-warning-option",
            "-Wno-section",
            "-fuse-ld=lld",
            "--unwindlib=libunwind",
            "-Wno-final-dtor-non-final-class",
            "-Werror=poison-system-directories",
            "-fexperimental-new-pass-manager",
            "-Wno-compound-token-split-by-macro",
            "-Wno-deprecated-declarations",
            "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
            "-fcommon",
            "-fstack-protector-strong",
            "-fPIE",
            "-pie",
            "-D_FORTIFY_SOURCE=2",
            "-fno-omit-frame-pointer",
            "-static-libgcc",
            "--prefix=../../bin/x86_64-cros-linux-gnu-",
            "main.cc",
            "-L/usr/x86_64-cros-linux-gnu/usr/lib64",
            "-Wno-implicit-int-float-conversion",
            "-Wno-compound-token-split-by-space",
            "-Wno-string-concatenation",
            "-Wno-deprecated-copy",
            "-Wno-unused-but-set-variable",
            "-mno-movbe",
            "-B../../bin",
            "-target",
            "x86_64-cros-linux-gnu"
          ],
          "env_updates": [
            "CCACHE_DIR=/var/cache/distfiles/ccache",
            "CCACHE_UMASK=002",
            "CCACHE_CPP2=yes",
            "PYTHONPATH=/somepath/test_binary"
          ]
        }
      }
    ]
  },
  {
    "wd": "/tmp/stable",
    "env": [
      "BISECT_STAGE=someBisectStage",
      "BISECT_DIR=someBisectDir",
      "HOME=/user/home"
    ],
    "wrapper": {
      "cmd": {
        "path": "./x86_64-cros-linux-gnu-clang",
        "args": [
          "main.cc"
        ]
      }
    },
    "cmds": [
      {
        "cmd": {
          "path": "/usr/bin/env",
          "args": [
            "python3",
            "-c",
            "\nimport bisect_driver\nimport shlex\nimport sys\n\ndef ExpandArgs(args, target):\n\tfor arg in args:\n\t\tif arg[0] == '@':\n\t\t\twith open(arg[1:], 'r', encoding='utf-8') as f:\n\t\t\t\tExpandArgs(shlex.split(f.read()), target)\n\t\telse:\n\t\t\ttarget.append(arg)\n\treturn target\n\nstage = sys.argv[1]\ndir = sys.argv[2]\nexecargs = ExpandArgs(sys.argv[3:], [])\n\nsys.exit(bisect_driver.bisect_driver(stage, dir, execargs))\n",
            "someBisectStage",
            "someBisectDir",
            "/usr/bin/ccache",
            "../../usr/bin/clang",
            "--sysroot=/usr/x86_64-cros-linux-gnu",
            "-Qunused-arguments",
            "-fno-addrsig",
            "-fdebug-default-version=5",
            "-Wno-tautological-constant-compare",
            "-Wno-tautological-unsigned-enum-zero-compare",
            "-Wno-unknown-warning-option",
            "-Wno-section",
            "-fuse-ld=lld",
            "--unwindlib=libunwind",
            "-Wno-final-dtor-non-final-class",
            "-Werror=poison-system-directories",
            "-fexperimental-new-pass-manager",
            "-Wno-compound-token-split-by-macro",
            "-Wno-deprecated-declarations",
            "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
            "-fcommon",
            "-fstack-protector-strong",
            "-fPIE",
            "-pie",
            "-D_FORTIFY_SOURCE=2",
            "-fno-omit-frame-pointer",
            "-static-libgcc",
            "--prefix=../../bin/x86_64-cros-linux-gnu-",
            "main.cc",
            "-L/usr/x86_64-cros-linux-gnu/usr/lib64",
            "-Wno-implicit-int-float-conversion",
            "-Wno-compound-token-split-by-space",
            "-Wno-string-concatenation",
            "-Wno-deprecated-copy",
            "-Wno-unused-but-set-variable",
            "-mno-movbe",
            "-B../../bin",
            "-target",
            "x86_64-cros-linux-gnu"
          ],
          "env_updates": [
            "CCACHE_DIR=/var/cache/distfiles/ccache",
            "CCACHE_UMASK=002",
            "CCACHE_CPP2=yes",
            "PYTHONPATH=/somepath/test_binary"
          ]
        }
      }
    ]
  },
  {
    "wd": "/tmp/stable",
    "env": [
      "BISECT_STAGE=someBisectStage",
      "BISECT_DIR=someBisectDir",
      "HOME=/user/home"
    ],
    "wrapper": {
      "cmd": {
        "path": "./x86_64-cros-linux-gnu-clang",
        "args": [
          "main.cc"
        ]
      },
      "stdout": "somemessage",
      "stderr": "someerror",
      "exitcode": 1
    },
    "cmds": [
      {
        "cmd": {
          "path": "/usr/bin/env",
          "args": [
            "python3",
            "-c",
            "\nimport bisect_driver\nimport shlex\nimport sys\n\ndef ExpandArgs(args, target):\n\tfor arg in args:\n\t\tif arg[0] == '@':\n\t\t\twith open(arg[1:], 'r', encoding='utf-8') as f:\n\t\t\t\tExpandArgs(shlex.split(f.read()), target)\n\t\telse:\n\t\t\ttarget.append(arg)\n\treturn target\n\nstage = sys.argv[1]\ndir = sys.argv[2]\nexecargs = ExpandArgs(sys.argv[3:], [])\n\nsys.exit(bisect_driver.bisect_driver(stage, dir, execargs))\n",
            "someBisectStage",
            "someBisectDir",
            "/usr/bin/ccache",
            "../../usr/bin/clang",
            "--sysroot=/usr/x86_64-cros-linux-gnu",
            "-Qunused-arguments",
            "-fno-addrsig",
            "-fdebug-default-version=5",
            "-Wno-tautological-constant-compare",
            "-Wno-tautological-unsigned-enum-zero-compare",
            "-Wno-unknown-warning-option",
            "-Wno-section",
            "-fuse-ld=lld",
            "--unwindlib=libunwind",
            "-Wno-final-dtor-non-final-class",
            "-Werror=poison-system-directories",
            "-fexperimental-new-pass-manager",
            "-Wno-compound-token-split-by-macro",
            "-Wno-deprecated-declarations",
            "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
            "-fcommon",
            "-fstack-protector-strong",
            "-fPIE",
            "-pie",
            "-D_FORTIFY_SOURCE=2",
            "-fno-omit-frame-pointer",
            "-static-libgcc",
            "--prefix=../../bin/x86_64-cros-linux-gnu-",
            "main.cc",
            "-L/usr/x86_64-cros-linux-gnu/usr/lib64",
            "-Wno-implicit-int-float-conversion",
            "-Wno-compound-token-split-by-space",
            "-Wno-string-concatenation",
            "-Wno-deprecated-copy",
            "-Wno-unused-but-set-variable",
            "-mno-movbe",
            "-B../../bin",
            "-target",
            "x86_64-cros-linux-gnu"
          ],
          "env_updates": [
            "CCACHE_DIR=/var/cache/distfiles/ccache",
            "CCACHE_UMASK=002",
            "CCACHE_CPP2=yes",
            "PYTHONPATH=/somepath/test_binary"
          ]
        },
        "stdout": "somemessage",
        "stderr": "someerror",
        "exitcode": 1
      }
    ]
  }
]
