Skip to content

Commit f38851b

Browse files
committed
fix test racing
1 parent ae9b369 commit f38851b

File tree

1 file changed

+22
-26
lines changed

1 file changed

+22
-26
lines changed

internal/batch/batch_future_test.go

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -90,19 +90,17 @@ func Test_BatchWorkflow(t *testing.T) {
9090
env.RegisterWorkflow(batchWorkflow)
9191
env.RegisterActivity(batchActivity)
9292

93-
totalSize := 5
94-
concurrency := 2
95-
go func() {
96-
env.ExecuteWorkflow(batchWorkflow, batchWorkflowInput{
97-
Concurrency: concurrency,
98-
TotalSize: totalSize,
99-
})
100-
}()
93+
totalSize := 100
94+
concurrency := 10
10195

102-
// wait for maximum time it takes to complete the workflow (totalSize/concurrency) + 1 second
103-
assert.Eventually(t, func() bool {
104-
return env.IsWorkflowCompleted()
105-
}, time.Second*time.Duration(1+float64(totalSize)/float64(concurrency)), time.Millisecond*100)
96+
startTime := time.Now()
97+
env.ExecuteWorkflow(batchWorkflow, batchWorkflowInput{
98+
Concurrency: concurrency,
99+
TotalSize: totalSize,
100+
})
101+
102+
assert.Less(t, time.Since(startTime), time.Second*time.Duration(float64(totalSize)/float64(concurrency)))
103+
assert.True(t, env.IsWorkflowCompleted())
106104

107105
assert.Nil(t, env.GetWorkflowError())
108106
var result []int
@@ -129,12 +127,13 @@ func Test_BatchWorkflow_Cancel(t *testing.T) {
129127
})
130128
}()
131129

132-
time.Sleep(time.Second * 2)
130+
totalExpectedTime := time.Second * time.Duration(totalSize/concurrency)
131+
132+
time.Sleep(totalExpectedTime / 2)
133133
env.CancelWorkflow()
134134

135-
assert.Eventually(t, func() bool {
136-
return env.IsWorkflowCompleted()
137-
}, time.Second*time.Duration(1+float64(totalSize)/float64(concurrency)), time.Millisecond*100)
135+
time.Sleep(totalExpectedTime / 2)
136+
assert.True(t, env.IsWorkflowCompleted())
138137

139138
err := env.GetWorkflowError()
140139
errs := multierr.Errors(errors.Unwrap(err))
@@ -153,17 +152,14 @@ func Test_BatchWorkflowUsingFutures(t *testing.T) {
153152

154153
totalSize := 100
155154
concurrency := 20
156-
go func() {
157-
env.ExecuteWorkflow(batchWorkflowUsingFutures, batchWorkflowInput{
158-
Concurrency: concurrency,
159-
TotalSize: totalSize,
160-
})
161-
}()
162155

163-
// wait for maximum time it takes to complete the workflow (totalSize/concurrency) + 1 second
164-
assert.Eventually(t, func() bool {
165-
return env.IsWorkflowCompleted()
166-
}, time.Second*time.Duration(1+float64(totalSize)/float64(concurrency)), time.Millisecond*100)
156+
startTime := time.Now()
157+
env.ExecuteWorkflow(batchWorkflowUsingFutures, batchWorkflowInput{
158+
Concurrency: concurrency,
159+
TotalSize: totalSize,
160+
})
161+
assert.Less(t, time.Since(startTime), time.Second*time.Duration(float64(totalSize)/float64(concurrency)))
162+
assert.True(t, env.IsWorkflowCompleted())
167163

168164
assert.Nil(t, env.GetWorkflowError())
169165
var result []int

0 commit comments

Comments
 (0)