)]}'
{
  "commit": "b5bb9f0675acb7d4093d482e89883febae75d103",
  "tree": "75166612ee3a79e76671da50f14a65f3bea78763",
  "parents": [
    "a07f6d1789193336144e8dd1ece37325c2dcef49"
  ],
  "author": {
    "name": "Vy Nguyen",
    "email": "oontvoo@users.noreply.github.com",
    "time": "Wed Nov 17 16:51:55 2021"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Nov 17 16:51:55 2021"
  },
  "message": "Add Setup/Teardown option on Benchmark. (#1269)\n\n* Add Setup/Teardown option on Benchmark.\r\n\r\nMotivations:\r\n- feature parity with our internal library. (which has ~718 callers)\r\n- more flexible than cordinating setup/teardown inside the benchmark routine.\r\n\r\n* change Setup/Teardown callback type to raw function pointers\r\n\r\n* add test file to cmake file\r\n\r\n* move b.Teardown() up\r\n\r\n* add const to param of Setup/Teardown callbacks\r\n\r\n* fix  comment and add doc to user_guide\r\n\r\n* fix typo\r\n\r\n* fix doc, fix test and add bindings to python/benchmark.cc\r\n\r\n* fix binding again\r\n\r\n* remove explicit C cast - that was wrong\r\n\r\n* change policy to reference_internal\r\n\r\n* try removing the bindinds ...\r\n\r\n* clean up\r\n\r\n* add more tests with repetitions and fixtures\r\n\r\n* more comments\r\n\r\n* init setup/teardown callbacks to NULL\r\n\r\n* s/nullptr/NULL\r\n\r\n* removed unused var\r\n\r\n* change assertion on fixture_interaction::fixture_setup\r\n\r\n* move NULL init to .cc file",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e08ed5b1fb4099fd55701c67043eb4c5c8b6321f",
      "old_mode": 33188,
      "old_path": "docs/user_guide.md",
      "new_id": "d1a4e1e5459274eb0a8ba5d82fa915ad96751ce7",
      "new_mode": 33188,
      "new_path": "docs/user_guide.md"
    },
    {
      "type": "modify",
      "old_id": "31f61735845059719fff72a04047bf9819cfbb23",
      "old_mode": 33188,
      "old_path": "include/benchmark/benchmark.h",
      "new_id": "4fdb545b99eb0c30c9c755ef3bb4af936263a1c7",
      "new_mode": 33188,
      "new_path": "include/benchmark/benchmark.h"
    },
    {
      "type": "modify",
      "old_id": "89da519afc8cb28992a3141d849300f4b9ea8318",
      "old_mode": 33188,
      "old_path": "src/benchmark_api_internal.cc",
      "new_id": "4de36e3c8ba3f2417a9df828927997db771d8fb2",
      "new_mode": 33188,
      "new_path": "src/benchmark_api_internal.cc"
    },
    {
      "type": "modify",
      "old_id": "592dd463036462c791513a5bb5594d7927d24c9f",
      "old_mode": 33188,
      "old_path": "src/benchmark_api_internal.h",
      "new_id": "94c2b2972bb1862e2711d857460b4899d2fe3313",
      "new_mode": 33188,
      "new_path": "src/benchmark_api_internal.h"
    },
    {
      "type": "modify",
      "old_id": "0b148e2ee0ef964d140f36e48c752f17c51dff15",
      "old_mode": 33188,
      "old_path": "src/benchmark_register.cc",
      "new_id": "b3f85dcb9efeaadfa6406b2c7454b0b454e76663",
      "new_mode": 33188,
      "new_path": "src/benchmark_register.cc"
    },
    {
      "type": "modify",
      "old_id": "fd23d4686c39d8dd9b803a3cc4dc51abfb651fc2",
      "old_mode": 33188,
      "old_path": "src/benchmark_runner.cc",
      "new_id": "eac807b066f10ee6b039039fefbac1a55caa9f89",
      "new_mode": 33188,
      "new_path": "src/benchmark_runner.cc"
    },
    {
      "type": "modify",
      "old_id": "0f7b265d8e206f36a790d064dd8376174587a24b",
      "old_mode": 33188,
      "old_path": "test/CMakeLists.txt",
      "new_id": "162af53f80f76f70a9525109dca1fe1f7a1eec63",
      "new_mode": 33188,
      "new_path": "test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f18c570d81c7f500b94176b416cb2915e0a63f64",
      "new_mode": 33188,
      "new_path": "test/benchmark_setup_teardown_test.cc"
    }
  ]
}
