)]}'
{
  "commit": "6d32fe81059bb6d40610074fec8bfb36434c0f50",
  "tree": "a372ce75e301ffc5d4d4c22df84a1cd82f99d5ac",
  "parents": [
    "7fea2dd17e7f2c1cf1dcd5ae6c11a51f620b5a05"
  ],
  "author": {
    "name": "Phoenix Meadowlark",
    "email": "meadowlark@google.com",
    "time": "Fri Jul 31 12:35:51 2020 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jul 31 12:35:51 2020 -0700"
  },
  "message": "Updates all e2e tests to use TracedModuleTestCase (#2736)\n\nFollow up to #2660.\r\n\r\n- Removes old infra:\r\n  - `CompiledModuleTestCase`\r\n  - `_VirtualModuleInstance`\r\n  - `_VirtualModuleFunctionWrapper`\r\n  - `_collect_disagreements_recursively`\r\n  - `_collect_disagreements`\r\n  - `_make_multi_result_class` and `MultiResults`\r\n  - `_instantiate_backends`\r\n  - `explicit_backend_test.py`\r\n- Updates all tests in `integrations/tensorflow/e2e/` to use the `TracedModuleTestCase`.\r\n- Updates `iree_e2e_test_suite` and `iree_vision_test_suite` to use the new explicit `--reference_backend` flag.\r\n- Adds data generation helpers to `tf_utils`:\r\n  - `uniform(shape, dtype\u003dnp.float32)` reduces verbosity of getting random `np.float32` data.\r\n  - `ndarange(shape, dtype\u003dnp.float32)` reduces verbosity of generating high rank `np.arange` data.\r\n- Updates `tf.tensor --\u003e np.array` conversion in `TfCompiledModule` to handle the following case:\r\n\r\n```python\r\na \u003d np.array(31. dtype\u003dnp.float32)\r\nb \u003d tf.convert_to_tensor(a)\r\nc \u003d b.numpy()\r\ntype(a) !\u003d type(c)  # np.array !\u003d np.float32\r\n```",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "390cbdb485fd345ed0338a2a2cf55ee4046dcc45",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/bindings/python/pyiree/tf/support/tf_test_utils.py",
      "new_id": "750aabaa8a9737e3f679d4cd91737e7b0ee4a8f0",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/bindings/python/pyiree/tf/support/tf_test_utils.py"
    },
    {
      "type": "modify",
      "old_id": "c62de45edf849ccb5693ae749b8b08a06f393e6b",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/bindings/python/pyiree/tf/support/tf_test_utils_test.py",
      "new_id": "f21521afec77d90d0910e70674222b5571878eec",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/bindings/python/pyiree/tf/support/tf_test_utils_test.py"
    },
    {
      "type": "modify",
      "old_id": "c07bb627e944644d6ce9acbe2923a1d2ab080da7",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/bindings/python/pyiree/tf/support/tf_utils.py",
      "new_id": "fffa580a0097a180deb9fb7f22c15564ab8f3229",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/bindings/python/pyiree/tf/support/tf_utils.py"
    },
    {
      "type": "modify",
      "old_id": "5028a73c176fc2a4faf18fc8417086f89f8ba111",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/bindings/python/pyiree/tf/support/tf_utils_test.py",
      "new_id": "cde0a08142cf12fc0187c104d9f6a0be447e17a7",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/bindings/python/pyiree/tf/support/tf_utils_test.py"
    },
    {
      "type": "modify",
      "old_id": "ba7518fb0d37edf0ac61c0aa6544ce2a45cc0e39",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/BUILD",
      "new_id": "a3346e455cc478892313b1b11357f10ec6bc84aa",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/BUILD"
    },
    {
      "type": "modify",
      "old_id": "04604d814862ed848e9d3c08bac393fa15525a78",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/README.md",
      "new_id": "f060088ec203dc3318406f948463c2c029ff9034",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/README.md"
    },
    {
      "type": "modify",
      "old_id": "75de16d0e1110e9160d02c2d81a03111ae8cbcd0",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/batch_norm_test.py",
      "new_id": "e16436d399d048e8b2bbbf1b00afaa54103425fa",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/batch_norm_test.py"
    },
    {
      "type": "modify",
      "old_id": "74880bdb8813acb48ab3802c116fec0cb9f155b8",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/broadcasting_test.py",
      "new_id": "c4f8e38b747eef1e7d76e21dd66b5b7e8fb15c87",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/broadcasting_test.py"
    },
    {
      "type": "modify",
      "old_id": "560d7478ae6e0d1fe341c77a14ded35e06ada4d3",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/complex_test.py",
      "new_id": "102396b03a09c9f7beee932bff688a60364a72a1",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/complex_test.py"
    },
    {
      "type": "modify",
      "old_id": "b7a348c0facce5fdd7edac3db075e403c884b355",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/concat_test.py",
      "new_id": "196f53799c6ab8bf8aeeff7d935f8fb1ae95db91",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/concat_test.py"
    },
    {
      "type": "modify",
      "old_id": "0c25fd604eb2faf67745cceeb65114aa448a1d95",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/control_flow_test.py",
      "new_id": "bc0a328e8afb5d493de537851817e63ae6766575",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/control_flow_test.py"
    },
    {
      "type": "modify",
      "old_id": "61c46cf5e3b5e99eb2a271f73edd357fcba2056a",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/conv_test.py",
      "new_id": "9346a52bed382ae412cc8a9e1c2c5a9de544f1b4",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/conv_test.py"
    },
    {
      "type": "modify",
      "old_id": "1e8a002caa0fa9889fda006bbb873fba7f654ce3",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/depth_conv_test.py",
      "new_id": "9d88beeb30b890d1e4883ba6eee03cb719a7a8f7",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/depth_conv_test.py"
    },
    {
      "type": "modify",
      "old_id": "64c51e9b2854830822ca2c6cf0e01be84e1b1e4d",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/dynamic_mlp_relu_test.py",
      "new_id": "eec68153bef5e6ec472bb440318210fb2e5a2785",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/dynamic_mlp_relu_test.py"
    },
    {
      "type": "modify",
      "old_id": "72d7f1f45dd5a75e2dbb03624e1b2c02480c8c02",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/dynamic_mlp_test.py",
      "new_id": "0b70e84d7297d7153099af8bbbc94687640acd37",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/dynamic_mlp_test.py"
    },
    {
      "type": "delete",
      "old_id": "bdcdd79dea651457921c657018877ebd0a609eb4",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/explicit_backend_test.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "8d912a4e1798c08ac94cb1d42f3e7bc582ea2d22",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/fill_test.py",
      "new_id": "050eb47079f75406429466ff2287deff2194f1d6",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/fill_test.py"
    },
    {
      "type": "modify",
      "old_id": "67f5acfba37c9fea2b8304d2412f536bfe388f96",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/gather_test.py",
      "new_id": "7ae7af62651134a9f2e15694c81b51e0401f5ca9",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/gather_test.py"
    },
    {
      "type": "modify",
      "old_id": "bd80fbcf98785270b7b4d9397a5366a6280feb48",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/iree_e2e_test_suite.bzl",
      "new_id": "60bbff48bc75a24cdce289f8d16d6fbe6f63b3f7",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/iree_e2e_test_suite.bzl"
    },
    {
      "type": "modify",
      "old_id": "caa0939a92b9652fc2d014fd2cf9195b57205339",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/keras/BUILD",
      "new_id": "7d1f1d3a8ff635e48b91ca16750bf1a782132f49",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/keras/BUILD"
    },
    {
      "type": "modify",
      "old_id": "a8d4f29390999780927c9ed7643ba15a6a6afc15",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/keras/iree_vision_test_suite.bzl",
      "new_id": "d28694886c926d3b7221bfe1771ab4da45af3cb8",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/keras/iree_vision_test_suite.bzl"
    },
    {
      "type": "modify",
      "old_id": "fb7a58c45aedb82735153a5b2dc75a68d3b62fed",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/keras/lstm_static_test.py",
      "new_id": "64db229360b5f36674fc6a7950d346b0d3858da9",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/keras/lstm_static_test.py"
    },
    {
      "type": "delete",
      "old_id": "2c45fedc1c496e556ce6f8a4352a4bea1a164743",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/keras/lstm_static_trace_test.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "9409d043c31b526b1313f4138d5791aa26c77f7f",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/keras/lstm_test.py",
      "new_id": "d4fbbb817a585e419051f939dfee5ec0cf913bd7",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/keras/lstm_test.py"
    },
    {
      "type": "modify",
      "old_id": "e30bd5790ca26369f3a3aaa27731fafe5674ca11",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/keras/train/model_train_test.py",
      "new_id": "75286ad416fbcfcbebd0d2372fe241eeec24d223",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/keras/train/model_train_test.py"
    },
    {
      "type": "modify",
      "old_id": "54374ffc467243bd769225c3cfd9d8ece7b38a54",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/keras/vision_model_test.py",
      "new_id": "7c4b90e88c29313c62619c8e7ac14c0db3adc09e",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/keras/vision_model_test.py"
    },
    {
      "type": "modify",
      "old_id": "aa49f5b187765e9a7b006f497abaa9b972161d29",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/linspace_test.py",
      "new_id": "b535021f0f300b5e5c869fc252d51eb1960cf049",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/linspace_test.py"
    },
    {
      "type": "modify",
      "old_id": "2b3a8d97ea9648ab6bdff6fd1b0da9b56979e6e9",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/mandelbrot_test.py",
      "new_id": "b5a3929182e7df09595251e84f89e8f085ec1f9f",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/mandelbrot_test.py"
    },
    {
      "type": "modify",
      "old_id": "a33ac7c3f18660664880873266294f5a35a55578",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/math_test.py",
      "new_id": "3f1c8be10afdbe639ab7c5dc9290db509ee46a6b",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/math_test.py"
    },
    {
      "type": "modify",
      "old_id": "d04ce3acb1a09c5e2f3f391a2c885c3a21cb2b61",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/matrix_ops_test.py",
      "new_id": "ad5922ec31a03e3f0a8e0ee6f7f43d00580b0f3a",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/matrix_ops_test.py"
    },
    {
      "type": "modify",
      "old_id": "8daa6cfa00065a2ed13cce6e6a5dcdda436724e8",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/resource_ops_test.py",
      "new_id": "dd5ad6d05c1847cecafca32b329ff62ef653d126",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/resource_ops_test.py"
    },
    {
      "type": "modify",
      "old_id": "3af150297199b8bc70211814a93ae41716f0d953",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/ring_buffer_test.py",
      "new_id": "60eb7f61605a19a59d634295e255fd7a68f93a41",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/ring_buffer_test.py"
    },
    {
      "type": "modify",
      "old_id": "ab5ab910edf3529fab9de31c5790517aeaa81d08",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/scatter_update_test.py",
      "new_id": "8b43e3af5106f2605eed41de31d24ab92b0baeb2",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/scatter_update_test.py"
    },
    {
      "type": "modify",
      "old_id": "d3ea327db2cb266b0bf61ee679c0ca74c054cce4",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/simple_arithmetic_test.py",
      "new_id": "aaec5780ecb841167c56cb859737cb1b2195f7cc",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/simple_arithmetic_test.py"
    },
    {
      "type": "delete",
      "old_id": "1adef945e2e8df592d1e8ce4b13cf73c22321e03",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/simple_arithmetic_trace_test.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "24dd23e3abe4568c360044e57ad32fb585a77cbb",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/simple_stateful_test.py",
      "new_id": "eff49a84ea70e4ffd79ba1a74705a36bcbb6520f",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/simple_stateful_test.py"
    },
    {
      "type": "modify",
      "old_id": "f206d86242fdeca33c80e77b51bebdbdd886d67e",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/sliding_window_test.py",
      "new_id": "513aa97e33311b952737fddb2364ddce554f5628",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/sliding_window_test.py"
    },
    {
      "type": "modify",
      "old_id": "ce0787e076d3e39de148ab026d72403ac07f057f",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/strings_test.py",
      "new_id": "206b33c9bf3cc787b75c8efc675c3ec2958d499e",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/strings_test.py"
    },
    {
      "type": "delete",
      "old_id": "93d0fb6759b5a879b07ea74a02df98d0d6a3df01",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/strings_trace_test.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "9b1330c5c4ebac870de01bfc86372a9136aaeb0a",
      "old_mode": 33188,
      "old_path": "integrations/tensorflow/e2e/tensorlist_test.py",
      "new_id": "9d2e2737141e308064e03c484e7e8897df922f15",
      "new_mode": 33188,
      "new_path": "integrations/tensorflow/e2e/tensorlist_test.py"
    }
  ]
}
