)]}'
{
  "commit": "d31e02004d860452bc7273f002f6890d0adc94fa",
  "tree": "5e34c8df3a029047e1233df655d0a1ddae5cf327",
  "parents": [
    "6884c3d134e1ba4ade8478035c62887c1f7bf55d"
  ],
  "author": {
    "name": "Matt Stark",
    "email": "msta@google.com",
    "time": "Wed Jun 17 10:41:41 2026 +1000"
  },
  "committer": {
    "name": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Sun Jun 21 22:36:59 2026 -0700"
  },
  "message": "Add integration test support to GN.\n\nThis adds a simple integration test to verify that the GN works\ncorrectly. It is a modified verison of examples/simple_build, with the\nfollowing changes:\n* Remove any platform-dependent logic, allowing us to use the same\n  goldens for all platforms\n* Add flags to the toolchain to make it very obvious what flags are\n  where, given that the tools are not runnable anyway.\n\nAnd while I\u0027m at it, attempt to reduce the tech debt of build/gen.py by\ncreating a simple API for writing the GN ninja file. We can migrate to\nit slowly.\n\nBug: None\nChange-Id: Ica26f158daf704e3bba8d9ae46e716e46a6a6964\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/23280\nReviewed-by: Takuto Ikuta \u003ctikuta@google.com\u003e\nCommit-Queue: Matt Stark \u003cmsta@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7f7745fc1f53af31e3a2080f415c680d3e37131b",
      "old_mode": 33261,
      "old_path": "build/gen.py",
      "new_id": "9a9027bc6914cbf7f37b48500f2c5e0e604328af",
      "new_mode": 33261,
      "new_path": "build/gen.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ff854b7ceb4350deffa22df978b6c034bccfcf96",
      "new_mode": 33188,
      "new_path": "build/ninja_file.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e5b6d4a3db79e0b7d8a48d990ba0d419e7eb041f",
      "new_mode": 33188,
      "new_path": "integration_tests/simple/.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a77fadcd0340ea1d6d665f1c64aa5082344be438",
      "new_mode": 33188,
      "new_path": "integration_tests/simple/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "65baa2b8c2c26d6d58a83d45e7757feba7c3aceb",
      "new_mode": 33188,
      "new_path": "integration_tests/simple/build/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d39d66db4fdbc612e77c67b54088a8444c87bc68",
      "new_mode": 33188,
      "new_path": "integration_tests/simple/build/BUILDCONFIG.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b4d92022c6cf1aa36b2cfa94a18e50a452f438d8",
      "new_mode": 33188,
      "new_path": "integration_tests/simple/build/toolchain/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e1ec3c30f559637b80be0e136a377ffd40262e85",
      "new_mode": 33188,
      "new_path": "integration_tests/simple/goldens/build.ninja"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1b374202b6283d4478bc6d6df2a4be299013b51b",
      "new_mode": 33188,
      "new_path": "integration_tests/simple/goldens/obj/hello.ninja"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "60e4105c850271ac3e4068c7158f9ce848ea6a8e",
      "new_mode": 33188,
      "new_path": "integration_tests/simple/goldens/obj/hello_shared.ninja"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "165a67f0fe87fb8facc96ae7dda9a79fadbfb1cb",
      "new_mode": 33188,
      "new_path": "integration_tests/simple/goldens/obj/hello_static.ninja"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "113cbd34b889de773fc43acb6db3cf17475b5d56",
      "new_mode": 33188,
      "new_path": "integration_tests/simple/goldens/toolchain.ninja"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "48be64dad494797cf2ec2a02a91245132273d53c",
      "new_mode": 33188,
      "new_path": "tools/clean.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "070cbd1fa3d099cb23a9275736a9ac339157bf7d",
      "new_mode": 33261,
      "new_path": "tools/compare_goldens.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "44fabec7f432238f282d398930214b446691420f",
      "new_mode": 33188,
      "new_path": "tools/touch.py"
    }
  ]
}
