(output: string)
| 713 | } |
| 714 | |
| 715 | function parseXctraceDevices(output: string): SetupDevice[] { |
| 716 | const listed: SetupDevice[] = []; |
| 717 | const lines = output.split('\n'); |
| 718 | |
| 719 | for (const rawLine of lines) { |
| 720 | const line = rawLine.trim(); |
| 721 | if (line.length === 0 || line.includes('Simulator')) { |
| 722 | continue; |
| 723 | } |
| 724 | |
| 725 | const match = line.match(/^(.+?) \(([0-9A-Fa-f-]{8,})\)(?: .*)?$/); |
| 726 | if (!match) { |
| 727 | continue; |
| 728 | } |
| 729 | |
| 730 | listed.push({ |
| 731 | name: match[1].trim(), |
| 732 | udid: match[2], |
| 733 | platform: 'Unknown', |
| 734 | }); |
| 735 | } |
| 736 | |
| 737 | return listed; |
| 738 | } |
| 739 | |
| 740 | async function listAvailableDevices( |
| 741 | fileSystem: FileSystemExecutor, |
no test coverage detected