@@ -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