)]}'
{
  "commit": "4c504f32da9ba180c1091a631063a567fbb921ae",
  "tree": "b107414b0231d0ed48783e95e55f912e19a43a26",
  "parents": [
    "ee0e680afbb7e22f9a7a7f12c575f02dd9ee65a3"
  ],
  "author": {
    "name": "Rich Lane",
    "email": "rlane@bigswitch.com",
    "time": "Fri Jun 07 17:24:14 2013 -0700"
  },
  "committer": {
    "name": "Rich Lane",
    "email": "rlane@bigswitch.com",
    "time": "Fri Jun 07 17:24:14 2013 -0700"
  },
  "message": "testutils: add verify_packet_in and verify_no_packet_in\n\nChecking that the controller received a packet-in message is surprisingly\ncomplicated to do correctly. Because the switch may send unexpected packet-ins\n(Linux IP stack on IVS\u0027s OFPP_LOCAL, for example) each test needs logic to\nmatch the packet data, in_port, etc to figure out if this is the packet-in\nmessage it\u0027s looking for.\n\nThis change adds two testutils functions that automate this, and replaces all\nthe other implementations in tests.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6609fc6d4ea7eab307a34b60fe39cf270c72886d",
      "old_mode": 33188,
      "old_path": "src/python/oftest/testutils.py",
      "new_id": "40b24ede78804340300bc22a8d2e68bb698c2494",
      "new_mode": 33188,
      "new_path": "src/python/oftest/testutils.py"
    },
    {
      "type": "modify",
      "old_id": "2791d5af69fdfbfda6055ac6530230e81ff77af1",
      "old_mode": 33188,
      "old_path": "tests/actions.py",
      "new_id": "d25108dbe8c94124d5f4e083218dc19e3a6bded7",
      "new_mode": 33188,
      "new_path": "tests/actions.py"
    },
    {
      "type": "modify",
      "old_id": "5312c1aa7c20a783b867004212967ed177da3d50",
      "old_mode": 33188,
      "old_path": "tests/basic.py",
      "new_id": "6e0e4d0d250cb8321a0cb26f208e25e39de44276",
      "new_mode": 33188,
      "new_path": "tests/basic.py"
    },
    {
      "type": "modify",
      "old_id": "574593f8f8f94e2089576edd7179bc7efc005bda",
      "old_mode": 33188,
      "old_path": "tests/default_drop.py",
      "new_id": "975e056cebbf4bb8f8ef9ac97e5e5e6b4f826581",
      "new_mode": 33188,
      "new_path": "tests/default_drop.py"
    },
    {
      "type": "modify",
      "old_id": "721d68bbdd79102e4a7ef9f7476466f6a30b7555",
      "old_mode": 33188,
      "old_path": "tests/flow_matches.py",
      "new_id": "22168998a4da4857a3cedd5403c79844480378a5",
      "new_mode": 33188,
      "new_path": "tests/flow_matches.py"
    },
    {
      "type": "modify",
      "old_id": "599764aa349593caedf98fecd3f158884da258ed",
      "old_mode": 33188,
      "old_path": "tests/message_types.py",
      "new_id": "743dae171df9f5724ee53b5692c9feb13336dd65",
      "new_mode": 33188,
      "new_path": "tests/message_types.py"
    },
    {
      "type": "modify",
      "old_id": "a10d8b839899a188d7d850afe91ce3759644fa8b",
      "old_mode": 33188,
      "old_path": "tests/nicira_role.py",
      "new_id": "5eeca250b3716dda79e1f3f617fc50e49e3faf29",
      "new_mode": 33188,
      "new_path": "tests/nicira_role.py"
    },
    {
      "type": "modify",
      "old_id": "b30da7c00fdcc156f46116e0ee54f9e775d06c6f",
      "old_mode": 33188,
      "old_path": "tests/openflow_protocol_messages.py",
      "new_id": "50c7eaecedce227092377262ed2a29de58aaa029",
      "new_mode": 33188,
      "new_path": "tests/openflow_protocol_messages.py"
    },
    {
      "type": "modify",
      "old_id": "829a90efffcb29a56cfc0852477f5da27bfb7ab0",
      "old_mode": 33188,
      "old_path": "tests/pktact.py",
      "new_id": "f803cfd39b9978a3431db3abfcac130537b9c1e3",
      "new_mode": 33188,
      "new_path": "tests/pktact.py"
    }
  ]
}
