@@ -61,7 +61,7 @@ func TestAgent(t *testing.T) {
61
61
ctx ,cancel := context .WithTimeout (context .Background (),testutil .WaitLong )
62
62
defer cancel ()
63
63
64
- conn ,stats := setupAgent (t , codersdk.WorkspaceAgentMetadata {},0 )
64
+ conn ,stats , _ := setupAgent (t , codersdk.WorkspaceAgentMetadata {},0 )
65
65
66
66
sshClient ,err := conn .SSHClient (ctx )
67
67
require .NoError (t ,err )
@@ -81,7 +81,7 @@ func TestAgent(t *testing.T) {
81
81
ctx ,cancel := context .WithTimeout (context .Background (),testutil .WaitLong )
82
82
defer cancel ()
83
83
84
- conn ,stats := setupAgent (t , codersdk.WorkspaceAgentMetadata {},0 )
84
+ conn ,stats , _ := setupAgent (t , codersdk.WorkspaceAgentMetadata {},0 )
85
85
86
86
ptyConn ,err := conn .ReconnectingPTY (ctx ,uuid .NewString (),128 ,128 ,"/bin/bash" )
87
87
require .NoError (t ,err )
@@ -231,7 +231,7 @@ func TestAgent(t *testing.T) {
231
231
if runtime .GOOS == "windows" {
232
232
home = "/" + strings .ReplaceAll (home ,"\\ " ,"/" )
233
233
}
234
- conn ,_ := setupAgent (t , codersdk.WorkspaceAgentMetadata {},0 )
234
+ conn ,_ , _ := setupAgent (t , codersdk.WorkspaceAgentMetadata {},0 )
235
235
sshClient ,err := conn .SSHClient (ctx )
236
236
require .NoError (t ,err )
237
237
defer sshClient .Close ()
@@ -261,7 +261,7 @@ func TestAgent(t *testing.T) {
261
261
ctx ,cancel := context .WithTimeout (context .Background (),testutil .WaitLong )
262
262
defer cancel ()
263
263
264
- conn ,_ := setupAgent (t , codersdk.WorkspaceAgentMetadata {},0 )
264
+ conn ,_ , _ := setupAgent (t , codersdk.WorkspaceAgentMetadata {},0 )
265
265
sshClient ,err := conn .SSHClient (ctx )
266
266
require .NoError (t ,err )
267
267
defer sshClient .Close ()
@@ -362,13 +362,13 @@ func TestAgent(t *testing.T) {
362
362
t .Parallel ()
363
363
tempPath := filepath .Join (t .TempDir (),"content.txt" )
364
364
content := "somethingnice"
365
- setupAgent (t , codersdk.WorkspaceAgentMetadata {
365
+ _ , _ , fs := setupAgent (t , codersdk.WorkspaceAgentMetadata {
366
366
StartupScript :fmt .Sprintf ("echo %s> %s" ,content ,tempPath ),
367
367
},0 )
368
368
369
369
var gotContent string
370
370
require .Eventually (t ,func ()bool {
371
- content ,err := os .ReadFile (tempPath )
371
+ content ,err := afero .ReadFile (fs , tempPath )
372
372
if err != nil {
373
373
t .Logf ("read file %q: %s" ,tempPath ,err )
374
374
return false
@@ -402,7 +402,7 @@ func TestAgent(t *testing.T) {
402
402
ctx ,cancel := context .WithTimeout (context .Background (),testutil .WaitLong )
403
403
defer cancel ()
404
404
405
- conn ,_ := setupAgent (t , codersdk.WorkspaceAgentMetadata {},0 )
405
+ conn ,_ , _ := setupAgent (t , codersdk.WorkspaceAgentMetadata {},0 )
406
406
id := uuid .NewString ()
407
407
netConn ,err := conn .ReconnectingPTY (ctx ,id ,100 ,100 ,"/bin/bash" )
408
408
require .NoError (t ,err )
@@ -499,7 +499,7 @@ func TestAgent(t *testing.T) {
499
499
}
500
500
}()
501
501
502
- conn ,_ := setupAgent (t , codersdk.WorkspaceAgentMetadata {},0 )
502
+ conn ,_ , _ := setupAgent (t , codersdk.WorkspaceAgentMetadata {},0 )
503
503
require .True (t ,conn .AwaitReachable (context .Background ()))
504
504
conn1 ,err := conn .DialContext (context .Background (),l .Addr ().Network (),l .Addr ().String ())
505
505
require .NoError (t ,err )
@@ -520,7 +520,7 @@ func TestAgent(t *testing.T) {
520
520
ctx ,cancel := context .WithTimeout (context .Background (),testutil .WaitLong )
521
521
defer cancel ()
522
522
derpMap := tailnettest .RunDERPAndSTUN (t )
523
- conn ,_ := setupAgent (t , codersdk.WorkspaceAgentMetadata {
523
+ conn ,_ , _ := setupAgent (t , codersdk.WorkspaceAgentMetadata {
524
524
DERPMap :derpMap ,
525
525
},0 )
526
526
defer conn .Close ()
@@ -603,7 +603,7 @@ func TestAgent(t *testing.T) {
603
603
}
604
604
605
605
func setupSSHCommand (t * testing.T ,beforeArgs []string ,afterArgs []string )* exec.Cmd {
606
- agentConn ,_ := setupAgent (t , codersdk.WorkspaceAgentMetadata {},0 )
606
+ agentConn ,_ , _ := setupAgent (t , codersdk.WorkspaceAgentMetadata {},0 )
607
607
listener ,err := net .Listen ("tcp" ,"127.0.0.1:0" )
608
608
require .NoError (t ,err )
609
609
waitGroup := sync.WaitGroup {}
@@ -646,7 +646,7 @@ func setupSSHCommand(t *testing.T, beforeArgs []string, afterArgs []string) *exe
646
646
func setupSSHSession (t * testing.T ,options codersdk.WorkspaceAgentMetadata )* ssh.Session {
647
647
ctx ,cancel := context .WithTimeout (context .Background (),testutil .WaitLong )
648
648
defer cancel ()
649
- conn ,_ := setupAgent (t ,options ,0 )
649
+ conn ,_ , _ := setupAgent (t ,options ,0 )
650
650
sshClient ,err := conn .SSHClient (ctx )
651
651
require .NoError (t ,err )
652
652
t .Cleanup (func () {
@@ -666,13 +666,15 @@ func (c closeFunc) Close() error {
666
666
func setupAgent (t * testing.T ,metadata codersdk.WorkspaceAgentMetadata ,ptyTimeout time.Duration ) (
667
667
* codersdk.AgentConn ,
668
668
<- chan * codersdk.AgentStats ,
669
+ afero.Fs ,
669
670
) {
670
671
if metadata .DERPMap == nil {
671
672
metadata .DERPMap = tailnettest .RunDERPAndSTUN (t )
672
673
}
673
674
coordinator := tailnet .NewCoordinator ()
674
675
agentID := uuid .New ()
675
676
statsCh := make (chan * codersdk.AgentStats )
677
+ fs := afero .NewMemMapFs ()
676
678
closer := agent .New (agent.Options {
677
679
Client :& client {
678
680
t :t ,
@@ -681,7 +683,7 @@ func setupAgent(t *testing.T, metadata codersdk.WorkspaceAgentMetadata, ptyTimeo
681
683
statsChan :statsCh ,
682
684
coordinator :coordinator ,
683
685
},
684
- Filesystem :afero . NewMemMapFs () ,
686
+ Filesystem :fs ,
685
687
Logger :slogtest .Make (t ,nil ).Leveled (slog .LevelDebug ),
686
688
ReconnectingPTYTimeout :ptyTimeout ,
687
689
})
@@ -707,7 +709,7 @@ func setupAgent(t *testing.T, metadata codersdk.WorkspaceAgentMetadata, ptyTimeo
707
709
conn .SetNodeCallback (sendNode )
708
710
return & codersdk.AgentConn {
709
711
Conn :conn ,
710
- },statsCh
712
+ },statsCh , fs
711
713
}
712
714
713
715
var dialTestPayload = []byte ("dean-was-here123" )