|
1 | 1 | package e2e |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "fmt" |
4 | 5 | "strings" |
5 | 6 | "testing" |
6 | 7 | "time" |
@@ -39,7 +40,7 @@ func waitForAgentSessions(t *testing.T, opts tmux.Options, timeout time.Duration |
39 | 40 | } |
40 | 41 | time.Sleep(200 * time.Millisecond) |
41 | 42 | } |
42 | | - t.Fatalf("timeout waiting for agent sessions") |
| 43 | + t.Fatalf("timeout waiting for agent sessions\n%s", tmuxSessionDebug(opts)) |
43 | 44 | return nil |
44 | 45 | } |
45 | 46 |
|
@@ -158,6 +159,35 @@ func waitForAssistantSessions(t *testing.T, opts tmux.Options, want map[string]b |
158 | 159 | } |
159 | 160 | time.Sleep(200 * time.Millisecond) |
160 | 161 | } |
161 | | - t.Fatalf("timeout waiting for assistant sessions: %v", want) |
| 162 | + t.Fatalf("timeout waiting for assistant sessions: %v\n%s", want, tmuxSessionDebug(opts)) |
162 | 163 | return nil |
163 | 164 | } |
| 165 | + |
| 166 | +func tmuxSessionDebug(opts tmux.Options) string { |
| 167 | + rows, err := tmux.SessionsWithTags(map[string]string{}, []string{ |
| 168 | + "@amux", |
| 169 | + "@amux_type", |
| 170 | + "@amux_assistant", |
| 171 | + "@amux_workspace", |
| 172 | + "@amux_tab", |
| 173 | + }, opts) |
| 174 | + if err != nil { |
| 175 | + return fmt.Sprintf("tmux sessions: error=%v", err) |
| 176 | + } |
| 177 | + if len(rows) == 0 { |
| 178 | + return "tmux sessions: none" |
| 179 | + } |
| 180 | + lines := make([]string, 0, len(rows)) |
| 181 | + for _, row := range rows { |
| 182 | + lines = append(lines, fmt.Sprintf( |
| 183 | + "%s amux=%q type=%q assistant=%q workspace=%q tab=%q", |
| 184 | + row.Name, |
| 185 | + row.Tags["@amux"], |
| 186 | + row.Tags["@amux_type"], |
| 187 | + row.Tags["@amux_assistant"], |
| 188 | + row.Tags["@amux_workspace"], |
| 189 | + row.Tags["@amux_tab"], |
| 190 | + )) |
| 191 | + } |
| 192 | + return "tmux sessions:\n" + strings.Join(lines, "\n") |
| 193 | +} |
0 commit comments