)]}'
{
  "commit": "a84d94802dad5b60947b66c2b04ec12e1efa8d7a",
  "tree": "bcd9e25cf1e431e7b02f4d2b5bf4d6cc72e41c3e",
  "parents": [
    "ea922daab1803d4be3a1df0bb37cce83bc48d8a3"
  ],
  "author": {
    "name": "Raphael Isemann",
    "email": "rise@apple.com",
    "time": "Tue May 19 13:29:52 2026 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue May 19 13:29:52 2026 +0100"
  },
  "message": "[lldb] Add a packet-test-delay setting for testing slow connections (#195440)\n\n[lldb] Add a packet-test-delay setting for testing slow connections\n\nSending/receiving packets to/from a non-host devices adds latency to\nthe gdb-remote communication that induces substantial slowdown into the\ndebugging experience.\n\nThis patch adds an artificial delay before sending a packet to\nsimulate this latency without requiring an emulated/physical device.\n\nThe test checks only checks that there is a delay when this setting is\nactivated, but not that there is no delay when the setting is not\nactivated. The reason for this is that this negative test would either\nrequire a large delay (which further slows down the test suite) or be\nprone to accidential failures on overloaded test bots.\n\nThere is also the question whether we should have dynamic delays that\ndepend on the number of transferred bytes. From talking to Felipe it\nseems the real bottleneck is really just the latency and not the\ntransfer speed. From my own testing, it seems that a simple fixed array\nmostly simulated the remote debugging performance, and the delays I can\nsee on my own machine seem to mostly resemble the delays we can see\nwhen debugging on a remote device.\n\nThis patch also required wrapping `SendPacketAndWaitForResponse` so we\ncan sync this setting on a per-packet basis for the\nGDBRemoteCommunication class. Without this, we could only set the delay\nbefore connecting and then never change afterwards which would make\nthis feature less useful and writing a simple test impossible.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "80a9954ea9e3b440a5ce42122f433035244ad807",
      "old_mode": 33188,
      "old_path": "lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp",
      "new_id": "d73766501e758b515dc1c90a7759af50bef80179",
      "new_mode": 33188,
      "new_path": "lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp"
    },
    {
      "type": "modify",
      "old_id": "7884c6ed557f5a2382cdad9d959307723c01a780",
      "old_mode": 33188,
      "old_path": "lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp",
      "new_id": "d1d445e4ced06fe7e20481a487beb7e416b73c17",
      "new_mode": 33188,
      "new_path": "lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp"
    },
    {
      "type": "modify",
      "old_id": "63215f3e612c847e8b489169f01acde5b17a9d76",
      "old_mode": 33188,
      "old_path": "lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h",
      "new_id": "921dc065ee560a86c4cfed7bfd9e580a72ce2831",
      "new_mode": 33188,
      "new_path": "lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h"
    },
    {
      "type": "modify",
      "old_id": "08dee3089a0949ad5d3861b2186f44d3b78dea44",
      "old_mode": 33188,
      "old_path": "lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteProperties.td",
      "new_id": "60188d0286678a8570b7754e84a5d862a726c897",
      "new_mode": 33188,
      "new_path": "lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteProperties.td"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6df42d61e4fa90fd4025b3f6a4f2c9038df8f984",
      "new_mode": 33188,
      "new_path": "lldb/test/API/functionalities/gdb_remote_client/TestPacketTestDelay.py"
    }
  ]
}
