)]}'
{
  "commit": "a7eedffe20bd6e480c9e2c65e68daef1beb2af05",
  "tree": "37f46c9cbf8de3fbb0622b7472157d60f1b8550f",
  "parents": [
    "2e8ec2e17a5252d29bae849eb4ccd7ca6bab216a"
  ],
  "author": {
    "name": "Mattias Nissler",
    "email": "122288598+mnissler-rivos@users.noreply.github.com",
    "time": "Thu Aug 31 11:38:55 2023 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Aug 31 10:38:55 2023 +0100"
  },
  "message": "Introduce client object in python tests (#772)\n\nThus far, the client end of the socket is the only piece of client state\r\ntracked in tests, for which a global `socket` variable has been used. In\r\npreparation to add more state, replace the `socket` global with a\r\n`client` global object that groups all client state.\r\n\r\nSigned-off-by: Mattias Nissler \u003cmnissler@rivosinc.com\u003e\r\nReviewed-by: John Levon \u003cjohn.levon@nutanix.com\u003e\r\nReviewed-by: Thanos Makatos \u003cthanos.makatos@nutanix.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1a4cb2406afa3b5c1a9619963858ef5f0d2eebc3",
      "old_mode": 33188,
      "old_path": "test/py/libvfio_user.py",
      "new_id": "86c8cbd97ad917c73df3e35550cf975cbacc4bd7",
      "new_mode": 33188,
      "new_path": "test/py/libvfio_user.py"
    },
    {
      "type": "modify",
      "old_id": "ffe450651d29bfc0a4d3d8f77da71c5386dd23f0",
      "old_mode": 33188,
      "old_path": "test/py/test_destroy.py",
      "new_id": "94968ab748e8f2c8ee37a41455b012431ed7af05",
      "new_mode": 33188,
      "new_path": "test/py/test_destroy.py"
    },
    {
      "type": "modify",
      "old_id": "0a26614882f7310036b23c2bfdd91cd40cf66bfd",
      "old_mode": 33188,
      "old_path": "test/py/test_device_get_info.py",
      "new_id": "7337199655684105a246acfb92b6a4a084f6119f",
      "new_mode": 33188,
      "new_path": "test/py/test_device_get_info.py"
    },
    {
      "type": "modify",
      "old_id": "0a9b089db21909515b79d979f8c70bccd4559989",
      "old_mode": 33188,
      "old_path": "test/py/test_device_get_irq_info.py",
      "new_id": "8ac67599d7349434cc9630527ee789d9f18dc1c4",
      "new_mode": 33188,
      "new_path": "test/py/test_device_get_irq_info.py"
    },
    {
      "type": "modify",
      "old_id": "62d674060f1f143952b6afebbc6e3e990f81cb02",
      "old_mode": 33188,
      "old_path": "test/py/test_device_get_region_info.py",
      "new_id": "f847cb47173a0d22301e5af0095eed30f9ff648e",
      "new_mode": 33188,
      "new_path": "test/py/test_device_get_region_info.py"
    },
    {
      "type": "modify",
      "old_id": "42a6ae0b4c38ec2b8751e1d2e046a27751840a74",
      "old_mode": 33188,
      "old_path": "test/py/test_device_get_region_info_zero_size.py",
      "new_id": "146e812f45a1568ad1727e64438fb9a7a27842f9",
      "new_mode": 33188,
      "new_path": "test/py/test_device_get_region_info_zero_size.py"
    },
    {
      "type": "modify",
      "old_id": "63b433f7cf93d54d6395e28a4ef78be91ada61b4",
      "old_mode": 33188,
      "old_path": "test/py/test_device_get_region_io_fds.py",
      "new_id": "47ce32510d94d7226529d0ea4db4aac9ad1eade7",
      "new_mode": 33188,
      "new_path": "test/py/test_device_get_region_io_fds.py"
    },
    {
      "type": "modify",
      "old_id": "1aead71004d7b5234d9c9d30452a22c18ff27df6",
      "old_mode": 33188,
      "old_path": "test/py/test_device_set_irqs.py",
      "new_id": "a2a2701826c9f40ad6f2257bfa899d36205e5a42",
      "new_mode": 33188,
      "new_path": "test/py/test_device_set_irqs.py"
    },
    {
      "type": "modify",
      "old_id": "b3d4e342f7f2f1dea4cccc64ca070a313c0128d7",
      "old_mode": 33188,
      "old_path": "test/py/test_dirty_pages.py",
      "new_id": "f3e4219878187f8b3b6d7cea94d611bc7ef41deb",
      "new_mode": 33188,
      "new_path": "test/py/test_dirty_pages.py"
    },
    {
      "type": "modify",
      "old_id": "12d1f6d6d68e730b5b1c995d7d9f076e14027a36",
      "old_mode": 33188,
      "old_path": "test/py/test_dma_map.py",
      "new_id": "65a998e7525d23bd5f09233e2a35ee2ae61ac189",
      "new_mode": 33188,
      "new_path": "test/py/test_dma_map.py"
    },
    {
      "type": "modify",
      "old_id": "063dedcf05da1afe9167e0cd1bcbe6a0e786ffbd",
      "old_mode": 33188,
      "old_path": "test/py/test_dma_unmap.py",
      "new_id": "a1fa94b30ac03d4656dcd3f9975ca74fcb1bead5",
      "new_mode": 33188,
      "new_path": "test/py/test_dma_unmap.py"
    },
    {
      "type": "modify",
      "old_id": "18469a42f3496cb8533558ac77dbb90dceb436c5",
      "old_mode": 33188,
      "old_path": "test/py/test_irq_trigger.py",
      "new_id": "b835a58f53a999ccff2ed52714a98a7417b3fc9b",
      "new_mode": 33188,
      "new_path": "test/py/test_irq_trigger.py"
    },
    {
      "type": "modify",
      "old_id": "614a61560a117f902d55b07186df69e959c2780a",
      "old_mode": 33188,
      "old_path": "test/py/test_migration.py",
      "new_id": "a6327d826c527dc15b1ed118ae60994e04e070ea",
      "new_mode": 33188,
      "new_path": "test/py/test_migration.py"
    },
    {
      "type": "modify",
      "old_id": "b0188400fcb0cd1b00102c0539f4954dc5e296b2",
      "old_mode": 33188,
      "old_path": "test/py/test_negotiate.py",
      "new_id": "7404902681ce987de3442c1c574ce7643c7ba912",
      "new_mode": 33188,
      "new_path": "test/py/test_negotiate.py"
    },
    {
      "type": "modify",
      "old_id": "b7ad07b8df8bd9133036652708b3b74d69c4067a",
      "old_mode": 33188,
      "old_path": "test/py/test_pci_caps.py",
      "new_id": "5a3521b5ab659b4570fac1f8aec64623139bb6de",
      "new_mode": 33188,
      "new_path": "test/py/test_pci_caps.py"
    },
    {
      "type": "modify",
      "old_id": "c425c8b5970e28216dae32ac0181ad03b2dc47d8",
      "old_mode": 33188,
      "old_path": "test/py/test_pci_ext_caps.py",
      "new_id": "53af9df9f4f7ce8b9650cf02683dd876e1b437ae",
      "new_mode": 33188,
      "new_path": "test/py/test_pci_ext_caps.py"
    },
    {
      "type": "modify",
      "old_id": "b1fb2fdc494627913a3d9aab18a8659df89247ee",
      "old_mode": 33188,
      "old_path": "test/py/test_quiesce.py",
      "new_id": "3f728270de0a00ba3e4d4b6913ab33435347639d",
      "new_mode": 33188,
      "new_path": "test/py/test_quiesce.py"
    },
    {
      "type": "modify",
      "old_id": "79af0f27e09e92be1fe701c6e162553b5aeb4cdb",
      "old_mode": 33188,
      "old_path": "test/py/test_request_errors.py",
      "new_id": "c25a715888ee9004d37cc54869b784ab5888fcb7",
      "new_mode": 33188,
      "new_path": "test/py/test_request_errors.py"
    },
    {
      "type": "modify",
      "old_id": "d00de689c8bade20c0e19ee61b775a49d35fb020",
      "old_mode": 33188,
      "old_path": "test/py/test_setup_region.py",
      "new_id": "05e64574258349ec6d0099ecd6c159cf95225a4c",
      "new_mode": 33188,
      "new_path": "test/py/test_setup_region.py"
    },
    {
      "type": "modify",
      "old_id": "d44dc6ee4e661197195ffdea53e9ed44c7e8ecd4",
      "old_mode": 33188,
      "old_path": "test/py/test_sgl_get_put.py",
      "new_id": "53203fca03888ccad747c77ba09d2bd3486f731e",
      "new_mode": 33188,
      "new_path": "test/py/test_sgl_get_put.py"
    },
    {
      "type": "modify",
      "old_id": "e64c25381b2797649afe91a558edc36592a72a70",
      "old_mode": 33188,
      "old_path": "test/py/test_shadow_ioeventfd.py",
      "new_id": "1375769fb1007b767e241599988ef9f9034d9b90",
      "new_mode": 33188,
      "new_path": "test/py/test_shadow_ioeventfd.py"
    }
  ]
}
