@@ -3,6 +3,7 @@ package task
3
3
import (
4
4
"context"
5
5
"os"
6
+ "strings"
6
7
"testing"
7
8
"time"
8
9
@@ -48,8 +49,8 @@ func TestTask(t *testing.T) {
48
49
}
49
50
50
51
t .Run (string (provider ), func (t * testing.T ) {
51
- oldData := gofakeit .Phrase ()
52
- newData := gofakeit .Phrase ()
52
+ oldData := gofakeit .UUID ()
53
+ newData := gofakeit .UUID ()
53
54
54
55
dataDirectory := t .TempDir ()
55
56
dataFile := filepath .Join (dataDirectory , "data" )
@@ -75,20 +76,21 @@ func TestTask(t *testing.T) {
75
76
Environment : common.Environment {
76
77
Image : "ubuntu" ,
77
78
Script : `#!/bin/bash
79
+ echo "$ENVIRONMENT_VARIABLE_DATA" | tee --append data
80
+ sleep 60
78
81
cat data
79
- echo "$ENVIRONMENT_VARIABLE_DATA" | tee data
80
82
` ,
81
83
Variables : map [string ]* string {
82
84
"ENVIRONMENT_VARIABLE_DATA" : & newData ,
83
85
},
84
- Directory : dataDirectory ,
85
- Timeout : 10 * time .Minute ,
86
+ Directory : dataDirectory ,
87
+ DirectoryOut : dataDirectory ,
88
+ Timeout : 10 * time .Minute ,
86
89
},
87
90
Firewall : common.Firewall {
88
91
Ingress : common.FirewallRule {
89
92
Ports : & []uint16 {22 },
90
93
},
91
- // Egress: everything open.
92
94
},
93
95
Spot : common .SpotEnabled ,
94
96
Parallelism : 1 ,
@@ -120,38 +122,30 @@ func TestTask(t *testing.T) {
120
122
require .Nil (t , err )
121
123
122
124
for _ , log := range logs {
123
- if assert .Contains (t , log , oldData ) &&
124
- assert .Contains (t , log , newData ) {
125
+ if strings .Contains (log , oldData ) &&
126
+ strings .Contains (log , newData ) {
125
127
break loop
126
128
}
127
129
}
130
+
131
+ time .Sleep (10 * time .Second )
128
132
}
129
133
130
134
if provider == common .ProviderK8S {
131
135
require .Equal (t , newTask .Start (ctx ), common .NotImplementedError )
132
136
require .Equal (t , newTask .Stop (ctx ), common .NotImplementedError )
133
- } else {
134
- require .Nil (t , newTask .Stop (ctx ))
135
- require .Nil (t , newTask .Stop (ctx ))
136
-
137
- for assert .Nil (t , newTask .Read (ctx )) {
138
- status , err := newTask .Status (ctx )
139
- require .Nil (t , err )
140
- if status [common .StatusCodeActive ] > 0 {
141
- break
142
- }
143
- }
137
+ }
144
138
145
- require .Nil (t , newTask .Start (ctx ))
146
- require .Nil (t , newTask .Start (ctx ))
139
+ for assert .Nil (t , newTask .Read (ctx )) {
140
+ status , err := newTask .Status (ctx )
141
+ require .Nil (t , err )
147
142
148
- for assert .Nil (t , newTask .Read (ctx )) {
149
- status , err := newTask .Status (ctx )
150
- require .Nil (t , err )
151
- if status [common .StatusCodeActive ] == 0 {
152
- break
153
- }
143
+ if status [common .StatusCodeActive ] == 0 &&
144
+ status [common .StatusCodeSucceeded ] > 0 {
145
+ break
154
146
}
147
+
148
+ time .Sleep (10 * time .Second )
155
149
}
156
150
157
151
require .Nil (t , newTask .Delete (ctx ))
0 commit comments