)]}'
{
  "commit": "9baa97a8c6cc671aefe26168b3d8281da070ebf9",
  "tree": "4adb5cea77de2001fdcfd2e0479abdfa967d7a83",
  "parents": [
    "d799b6f572e4b39ebebcf72126d3120f7829c034"
  ],
  "author": {
    "name": "hathach",
    "email": "thach@tinyusb.org",
    "time": "Thu Aug 27 01:01:30 2026 +0700"
  },
  "committer": {
    "name": "hathach",
    "email": "thach@tinyusb.org",
    "time": "Thu Aug 27 08:54:07 2026 +0700"
  },
  "message": "test/hil: drop the Windows accommodations, which accommodate nothing\n\nhil_test.py cannot run on Windows and never could: it imports helper.hil_lock,\nwhose module-level `import fcntl` is POSIX-only, so the harness fails at import\nbefore a line of it executes. Past that it reads /sys/bus/usb, /dev/bus/usb,\n/dev/serial/by-id and /proc, kills by process group, and takes flock board\nlocks -- none of which Windows has.\n\nSo the guards were protecting a platform the code cannot reach:\n\n- run_cmd branched three ways on os.name to decide whether to set\n  start_new_session and whether to killpg. The non-POSIX arm called p.kill()\n  instead, which kills only the direct child -- exactly the semantics the whole\n  containment design rejects, since a flasher run through a shell reparents out\n  of reach. Dead code that documented the wrong answer.\n- hil_test picked multiprocessing\u0027s default context on Windows \"so it still\n  IMPORTS there\". It does not import there.\n- test_device_audio_test_freertos returned \u0027skipped\u0027 on nt before touching\n  ALSA, in a function only ever reached from a worker that cannot start there.\n- Seven @unittest.skipIf(os.name \u003d\u003d \u0027nt\u0027) decorators across the two suites.\n  These were the only ones with a real effect -- the unit tests DO import and\n  run on Windows, because they stub pyserial and mostly exercise pure logic --\n  but what they buy is a partially-green suite for a harness that cannot run,\n  and nothing verifies the set is correct: the hil-test hook only ever runs on\n  ubuntu-latest, so a missing guard fails silently until someone tries.\n\nRemoving them makes the POSIX assumption single and explicit rather than\nscattered and half-honoured. Nothing changes on Linux: every removed branch was\nthe one already taken there.\n\nRemoving the run_cmd guards also removes their `else: p.kill()` arms. Those were\nthe Windows branches, and p.kill() reaches only the direct child -- a flasher run\nthrough a shell keeps grandchildren it cannot touch, which is the semantics this\ncontainment design rejects. RunCmdCleanupShape pins what is left: both cleanup\npaths killpg, no try carries an else whose body would run when the kill\nSUCCEEDED, and the BaseException path still re-raises. Structural rather than\nbehavioural because driving a real SIGINT into a blocked communicate() is\ntiming-dependent, and what actually breaks this block is an edit that rebinds a\nbranch -- which is a shape.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a0279fd4cd439d010a07638a9c42501ded1b6354",
      "old_mode": 33188,
      "old_path": "test/hil/helper/hil_util.py",
      "new_id": "03d01270f54d926425147dea05bcdc5dd17e5ec9",
      "new_mode": 33188,
      "new_path": "test/hil/helper/hil_util.py"
    },
    {
      "type": "modify",
      "old_id": "253fb1b98c3890ab45c757c22803e58419e1387a",
      "old_mode": 33261,
      "old_path": "test/hil/hil_test.py",
      "new_id": "e3299842044176c6cf757674d10f89c7543b45f2",
      "new_mode": 33261,
      "new_path": "test/hil/hil_test.py"
    },
    {
      "type": "modify",
      "old_id": "9e60a19e2224ba43edf30843c48511139c3b6dd7",
      "old_mode": 33188,
      "old_path": "test/hil/test/test_hil_bounded.py",
      "new_id": "6da65543fca122b31e0d1ace1f2e681ca6a98e03",
      "new_mode": 33188,
      "new_path": "test/hil/test/test_hil_bounded.py"
    },
    {
      "type": "modify",
      "old_id": "c95e20b6d2a69f651e349548640fb8244a7bee49",
      "old_mode": 33188,
      "old_path": "test/hil/test/test_hil_util.py",
      "new_id": "e06d2ba8bfdfa506733e1261c55bf6f74c7cb487",
      "new_mode": 33188,
      "new_path": "test/hil/test/test_hil_util.py"
    }
  ]
}
