)]}'
{
  "commit": "7b31af0eae8ce369d5ffd16be1de0b2f0121e7c2",
  "tree": "7b7097d33aa1c4b0fbc23c85b1f95d4124c4662d",
  "parents": [
    "ad5eaa8c4cd952df0d4894f11ee0158a9a33a0f3"
  ],
  "author": {
    "name": "Bryan C. Mills",
    "email": "bcmills@google.com",
    "time": "Fri Apr 22 23:33:16 2022 -0400"
  },
  "committer": {
    "name": "Bryan Mills",
    "email": "bcmills@google.com",
    "time": "Tue Apr 26 14:49:07 2022 +0000"
  },
  "message": "os/exec: use a TestMain to avoid hijacking stdout for helper commands\n\nThe previous implementation of helperCommand relied on running a\nwell-known Test function which implemented all known commands.\n\nThat not only added Skip noise in the test\u0027s output, but also (and\nmore importantly) meant that the commands could not write directly to\nstdout in the usual way, since the testing package hijacks os.Stdout\nfor its own use.\n\nThe new implementation addresses the above issues, and also ensures\nthat all registered commands are actually used, reducing the risk of\nan unused command sticking around after refactoring.\n\nIt also sets the subprocess environment variable directly in the test\nprocess, instead of on each individual helper command\u0027s Env field,\nallowing helper commands to be used without an explicit Env.\n\nUpdates #50599.\n(Also for #50436.)\n\nChange-Id: I189c7bed9a07cfe47a084b657b88575b1ee370b9\nReviewed-on: https://go-review.googlesource.com/c/go/+/401934\nRun-TryBot: Bryan Mills \u003cbcmills@google.com\u003e\nReviewed-by: Ian Lance Taylor \u003ciant@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4a37c96e63a0ad66be60aff2e77a1a391a7c8f83",
      "old_mode": 33188,
      "old_path": "src/os/exec/exec_linux_test.go",
      "new_id": "b9f6b7b767212488193260be3c8cb4743cfb14fc",
      "new_mode": 33188,
      "new_path": "src/os/exec/exec_linux_test.go"
    },
    {
      "type": "modify",
      "old_id": "e58303945338bb2d87a29899b90864aa2bac6c4a",
      "old_mode": 33188,
      "old_path": "src/os/exec/exec_posix_test.go",
      "new_id": "f0401377e8e9c0bf0215b7bfb74a71a76657c692",
      "new_mode": 33188,
      "new_path": "src/os/exec/exec_posix_test.go"
    },
    {
      "type": "modify",
      "old_id": "f90066cea3122bab263eb983ade8b03d5cb254cc",
      "old_mode": 33188,
      "old_path": "src/os/exec/exec_test.go",
      "new_id": "c593cbd11d15c9654ce76adfbdc23f3aef276341",
      "new_mode": 33188,
      "new_path": "src/os/exec/exec_test.go"
    },
    {
      "type": "modify",
      "old_id": "8e31e47190feaf374ed0b6163f49e5b289018903",
      "old_mode": 33188,
      "old_path": "src/os/exec/exec_windows_test.go",
      "new_id": "35ae0b0b8af7ca74329bd718091da8a9bb989224",
      "new_mode": 33188,
      "new_path": "src/os/exec/exec_windows_test.go"
    },
    {
      "type": "modify",
      "old_id": "bbf6a9b7f13b5ef5ac412c7eabac6dca3b56f11e",
      "old_mode": 33188,
      "old_path": "src/os/exec/lp_windows_test.go",
      "new_id": "34abe09d049467795a96058296bdb3581678d52b",
      "new_mode": 33188,
      "new_path": "src/os/exec/lp_windows_test.go"
    },
    {
      "type": "modify",
      "old_id": "10cbfbd54abfee9950f6360d658ccdcd1d192b42",
      "old_mode": 33188,
      "old_path": "src/os/exec/read3.go",
      "new_id": "8327d73e514bea7836de9efb303c60686a49c9d3",
      "new_mode": 33188,
      "new_path": "src/os/exec/read3.go"
    }
  ]
}
