3
3
package e2e
4
4
5
5
import (
6
- "context"
7
- "io"
8
6
"strings"
9
7
"testing"
10
8
"time"
@@ -123,8 +121,6 @@ spec:
123
121
}
124
122
125
123
func (s * RetryTestSuite ) TestWorkflowTemplateWithRetryStrategyInContainerSet () {
126
- var name string
127
- var ns string
128
124
s .Given ().
129
125
WorkflowTemplate ("@testdata/workflow-template-with-containerset.yaml" ).
130
126
Workflow (`
@@ -142,55 +138,25 @@ spec:
142
138
ExpectWorkflow (func (t * testing.T , metadata * metav1.ObjectMeta , status * wfv1.WorkflowStatus ) {
143
139
assert .Equal (t , wfv1 .WorkflowFailed , status .Phase )
144
140
}).
145
- ExpectWorkflowNode (func (status v1alpha1.NodeStatus ) bool {
146
- return status .Name == "workflow-template-containerset"
147
- }, func (t * testing.T , status * v1alpha1.NodeStatus , pod * apiv1.Pod ) {
148
- name = pod .GetName ()
149
- ns = pod .GetNamespace ()
141
+ // Success, no need retry
142
+ ExpectContainerLogs ("c1" , func (t * testing.T , logs string ) {
143
+ count := strings .Count (logs , "capturing logs" )
144
+ assert .Equal (t , 1 , count )
145
+ assert .Contains (t , logs , "hi" )
146
+ }).
147
+ // Command err. No retry logic is entered.
148
+ ExpectContainerLogs ("c2" , func (t * testing.T , logs string ) {
149
+ count := strings .Count (logs , "capturing logs" )
150
+ assert .Equal (t , 0 , count )
151
+ assert .Contains (t , logs , "executable file not found in $PATH" )
152
+ }).
153
+ // Retry when err.
154
+ ExpectContainerLogs ("c3" , func (t * testing.T , logs string ) {
155
+ count := strings .Count (logs , "capturing logs" )
156
+ assert .Equal (t , 2 , count )
157
+ countFailureInfo := strings .Count (logs , "intentional failure" )
158
+ assert .Equal (t , 2 , countFailureInfo )
150
159
})
151
- // Success, no need retry
152
- s .Run ("ContainerLogs" , func () {
153
- ctx := context .Background ()
154
- podLogOptions := & apiv1.PodLogOptions {Container : "c1" }
155
- stream , err := s .KubeClient .CoreV1 ().Pods (ns ).GetLogs (name , podLogOptions ).Stream (ctx )
156
- s .Require ().NoError (err )
157
- defer stream .Close ()
158
- logBytes , err := io .ReadAll (stream )
159
- s .Require ().NoError (err )
160
- output := string (logBytes )
161
- count := strings .Count (output , "capturing logs" )
162
- s .Equal (1 , count )
163
- s .Contains (output , "hi" )
164
- })
165
- // Command err. No retry logic is entered.
166
- s .Run ("ContainerLogs" , func () {
167
- ctx := context .Background ()
168
- podLogOptions := & apiv1.PodLogOptions {Container : "c2" }
169
- stream , err := s .KubeClient .CoreV1 ().Pods (ns ).GetLogs (name , podLogOptions ).Stream (ctx )
170
- s .Require ().NoError (err )
171
- defer stream .Close ()
172
- logBytes , err := io .ReadAll (stream )
173
- s .Require ().NoError (err )
174
- output := string (logBytes )
175
- count := strings .Count (output , "capturing logs" )
176
- s .Equal (0 , count )
177
- s .Contains (output , "executable file not found in $PATH" )
178
- })
179
- // Retry when err.
180
- s .Run ("ContainerLogs" , func () {
181
- ctx := context .Background ()
182
- podLogOptions := & apiv1.PodLogOptions {Container : "c3" }
183
- stream , err := s .KubeClient .CoreV1 ().Pods (ns ).GetLogs (name , podLogOptions ).Stream (ctx )
184
- s .Require ().NoError (err )
185
- defer stream .Close ()
186
- logBytes , err := io .ReadAll (stream )
187
- s .Require ().NoError (err )
188
- output := string (logBytes )
189
- count := strings .Count (output , "capturing logs" )
190
- s .Equal (2 , count )
191
- countFailureInfo := strings .Count (output , "intentional failure" )
192
- s .Equal (2 , countFailureInfo )
193
- })
194
160
}
195
161
196
162
func (s * RetryTestSuite ) TestRetryNodeAntiAffinity () {
0 commit comments