Commit 63484ad
committed
fix(tests): resolve the emulator path before killing it
_emulator_process() returned the output of `ps -o comm=`, which on Linux is
the bare command name (`kkemu`, truncated to 15 chars), not a path -- only
macOS returns an absolute one. _power_cycle() then killed that pid and called
Popen([exe], cwd=cwd), and Popen resolves a bare name against PATH, never
against cwd. The emulator build directory is not on PATH, so on Linux the
emulator was killed and never restarted, leaving every later test in the run
talking to a dead port.
Resolve a runnable path BEFORE returning -- /proc/<pid>/exe first, then an
absolute comm, then cwd-relative, then PATH -- and report "not found" when
none works, so _power_cycle() takes its documented skip instead of killing an
emulator it cannot bring back.1 parent bc7eecf commit 63484ad
1 file changed
Lines changed: 43 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
43 | 44 | | |
44 | 45 | | |
45 | 46 | | |
| |||
66 | 67 | | |
67 | 68 | | |
68 | 69 | | |
69 | | - | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
70 | 73 | | |
71 | 74 | | |
72 | 75 | | |
| |||
151 | 154 | | |
152 | 155 | | |
153 | 156 | | |
154 | | - | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
155 | 196 | | |
156 | 197 | | |
157 | 198 | | |
| |||
0 commit comments