Skip to content

Commit 5db44b7

Browse files
committed
Merge branch 'master' into newer-tools
2 parents 6d3dcb6 + 5ead824 commit 5db44b7

File tree

7 files changed

+870
-27
lines changed

7 files changed

+870
-27
lines changed

internal/error.go

+10
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,16 @@ func (e *ContinueAsNewError) Args() []interface{} {
365365
return e.args
366366
}
367367

368+
// Input return serialized workflow argument
369+
func (e *ContinueAsNewError) Input() []byte {
370+
return e.params.input
371+
}
372+
373+
// Header return the header to start a workflow
374+
func (e *ContinueAsNewError) Header() *shared.Header {
375+
return e.params.header
376+
}
377+
368378
// newTerminatedError creates NewTerminatedError instance
369379
func newTerminatedError() *TerminatedError {
370380
return &TerminatedError{}

internal/internal_workers_test.go

+20-27
Original file line numberDiff line numberDiff line change
@@ -347,14 +347,7 @@ func (s *WorkersTestSuite) TestLongRunningDecisionTask() {
347347
)
348348
worker.RegisterActivity(localActivitySleep)
349349

350-
worker.Start()
351-
// wait for test to complete
352-
select {
353-
case <-doneCh:
354-
break
355-
case <-time.After(time.Second * 4):
356-
}
357-
worker.Stop()
350+
startWorkerAndWait(s, worker, &doneCh)
358351

359352
s.True(isWorkflowCompleted)
360353
s.Equal(2, localActivityCalledCount)
@@ -532,9 +525,7 @@ func (s *WorkersTestSuite) TestQueryTask_WorkflowCacheEvicted() {
532525
RegisterActivityOptions{Name: activityType},
533526
)
534527

535-
worker.Start()
536-
<-doneCh
537-
worker.Stop()
528+
startWorkerAndWait(s, worker, &doneCh)
538529
}
539530

540531
func (s *WorkersTestSuite) TestMultipleLocalActivities() {
@@ -654,14 +645,7 @@ func (s *WorkersTestSuite) TestMultipleLocalActivities() {
654645
)
655646
worker.RegisterActivity(localActivitySleep)
656647

657-
worker.Start()
658-
// wait for test to complete
659-
select {
660-
case <-doneCh:
661-
break
662-
case <-time.After(time.Second * 5):
663-
}
664-
worker.Stop()
648+
startWorkerAndWait(s, worker, &doneCh)
665649

666650
s.True(isWorkflowCompleted)
667651
s.Equal(2, localActivityCalledCount)
@@ -771,14 +755,7 @@ func (s *WorkersTestSuite) TestLocallyDispatchedActivity() {
771755
)
772756
worker.RegisterActivityWithOptions(activitySleep, RegisterActivityOptions{Name: "activitySleep"})
773757

774-
worker.Start()
775-
// wait for test to complete
776-
select {
777-
case <-doneCh:
778-
break
779-
case <-time.After(1 * time.Second):
780-
}
781-
worker.Stop()
758+
startWorkerAndWait(s, worker, &doneCh)
782759

783760
s.True(isActivityResponseCompleted)
784761
s.Equal(1, activityCalledCount)
@@ -889,6 +866,8 @@ func (s *WorkersTestSuite) TestMultipleLocallyDispatchedActivity() {
889866
worker.Start()
890867

891868
// wait for test to complete
869+
// This test currently never completes, however after the timeout the asserts are true
870+
// so the test passes, I believe this is an error.
892871
select {
893872
case <-doneCh:
894873
break
@@ -900,3 +879,17 @@ func (s *WorkersTestSuite) TestMultipleLocallyDispatchedActivity() {
900879
s.True(activityResponseCompletedCount > 0)
901880
s.True(activityCalledCount > 0)
902881
}
882+
883+
// wait for test to complete - timeout and fail after 10 seconds to not block execution of other tests
884+
func startWorkerAndWait(s *WorkersTestSuite, worker *aggregatedWorker, doneCh *chan struct{}) {
885+
s.T().Helper()
886+
worker.Start()
887+
// wait for test to complete
888+
select {
889+
case <-*doneCh:
890+
return
891+
case <-time.After(10 * time.Second):
892+
s.Fail("Test timed out")
893+
}
894+
worker.Stop()
895+
}

test/replaytests/branch.json

+265
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,265 @@
1+
[
2+
{
3+
"eventId": 1,
4+
"timestamp": 1679416555872012261,
5+
"eventType": "WorkflowExecutionStarted",
6+
"version": 0,
7+
"taskId": 5242880,
8+
"workflowExecutionStartedEventAttributes": {
9+
"workflowType": {
10+
"name": "branch"
11+
},
12+
"taskList": {
13+
"name": "branchGroup"
14+
},
15+
"executionStartToCloseTimeoutSeconds": 60,
16+
"taskStartToCloseTimeoutSeconds": 60,
17+
"continuedExecutionRunId": "",
18+
"originalExecutionRunId": "691e424f-453e-46d5-ad6e-b5fe44ea905b",
19+
"identity": "68502@agautam-NV709R969P@@e83a1347-9ee8-4554-8db5-0aba8e654bd5",
20+
"firstExecutionRunId": "691e424f-453e-46d5-ad6e-b5fe44ea905b",
21+
"attempt": 0,
22+
"cronSchedule": "",
23+
"firstDecisionTaskBackoffSeconds": 0,
24+
"header": {}
25+
}
26+
},
27+
{
28+
"eventId": 2,
29+
"timestamp": 1679416555874434594,
30+
"eventType": "DecisionTaskScheduled",
31+
"version": 0,
32+
"taskId": 5242881,
33+
"decisionTaskScheduledEventAttributes": {
34+
"taskList": {
35+
"name": "branchGroup"
36+
},
37+
"startToCloseTimeoutSeconds": 60,
38+
"attempt": 0
39+
}
40+
},
41+
{
42+
"eventId": 3,
43+
"timestamp": 1679416555977722803,
44+
"eventType": "DecisionTaskStarted",
45+
"version": 0,
46+
"taskId": 5242886,
47+
"decisionTaskStartedEventAttributes": {
48+
"scheduledEventId": 2,
49+
"identity": "68471@agautam-NV709R969P@branchGroup@9b8601e8-1ed4-438b-bd03-9b7a7382595b",
50+
"requestId": "b8596d8f-3d2c-427a-8e21-10505fdff896"
51+
}
52+
},
53+
{
54+
"eventId": 4,
55+
"timestamp": 1679416556030277261,
56+
"eventType": "DecisionTaskCompleted",
57+
"version": 0,
58+
"taskId": 5242889,
59+
"decisionTaskCompletedEventAttributes": {
60+
"scheduledEventId": 2,
61+
"startedEventId": 3,
62+
"identity": "68471@agautam-NV709R969P@branchGroup@9b8601e8-1ed4-438b-bd03-9b7a7382595b",
63+
"binaryChecksum": "bbf90d59747791397fd7d18d98635ee0"
64+
}
65+
},
66+
{
67+
"eventId": 5,
68+
"timestamp": 1679416556032126428,
69+
"eventType": "ActivityTaskScheduled",
70+
"version": 0,
71+
"taskId": 5242890,
72+
"activityTaskScheduledEventAttributes": {
73+
"activityId": "0",
74+
"activityType": {
75+
"name": "main.sampleActivity"
76+
},
77+
"taskList": {
78+
"name": "branchGroup"
79+
},
80+
"input": "ImJyYW5jaCAxIG9mIDMuIgo=",
81+
"scheduleToCloseTimeoutSeconds": 60,
82+
"scheduleToStartTimeoutSeconds": 60,
83+
"startToCloseTimeoutSeconds": 60,
84+
"heartbeatTimeoutSeconds": 20,
85+
"decisionTaskCompletedEventId": 4,
86+
"header": {}
87+
}
88+
},
89+
{
90+
"eventId": 6,
91+
"timestamp": 1679416556034048386,
92+
"eventType": "ActivityTaskScheduled",
93+
"version": 0,
94+
"taskId": 5242891,
95+
"activityTaskScheduledEventAttributes": {
96+
"activityId": "1",
97+
"activityType": {
98+
"name": "main.sampleActivity"
99+
},
100+
"taskList": {
101+
"name": "branchGroup"
102+
},
103+
"input": "ImJyYW5jaCAyIG9mIDMuIgo=",
104+
"scheduleToCloseTimeoutSeconds": 60,
105+
"scheduleToStartTimeoutSeconds": 60,
106+
"startToCloseTimeoutSeconds": 60,
107+
"heartbeatTimeoutSeconds": 20,
108+
"decisionTaskCompletedEventId": 4,
109+
"header": {}
110+
}
111+
},
112+
{
113+
"eventId": 7,
114+
"timestamp": 1679416556034178470,
115+
"eventType": "ActivityTaskScheduled",
116+
"version": 0,
117+
"taskId": 5242892,
118+
"activityTaskScheduledEventAttributes": {
119+
"activityId": "2",
120+
"activityType": {
121+
"name": "main.sampleActivity"
122+
},
123+
"taskList": {
124+
"name": "branchGroup"
125+
},
126+
"input": "ImJyYW5jaCAzIG9mIDMuIgo=",
127+
"scheduleToCloseTimeoutSeconds": 60,
128+
"scheduleToStartTimeoutSeconds": 60,
129+
"startToCloseTimeoutSeconds": 60,
130+
"heartbeatTimeoutSeconds": 20,
131+
"decisionTaskCompletedEventId": 4,
132+
"header": {}
133+
}
134+
},
135+
{
136+
"eventId": 8,
137+
"timestamp": 1679416556033170928,
138+
"eventType": "ActivityTaskStarted",
139+
"version": 0,
140+
"taskId": 5242893,
141+
"activityTaskStartedEventAttributes": {
142+
"scheduledEventId": 5,
143+
"identity": "68471@agautam-NV709R969P@branchGroup@9b8601e8-1ed4-438b-bd03-9b7a7382595b",
144+
"requestId": "5004df63-0a58-4a16-8466-67ee0997de68",
145+
"attempt": 0,
146+
"lastFailureReason": ""
147+
}
148+
},
149+
{
150+
"eventId": 9,
151+
"timestamp": 1679416556034104428,
152+
"eventType": "ActivityTaskStarted",
153+
"version": 0,
154+
"taskId": 5242894,
155+
"activityTaskStartedEventAttributes": {
156+
"scheduledEventId": 6,
157+
"identity": "68471@agautam-NV709R969P@branchGroup@9b8601e8-1ed4-438b-bd03-9b7a7382595b",
158+
"requestId": "e8e5ec37-925e-49f6-b59d-80935c3b01b0",
159+
"attempt": 0,
160+
"lastFailureReason": ""
161+
}
162+
},
163+
{
164+
"eventId": 10,
165+
"timestamp": 1679416556068643803,
166+
"eventType": "ActivityTaskStarted",
167+
"version": 0,
168+
"taskId": 5242898,
169+
"activityTaskStartedEventAttributes": {
170+
"scheduledEventId": 7,
171+
"identity": "68471@agautam-NV709R969P@branchGroup@9b8601e8-1ed4-438b-bd03-9b7a7382595b",
172+
"requestId": "d0a68205-7a41-4749-854a-acef7bc5a912",
173+
"attempt": 0,
174+
"lastFailureReason": ""
175+
}
176+
},
177+
{
178+
"eventId": 11,
179+
"timestamp": 1679416556089305720,
180+
"eventType": "ActivityTaskCompleted",
181+
"version": 0,
182+
"taskId": 5242900,
183+
"activityTaskCompletedEventAttributes": {
184+
"result": "IlJlc3VsdF9zYW1wbGVBY3Rpdml0eSIK",
185+
"scheduledEventId": 6,
186+
"startedEventId": 9,
187+
"identity": "68471@agautam-NV709R969P@branchGroup@9b8601e8-1ed4-438b-bd03-9b7a7382595b"
188+
}
189+
},
190+
{
191+
"eventId": 12,
192+
"timestamp": 1679416556089691970,
193+
"eventType": "DecisionTaskScheduled",
194+
"version": 0,
195+
"taskId": 5242902,
196+
"decisionTaskScheduledEventAttributes": {
197+
"taskList": {
198+
"name": "agautam-NV709R969P:2ffead12-7907-4ead-8b80-ee294165ff88"
199+
},
200+
"startToCloseTimeoutSeconds": 60,
201+
"attempt": 0
202+
}
203+
},
204+
{
205+
"eventId": 13,
206+
"timestamp": 1679416556103261761,
207+
"eventType": "ActivityTaskCompleted",
208+
"version": 0,
209+
"taskId": 5242906,
210+
"activityTaskCompletedEventAttributes": {
211+
"result": "IlJlc3VsdF9zYW1wbGVBY3Rpdml0eSIK",
212+
"scheduledEventId": 5,
213+
"startedEventId": 8,
214+
"identity": "68471@agautam-NV709R969P@branchGroup@9b8601e8-1ed4-438b-bd03-9b7a7382595b"
215+
}
216+
},
217+
{
218+
"eventId": 14,
219+
"timestamp": 1679416556114646970,
220+
"eventType": "ActivityTaskCompleted",
221+
"version": 0,
222+
"taskId": 5242909,
223+
"activityTaskCompletedEventAttributes": {
224+
"result": "IlJlc3VsdF9zYW1wbGVBY3Rpdml0eSIK",
225+
"scheduledEventId": 7,
226+
"startedEventId": 10,
227+
"identity": "68471@agautam-NV709R969P@branchGroup@9b8601e8-1ed4-438b-bd03-9b7a7382595b"
228+
}
229+
},
230+
{
231+
"eventId": 15,
232+
"timestamp": 1679416556128525803,
233+
"eventType": "DecisionTaskStarted",
234+
"version": 0,
235+
"taskId": 5242911,
236+
"decisionTaskStartedEventAttributes": {
237+
"scheduledEventId": 12,
238+
"identity": "68471@agautam-NV709R969P@branchGroup@9b8601e8-1ed4-438b-bd03-9b7a7382595b",
239+
"requestId": "773d5cd4-626c-4ce5-b340-503007a9c80f"
240+
}
241+
},
242+
{
243+
"eventId": 16,
244+
"timestamp": 1679416556152007511,
245+
"eventType": "DecisionTaskCompleted",
246+
"version": 0,
247+
"taskId": 5242914,
248+
"decisionTaskCompletedEventAttributes": {
249+
"scheduledEventId": 12,
250+
"startedEventId": 15,
251+
"identity": "68471@agautam-NV709R969P@branchGroup@9b8601e8-1ed4-438b-bd03-9b7a7382595b",
252+
"binaryChecksum": "bbf90d59747791397fd7d18d98635ee0"
253+
}
254+
},
255+
{
256+
"eventId": 17,
257+
"timestamp": 1679416556152617636,
258+
"eventType": "WorkflowExecutionCompleted",
259+
"version": 0,
260+
"taskId": 5242915,
261+
"workflowExecutionCompletedEventAttributes": {
262+
"decisionTaskCompletedEventId": 16
263+
}
264+
}
265+
]

0 commit comments

Comments
 (0)