diff --git a/chasm/field_test.go b/chasm/field_test.go index 1f25c230840..915db5fd433 100644 --- a/chasm/field_test.go +++ b/chasm/field_test.go @@ -68,8 +68,7 @@ func (s *fieldSuite) initAssertions() { } func (s *fieldSuite) TestInternalFieldName() { - f := Field[any]{} - fT := reflect.TypeOf(f) + fT := reflect.TypeFor[Field[any]]() _, ok := fT.FieldByName(internalFieldName) s.True(ok, "expected field %s not found", internalFieldName) diff --git a/chasm/fields_iterator.go b/chasm/fields_iterator.go index 645349ae011..b3b26ec76c7 100644 --- a/chasm/fields_iterator.go +++ b/chasm/fields_iterator.go @@ -106,8 +106,8 @@ func unmanagedFieldsOf(valueT reflect.Type) iter.Seq[fieldInfo] { if valueT.Kind() == reflect.Pointer { valueT = valueT.Elem() } - for i := range valueT.NumField() { - fieldT := valueT.Field(i).Type + for field := range valueT.Fields() { + fieldT := field.Type if fieldT == UnimplementedComponentT { continue } @@ -117,7 +117,7 @@ func unmanagedFieldsOf(valueT reflect.Type) iter.Seq[fieldInfo] { continue } - fieldN := fieldName(valueT.Field(i)) + fieldN := fieldName(field) prefix := genericTypePrefix(fieldT) switch prefix { case chasmFieldTypePrefix, @@ -167,8 +167,8 @@ func hasVisibilityField(componentT reflect.Type) bool { if componentT.Kind() != reflect.Struct { return false } - for i := range componentT.NumField() { - fieldT := componentT.Field(i).Type + for field := range componentT.Fields() { + fieldT := field.Type if fieldT == visibilityFieldT { return true } diff --git a/chasm/fields_iterator_test.go b/chasm/fields_iterator_test.go index 261ca0ff68a..65a726174a5 100644 --- a/chasm/fields_iterator_test.go +++ b/chasm/fields_iterator_test.go @@ -78,14 +78,12 @@ func (s *fieldsIteratorSuite) TestGenericTypePrefix() { } func (s *fieldsIteratorSuite) TestChasmFieldTypePrefix() { - f := Field[any]{} - fT := reflect.TypeOf(f) + fT := reflect.TypeFor[Field[any]]() s.True(strings.HasPrefix(fT.String(), chasmFieldTypePrefix)) } func (s *fieldsIteratorSuite) TestChasmMapTypePrefix() { - c := Map[string, any]{} - cT := reflect.TypeOf(c) + cT := reflect.TypeFor[Map[string, any]]() s.True(strings.HasPrefix(cT.String(), chasmMapTypePrefix)) } @@ -211,7 +209,7 @@ func (s *fieldsIteratorSuite) TestUnmanagedFieldsOf() { for r := range unmanagedFieldsOf(reflect.TypeFor[unmanagedFields]()) { result = append(result, r.name) } - s.Equal(2, len(result)) + s.Len(result, 2) s.ElementsMatch([]string{"unmanaged", "anotherPtr"}, result) } diff --git a/chasm/registrable_component.go b/chasm/registrable_component.go index 15b7f659e41..5a3d11da139 100644 --- a/chasm/registrable_component.go +++ b/chasm/registrable_component.go @@ -2,6 +2,7 @@ package chasm import ( "fmt" + "maps" "reflect" "github.com/dgryski/go-farm" @@ -173,9 +174,7 @@ func WithContextValues( if rc.contextValues == nil { rc.contextValues = make(map[any]any, len(keyVals)) } - for k, v := range keyVals { - rc.contextValues[k] = v - } + maps.Copy(rc.contextValues, keyVals) } } diff --git a/chasm/registry.go b/chasm/registry.go index 910cdcf4991..18f65e78fbe 100644 --- a/chasm/registry.go +++ b/chasm/registry.go @@ -269,7 +269,7 @@ func (r *Registry) registerComponent( // rc.goType implements Component interface; therefore, it must be a struct. // This check to protect against the interface itself being registered. if !(rc.goType.Kind() == reflect.Struct || - (rc.goType.Kind() == reflect.Ptr && rc.goType.Elem().Kind() == reflect.Struct)) { + (rc.goType.Kind() == reflect.Pointer && rc.goType.Elem().Kind() == reflect.Struct)) { return fmt.Errorf("component type %s must be struct or pointer to struct", rc.goType.String()) } if _, ok := r.rcByGoType[rc.goType]; ok { @@ -312,7 +312,7 @@ func (r *Registry) registerTask( } if !(rt.goType.Kind() == reflect.Struct || - (rt.goType.Kind() == reflect.Ptr && rt.goType.Elem().Kind() == reflect.Struct)) { + (rt.goType.Kind() == reflect.Pointer && rt.goType.Elem().Kind() == reflect.Struct)) { return fmt.Errorf("task type %s must be struct or pointer to struct", rt.goType.String()) } if _, ok := r.rtByGoType[rt.goType]; ok { @@ -320,8 +320,8 @@ func (r *Registry) registerTask( } if !(rt.componentGoType.Kind() == reflect.Interface || (rt.componentGoType.Kind() == reflect.Struct || - (rt.componentGoType.Kind() == reflect.Ptr && rt.componentGoType.Elem().Kind() == reflect.Struct)) && - rt.componentGoType.AssignableTo(reflect.TypeOf((*Component)(nil)).Elem())) { + (rt.componentGoType.Kind() == reflect.Pointer && rt.componentGoType.Elem().Kind() == reflect.Struct)) && + rt.componentGoType.AssignableTo(reflect.TypeFor[Component]())) { return fmt.Errorf("component type %s must be and interface or struct that implements Component interface", rt.componentGoType.String()) } diff --git a/chasm/registry_test.go b/chasm/registry_test.go index 8429f03eb17..be7d46bbe7a 100644 --- a/chasm/registry_test.go +++ b/chasm/registry_test.go @@ -72,7 +72,7 @@ func (s *RegistryTestSuite) TestRegistry_RegisterComponents_Success() { require.True(s.T(), ok) require.Equal(s.T(), "TestLibrary.Component1", rc2.FqType()) - rc2, ok = r.ComponentOf(reflect.TypeOf(cInstance1)) + rc2, ok = r.ComponentOf(reflect.TypeFor[*chasm.MockComponent]()) require.True(s.T(), ok) require.Equal(s.T(), "TestLibrary.Component1", rc2.FqType()) @@ -146,7 +146,7 @@ func (s *RegistryTestSuite) TestRegistry_RegisterTasks_Success() { require.Equal(s.T(), "TestLibrary.Task2", rt2.FqType()) s.Require().Equal(rt2.FqType(), rt2.TaskGroup()) - rt2, ok = r.TaskOf(reflect.TypeOf(tInstance1)) + rt2, ok = r.TaskOf(reflect.TypeFor[testTask2]()) require.True(s.T(), ok) require.Equal(s.T(), "TestLibrary.Task2", rt2.FqType()) diff --git a/chasm/test_component_test.go b/chasm/test_component_test.go index b675acff150..3392887694c 100644 --- a/chasm/test_component_test.go +++ b/chasm/test_component_test.go @@ -374,7 +374,7 @@ func renderProtoPointer(v reflect.Value) string { // Handle oneof-style interface fields if field.Type.Kind() == reflect.Interface && !fieldValue.IsNil() { oneofVal := fieldValue.Elem() - if oneofVal.Kind() == reflect.Ptr { + if oneofVal.Kind() == reflect.Pointer { oneofVal = oneofVal.Elem() } @@ -387,7 +387,7 @@ func renderProtoPointer(v reflect.Value) string { oneofFieldValue := oneofVal.Field(j) // Handle nested proto inside oneof - if oneofFieldValue.Kind() == reflect.Ptr && oneofFieldValue.Elem().Kind() == reflect.Struct { + if oneofFieldValue.Kind() == reflect.Pointer && oneofFieldValue.Elem().Kind() == reflect.Struct { result += fmt.Sprintf("\t\t\t%s: %s,\n", oneofField.Name, renderProtoPointer(oneofFieldValue)) } else { result += fmt.Sprintf("\t\t\t%s: %#v,\n", oneofField.Name, oneofFieldValue.Interface()) @@ -398,7 +398,7 @@ func renderProtoPointer(v reflect.Value) string { } // Recursively handle nested proto messages (pointer to struct) - if field.Type.Kind() == reflect.Ptr && fieldValue.Kind() == reflect.Ptr && fieldValue.Elem().Kind() == reflect.Struct { + if field.Type.Kind() == reflect.Pointer && fieldValue.Kind() == reflect.Pointer && fieldValue.Elem().Kind() == reflect.Struct { result += fmt.Sprintf("\t\t%s: %s,\n", field.Name, renderProtoPointer(fieldValue)) continue } diff --git a/chasm/tree.go b/chasm/tree.go index 4f66b64c1dc..7727783597f 100644 --- a/chasm/tree.go +++ b/chasm/tree.go @@ -704,7 +704,7 @@ func assertStructPointer(t reflect.Type) error { return nil } - if t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct { + if t.Kind() != reflect.Pointer || t.Elem().Kind() != reflect.Struct { return serviceerror.NewInternalf("only pointer to struct is supported for tree node value: got %s", t.String()) } return nil @@ -1619,7 +1619,7 @@ func (n *Node) AddTask( return } - n.nodeBase.newTasks[component] = append(n.nodeBase.newTasks[component], taskWithAttributes{ + n.newTasks[component] = append(n.newTasks[component], taskWithAttributes{ task: task, attributes: taskAttributes, }) @@ -3138,7 +3138,7 @@ func deserializeTask( } taskGoType := registrableTask.goType - if taskGoType.Kind() == reflect.Ptr { + if taskGoType.Kind() == reflect.Pointer { taskGoType = taskGoType.Elem() } taskValue = reflect.New(taskGoType) @@ -3194,7 +3194,7 @@ func serializeTask( taskGoType := registrableTask.goType // Handle pointer to struct. - if taskGoType.Kind() == reflect.Ptr { + if taskGoType.Kind() == reflect.Pointer { taskGoType = taskGoType.Elem() taskValue = taskValue.Elem() } diff --git a/chasm/tree_test.go b/chasm/tree_test.go index 0cb36f65926..72c9bd2e310 100644 --- a/chasm/tree_test.go +++ b/chasm/tree_test.go @@ -752,7 +752,7 @@ func (s *nodeSuite) TestDeserializeNode_ComponentAttributes() { s.IsType(&TestComponent{}, node.value) tc := node.value.(*TestComponent) s.Equal(tc.SubComponent1.Internal.node, node.children["SubComponent1"]) - s.Equal(tc.ComponentData.CreateRequestId, "component-data") + s.Equal("component-data", tc.ComponentData.CreateRequestId) s.Equal(valueStateSynced, node.valueState) s.Nil(tc.SubComponent1.Internal.value()) diff --git a/chasm/visibility_value_test.go b/chasm/visibility_value_test.go index fd6bb8d6feb..1bdd77c2efd 100644 --- a/chasm/visibility_value_test.go +++ b/chasm/visibility_value_test.go @@ -46,7 +46,7 @@ func TestVisibilityValue(t *testing.T) { var out bool err := payload.Decode(p, &out) require.NoError(t, err) - require.Equal(t, true, out) + require.True(t, out) require.True(t, v.Equal(VisibilityValueBool(true))) require.False(t, v.Equal(VisibilityValueBool(false))) diff --git a/common/archiver/filestore/query_parser.go b/common/archiver/filestore/query_parser.go index ad780e99e66..046b523fd0e 100644 --- a/common/archiver/filestore/query_parser.go +++ b/common/archiver/filestore/query_parser.go @@ -122,7 +122,7 @@ func (p *queryParser) convertComparisonExpr(compExpr *sqlparser.ComparisonExpr, parsedQuery.emptyResult = true return nil } - parsedQuery.workflowID = util.Ptr(val) + parsedQuery.workflowID = new(val) case RunID: val, err := sqlquery.ExtractStringValue(valStr) if err != nil { @@ -135,7 +135,7 @@ func (p *queryParser) convertComparisonExpr(compExpr *sqlparser.ComparisonExpr, parsedQuery.emptyResult = true return nil } - parsedQuery.runID = util.Ptr(val) + parsedQuery.runID = new(val) case WorkflowType: val, err := sqlquery.ExtractStringValue(valStr) if err != nil { @@ -148,7 +148,7 @@ func (p *queryParser) convertComparisonExpr(compExpr *sqlparser.ComparisonExpr, parsedQuery.emptyResult = true return nil } - parsedQuery.workflowTypeName = util.Ptr(val) + parsedQuery.workflowTypeName = new(val) case ExecutionStatus: val, err := sqlquery.ExtractStringValue(valStr) if err != nil { diff --git a/common/archiver/filestore/query_parser_test.go b/common/archiver/filestore/query_parser_test.go index 1b5c8ab607b..f5ba9ade94d 100644 --- a/common/archiver/filestore/query_parser_test.go +++ b/common/archiver/filestore/query_parser_test.go @@ -7,7 +7,6 @@ import ( "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" enumspb "go.temporal.io/api/enums/v1" - "go.temporal.io/server/common/util" ) type queryParserSuite struct { @@ -36,35 +35,35 @@ func (s *queryParserSuite) TestParseWorkflowID_RunID_WorkflowType() { query: "WorkflowId = \"random workflowID\"", expectErr: false, parsedQuery: &parsedQuery{ - workflowID: util.Ptr("random workflowID"), + workflowID: new("random workflowID"), }, }, { query: "WorkflowId = \"random workflowID\" and WorkflowId = \"random workflowID\"", expectErr: false, parsedQuery: &parsedQuery{ - workflowID: util.Ptr("random workflowID"), + workflowID: new("random workflowID"), }, }, { query: "RunId = \"random runID\"", expectErr: false, parsedQuery: &parsedQuery{ - runID: util.Ptr("random runID"), + runID: new("random runID"), }, }, { query: "WorkflowType = \"random typeName\"", expectErr: false, parsedQuery: &parsedQuery{ - workflowTypeName: util.Ptr("random typeName"), + workflowTypeName: new("random typeName"), }, }, { query: "WorkflowId = 'random workflowID'", expectErr: false, parsedQuery: &parsedQuery{ - workflowID: util.Ptr("random workflowID"), + workflowID: new("random workflowID"), }, }, { @@ -78,9 +77,9 @@ func (s *queryParserSuite) TestParseWorkflowID_RunID_WorkflowType() { query: "WorkflowType = 'random typeName' and (WorkflowId = \"random workflowID\" and RunId='random runID')", expectErr: false, parsedQuery: &parsedQuery{ - workflowID: util.Ptr("random workflowID"), - runID: util.Ptr("random runID"), - workflowTypeName: util.Ptr("random typeName"), + workflowID: new("random workflowID"), + runID: new("random runID"), + workflowTypeName: new("random typeName"), }, }, { @@ -131,49 +130,49 @@ func (s *queryParserSuite) TestParseCloseStatus() { query: "ExecutionStatus = \"Completed\"", expectErr: false, parsedQuery: &parsedQuery{ - status: toWorkflowExecutionStatusPtr(enumspb.WORKFLOW_EXECUTION_STATUS_COMPLETED), + status: new(enumspb.WORKFLOW_EXECUTION_STATUS_COMPLETED), }, }, { query: "ExecutionStatus = \"failed\"", expectErr: false, parsedQuery: &parsedQuery{ - status: toWorkflowExecutionStatusPtr(enumspb.WORKFLOW_EXECUTION_STATUS_FAILED), + status: new(enumspb.WORKFLOW_EXECUTION_STATUS_FAILED), }, }, { query: "ExecutionStatus = \"canceled\"", expectErr: false, parsedQuery: &parsedQuery{ - status: toWorkflowExecutionStatusPtr(enumspb.WORKFLOW_EXECUTION_STATUS_CANCELED), + status: new(enumspb.WORKFLOW_EXECUTION_STATUS_CANCELED), }, }, { query: "ExecutionStatus = \"terminated\"", expectErr: false, parsedQuery: &parsedQuery{ - status: toWorkflowExecutionStatusPtr(enumspb.WORKFLOW_EXECUTION_STATUS_TERMINATED), + status: new(enumspb.WORKFLOW_EXECUTION_STATUS_TERMINATED), }, }, { query: "ExecutionStatus = 'continuedasnew'", expectErr: false, parsedQuery: &parsedQuery{ - status: toWorkflowExecutionStatusPtr(enumspb.WORKFLOW_EXECUTION_STATUS_CONTINUED_AS_NEW), + status: new(enumspb.WORKFLOW_EXECUTION_STATUS_CONTINUED_AS_NEW), }, }, { query: "ExecutionStatus = 'TIMED_OUT'", expectErr: false, parsedQuery: &parsedQuery{ - status: toWorkflowExecutionStatusPtr(enumspb.WORKFLOW_EXECUTION_STATUS_TIMED_OUT), + status: new(enumspb.WORKFLOW_EXECUTION_STATUS_TIMED_OUT), }, }, { query: "ExecutionStatus = 'Failed' and ExecutionStatus = \"Failed\"", expectErr: false, parsedQuery: &parsedQuery{ - status: toWorkflowExecutionStatusPtr(enumspb.WORKFLOW_EXECUTION_STATUS_FAILED), + status: new(enumspb.WORKFLOW_EXECUTION_STATUS_FAILED), }, }, { @@ -203,7 +202,7 @@ func (s *queryParserSuite) TestParseCloseStatus() { query: "ExecutionStatus = 3", expectErr: false, parsedQuery: &parsedQuery{ - status: toWorkflowExecutionStatusPtr(enumspb.WORKFLOW_EXECUTION_STATUS_FAILED), + status: new(enumspb.WORKFLOW_EXECUTION_STATUS_FAILED), }, }, { @@ -221,7 +220,7 @@ func (s *queryParserSuite) TestParseCloseStatus() { s.NoError(err) s.Equal(tc.parsedQuery.emptyResult, parsedQuery.emptyResult) if !tc.parsedQuery.emptyResult { - s.EqualValues(tc.parsedQuery.status, parsedQuery.status) + s.Equal(tc.parsedQuery.status, parsedQuery.status) } } } @@ -305,7 +304,7 @@ func (s *queryParserSuite) TestParse() { parsedQuery: &parsedQuery{ earliestCloseTime: time.Time{}, latestCloseTime: time.Date(2019, 01, 01, 11, 11, 11, 0, time.UTC), - workflowID: util.Ptr("random workflowID"), + workflowID: new("random workflowID"), }, }, { @@ -314,8 +313,8 @@ func (s *queryParserSuite) TestParse() { parsedQuery: &parsedQuery{ earliestCloseTime: time.Unix(0, 2000).UTC(), latestCloseTime: time.Unix(0, 9999).UTC(), - runID: util.Ptr("random runID"), - status: toWorkflowExecutionStatusPtr(enumspb.WORKFLOW_EXECUTION_STATUS_FAILED), + runID: new("random runID"), + status: new(enumspb.WORKFLOW_EXECUTION_STATUS_FAILED), }, }, { diff --git a/common/archiver/filestore/util_test.go b/common/archiver/filestore/util_test.go index ff994157f50..aee87f8a6c7 100644 --- a/common/archiver/filestore/util_test.go +++ b/common/archiver/filestore/util_test.go @@ -147,7 +147,7 @@ func (s *UtilSuite) TestListFilesByPrefix() { } actualFileNames, err := listFilesByPrefix(dir, "file_") s.NoError(err) - s.Equal(len(expectedFileNames), len(actualFileNames)) + s.Len(actualFileNames, len(expectedFileNames)) } func (s *UtilSuite) TestEncodeDecodeHistoryBatches() { @@ -398,16 +398,16 @@ func (s *UtilSuite) TestSerializeDeserializeGetHistoryToken() { } serializedToken, err := serializeToken(token) - s.Nil(err) + s.NoError(err) deserializedToken, err := deserializeGetHistoryToken(serializedToken) - s.Nil(err) + s.NoError(err) s.Equal(token, deserializedToken) } func (s *UtilSuite) createFile(dir string, filename string) { err := os.WriteFile(filepath.Join(dir, filename), []byte("file contents"), testFileMode) - s.Nil(err) + s.NoError(err) } func (s *UtilSuite) assertFileExists(filepath string) { @@ -438,6 +438,7 @@ func (s *UtilSuite) assertCorrectFileMode(path string) { s.Equal(mode, info.Mode()) } +//go:fix inline func toWorkflowExecutionStatusPtr(in enumspb.WorkflowExecutionStatus) *enumspb.WorkflowExecutionStatus { - return &in + return new(in) } diff --git a/common/archiver/filestore/visibility_archiver_test.go b/common/archiver/filestore/visibility_archiver_test.go index 3c3311097a1..32af1c153a2 100644 --- a/common/archiver/filestore/visibility_archiver_test.go +++ b/common/archiver/filestore/visibility_archiver_test.go @@ -23,7 +23,6 @@ import ( "go.temporal.io/server/common/payload" "go.temporal.io/server/common/primitives/timestamp" "go.temporal.io/server/common/searchattribute" - "go.temporal.io/server/common/util" "go.temporal.io/server/tests/testutils" "go.uber.org/mock/gomock" "google.golang.org/protobuf/types/known/timestamppb" @@ -215,7 +214,7 @@ func (s *visibilityArchiverSuite) TestMatchQuery() { query: &parsedQuery{ earliestCloseTime: time.Unix(0, 1000), latestCloseTime: time.Unix(0, 12345), - workflowID: util.Ptr("random workflowID"), + workflowID: new("random workflowID"), }, record: &archiverspb.VisibilityRecord{ CloseTime: timestamp.UnixOrZeroTimePtr(2000), @@ -226,8 +225,8 @@ func (s *visibilityArchiverSuite) TestMatchQuery() { query: &parsedQuery{ earliestCloseTime: time.Unix(0, 1000), latestCloseTime: time.Unix(0, 12345), - workflowID: util.Ptr("random workflowID"), - runID: util.Ptr("random runID"), + workflowID: new("random workflowID"), + runID: new("random runID"), }, record: &archiverspb.VisibilityRecord{ CloseTime: timestamp.UnixOrZeroTimePtr(12345), @@ -241,7 +240,7 @@ func (s *visibilityArchiverSuite) TestMatchQuery() { query: &parsedQuery{ earliestCloseTime: time.Unix(0, 1000), latestCloseTime: time.Unix(0, 12345), - workflowTypeName: util.Ptr("some random type name"), + workflowTypeName: new("some random type name"), }, record: &archiverspb.VisibilityRecord{ CloseTime: timestamp.UnixOrZeroTimePtr(12345), @@ -252,8 +251,8 @@ func (s *visibilityArchiverSuite) TestMatchQuery() { query: &parsedQuery{ earliestCloseTime: time.Unix(0, 1000), latestCloseTime: time.Unix(0, 12345), - workflowTypeName: util.Ptr("some random type name"), - status: toWorkflowExecutionStatusPtr(enumspb.WORKFLOW_EXECUTION_STATUS_CONTINUED_AS_NEW), + workflowTypeName: new("some random type name"), + status: new(enumspb.WORKFLOW_EXECUTION_STATUS_CONTINUED_AS_NEW), }, record: &archiverspb.VisibilityRecord{ CloseTime: timestamp.UnixOrZeroTimePtr(12345), @@ -388,7 +387,7 @@ func (s *visibilityArchiverSuite) TestQuery_Success_NoNextPageToken() { mockParser.EXPECT().Parse(gomock.Any()).Return(&parsedQuery{ earliestCloseTime: time.Unix(0, 1), latestCloseTime: time.Unix(0, 10001), - workflowID: util.Ptr(testWorkflowID), + workflowID: new(testWorkflowID), }, nil) visibilityArchiver.queryParser = mockParser request := &archiver.QueryVisibilityRequest{ @@ -414,7 +413,7 @@ func (s *visibilityArchiverSuite) TestQuery_Success_SmallPageSize() { mockParser.EXPECT().Parse(gomock.Any()).Return(&parsedQuery{ earliestCloseTime: time.Unix(0, 1), latestCloseTime: time.Unix(0, 10001), - status: toWorkflowExecutionStatusPtr(enumspb.WORKFLOW_EXECUTION_STATUS_FAILED), + status: new(enumspb.WORKFLOW_EXECUTION_STATUS_FAILED), }, nil).AnyTimes() visibilityArchiver.queryParser = mockParser request := &archiver.QueryVisibilityRequest{ @@ -455,7 +454,7 @@ func (s *visibilityArchiverSuite) TestArchiveAndQuery() { mockParser.EXPECT().Parse(gomock.Any()).Return(&parsedQuery{ earliestCloseTime: time.Unix(0, 10), latestCloseTime: time.Unix(0, 10001), - status: toWorkflowExecutionStatusPtr(enumspb.WORKFLOW_EXECUTION_STATUS_FAILED), + status: new(enumspb.WORKFLOW_EXECUTION_STATUS_FAILED), }, nil).AnyTimes() visibilityArchiver.queryParser = mockParser URI, err := archiver.NewURI("file://" + dir) @@ -495,7 +494,7 @@ func (s *visibilityArchiverSuite) TestQuery_EmptyQuery_InvalidNamespace() { mockParser.EXPECT().Parse(gomock.Any()).Return(&parsedQuery{ earliestCloseTime: time.Unix(0, 10), latestCloseTime: time.Unix(0, 10001), - status: toWorkflowExecutionStatusPtr(enumspb.WORKFLOW_EXECUTION_STATUS_FAILED), + status: new(enumspb.WORKFLOW_EXECUTION_STATUS_FAILED), }, nil).AnyTimes() visibilityArchiver.queryParser = mockParser req := &archiver.QueryVisibilityRequest{ diff --git a/common/archiver/gcloud/connector/client_test.go b/common/archiver/gcloud/connector/client_test.go index 10c32a9dfc4..87278fccf8c 100644 --- a/common/archiver/gcloud/connector/client_test.go +++ b/common/archiver/gcloud/connector/client_test.go @@ -240,7 +240,7 @@ func (s *clientSuite) TestQuery() { s.Require().NoError(err) fileNames, err = storageWrapper.Query(ctx, URI, "7478875943689868082123907395549832634615673687049942026838") s.Require().NoError(err) - s.Equal(strings.Join(fileNames, ", "), "fileName_01") + s.Equal("fileName_01", strings.Join(fileNames, ", ")) } func (s *clientSuite) TestQueryWithFilter() { @@ -277,7 +277,7 @@ func (s *clientSuite) TestQueryWithFilter() { fileNames, _, _, err = storageWrapper.QueryWithFilters(ctx, URI, "closeTimeout_2020-02-27T09:42:28Z", 0, 0, []connector.Precondition{newWorkflowIDPrecondition("4418294404690464320")}) s.Require().NoError(err) - s.Equal(strings.Join(fileNames, ", "), "closeTimeout_2020-02-27T09:42:28Z_12851121011173788097_4418294404690464320_15619178330501475177.visibility") + s.Equal("closeTimeout_2020-02-27T09:42:28Z_12851121011173788097_4418294404690464320_15619178330501475177.visibility", strings.Join(fileNames, ", ")) } func newWorkflowIDPrecondition(workflowID string) connector.Precondition { diff --git a/common/archiver/gcloud/history_archiver_test.go b/common/archiver/gcloud/history_archiver_test.go index 237118461f3..cc2e653033c 100644 --- a/common/archiver/gcloud/history_archiver_test.go +++ b/common/archiver/gcloud/history_archiver_test.go @@ -18,7 +18,6 @@ import ( "go.temporal.io/server/common/log" "go.temporal.io/server/common/metrics" "go.temporal.io/server/common/persistence" - "go.temporal.io/server/common/util" "go.uber.org/mock/gomock" "google.golang.org/protobuf/types/known/timestamppb" ) @@ -489,7 +488,7 @@ func (h *historyArchiverSuite) TestGet_Success_UseProvidedVersion() { WorkflowID: testWorkflowID, RunID: testRunID, PageSize: testPageSize, - CloseFailoverVersion: util.Ptr(int64(-25)), + CloseFailoverVersion: new(int64(-25)), } response, err := historyArchiver.Get(ctx, h.testArchivalURI, request) diff --git a/common/archiver/gcloud/query_parser.go b/common/archiver/gcloud/query_parser.go index d6625dd317e..d589800f882 100644 --- a/common/archiver/gcloud/query_parser.go +++ b/common/archiver/gcloud/query_parser.go @@ -9,7 +9,6 @@ import ( "github.com/temporalio/sqlparser" "go.temporal.io/server/common/sqlquery" - "go.temporal.io/server/common/util" ) type ( @@ -130,7 +129,7 @@ func (p *queryParser) convertComparisonExpr(compExpr *sqlparser.ComparisonExpr, parsedQuery.emptyResult = true return nil } - parsedQuery.workflowID = util.Ptr(val) + parsedQuery.workflowID = new(val) case RunID: val, err := sqlquery.ExtractStringValue(valStr) if err != nil { @@ -143,7 +142,7 @@ func (p *queryParser) convertComparisonExpr(compExpr *sqlparser.ComparisonExpr, parsedQuery.emptyResult = true return nil } - parsedQuery.runID = util.Ptr(val) + parsedQuery.runID = new(val) case CloseTime: closeTime, err := sqlquery.ConvertToTime(valStr) if err != nil { @@ -175,7 +174,7 @@ func (p *queryParser) convertComparisonExpr(compExpr *sqlparser.ComparisonExpr, parsedQuery.emptyResult = true return nil } - parsedQuery.workflowType = util.Ptr(val) + parsedQuery.workflowType = new(val) case SearchPrecision: val, err := sqlquery.ExtractStringValue(valStr) if err != nil { @@ -195,7 +194,7 @@ func (p *queryParser) convertComparisonExpr(compExpr *sqlparser.ComparisonExpr, default: return fmt.Errorf("invalid value for %s: %s", SearchPrecision, val) } - parsedQuery.searchPrecision = util.Ptr(val) + parsedQuery.searchPrecision = new(val) default: return fmt.Errorf("unknown filter name: %s", colNameStr) } diff --git a/common/archiver/gcloud/util_test.go b/common/archiver/gcloud/util_test.go index 26f335d182e..232562c8e60 100644 --- a/common/archiver/gcloud/util_test.go +++ b/common/archiver/gcloud/util_test.go @@ -92,10 +92,10 @@ func (s *utilSuite) TestSerializeDeserializeGetHistoryToken() { } serializedToken, err := serializeToken(token) - s.Nil(err) + s.NoError(err) deserializedToken, err := deserializeGetHistoryToken(serializedToken) - s.Nil(err) + s.NoError(err) s.Equal(token, deserializedToken) } @@ -144,7 +144,7 @@ func (s *utilSuite) TestWorkflowIdPrecondition() { } for _, testCase := range testCases { - s.Equal(newWorkflowIDPrecondition(testCase.workflowID)(testCase.fileName), testCase.expectedResult) + s.Equal(testCase.expectedResult, newWorkflowIDPrecondition(testCase.workflowID)(testCase.fileName)) } } @@ -177,7 +177,7 @@ func (s *utilSuite) TestRunIdPrecondition() { } for _, testCase := range testCases { - s.Equal(newRunIDPrecondition(testCase.runID)(testCase.fileName), testCase.expectedResult) + s.Equal(testCase.expectedResult, newRunIDPrecondition(testCase.runID)(testCase.fileName)) } } @@ -214,7 +214,7 @@ func (s *utilSuite) TestWorkflowTypeNamePrecondition() { } for _, testCase := range testCases { - s.Equal(newWorkflowTypeNamePrecondition(testCase.workflowTypeName)(testCase.fileName), testCase.expectedResult) + s.Equal(testCase.expectedResult, newWorkflowTypeNamePrecondition(testCase.workflowTypeName)(testCase.fileName)) } } diff --git a/common/archiver/gcloud/visibility_archiver_test.go b/common/archiver/gcloud/visibility_archiver_test.go index 3cdbeab59a3..419582aa07c 100644 --- a/common/archiver/gcloud/visibility_archiver_test.go +++ b/common/archiver/gcloud/visibility_archiver_test.go @@ -19,7 +19,6 @@ import ( "go.temporal.io/server/common/primitives/timestamp" "go.temporal.io/server/common/searchattribute" "go.temporal.io/server/common/testing/protorequire" - "go.temporal.io/server/common/util" "go.uber.org/mock/gomock" ) @@ -244,9 +243,9 @@ func (s *visibilityArchiverSuite) TestQuery_Success_NoNextPageToken() { mockParser.EXPECT().Parse(gomock.Any()).Return(&parsedQuery{ closeTime: closeTime, searchPrecision: &dayPrecision, - workflowType: util.Ptr("MobileOnlyWorkflow::processMobileOnly"), - workflowID: util.Ptr(testWorkflowID), - runID: util.Ptr(testRunID), + workflowType: new("MobileOnlyWorkflow::processMobileOnly"), + workflowID: new(testWorkflowID), + runID: new(testRunID), }, nil) visibilityArchiver.queryParser = mockParser request := &archiver.QueryVisibilityRequest{ @@ -287,9 +286,9 @@ func (s *visibilityArchiverSuite) TestQuery_Success_SmallPageSize() { mockParser.EXPECT().Parse(gomock.Any()).Return(&parsedQuery{ closeTime: closeTime, searchPrecision: &dayPrecision, - workflowType: util.Ptr("MobileOnlyWorkflow::processMobileOnly"), - workflowID: util.Ptr(testWorkflowID), - runID: util.Ptr(testRunID), + workflowType: new("MobileOnlyWorkflow::processMobileOnly"), + workflowID: new(testWorkflowID), + runID: new(testRunID), }, nil).AnyTimes() visibilityArchiver.queryParser = mockParser request := &archiver.QueryVisibilityRequest{ diff --git a/common/archiver/history_iterator_test.go b/common/archiver/history_iterator_test.go index be1e86f1ab6..2765c546a5d 100644 --- a/common/archiver/history_iterator_test.go +++ b/common/archiver/history_iterator_test.go @@ -99,7 +99,7 @@ func (s *HistoryIteratorSuite) TestReadHistory_Success_EventsV2() { itr := s.constructTestHistoryIterator(s.mockExecutionMgr, testDefaultTargetHistoryBlobSize, nil) history, err := itr.readHistory(context.Background(), common.FirstEventID) s.NoError(err) - s.Len(history, 0) + s.Empty(history) } // In the following test: @@ -325,7 +325,7 @@ func (s *HistoryIteratorSuite) TestNext_Fail_IteratorDepleted() { // set target history batches such that a single call to next will read all of history itr := s.constructTestHistoryIterator(s.mockExecutionMgr, 16*testDefaultHistoryEventSize, nil) blob, err := itr.Next(context.Background()) - s.Nil(err) + s.NoError(err) expectedIteratorState := historyIteratorState{ // when iteration is finished page token is not advanced @@ -561,7 +561,7 @@ func (s *HistoryIteratorSuite) TestNext_Success_SameHistoryDifferentPage() { s.NoError(err) s.Equal(history1.Header, history2.Header) - s.Equal(len(history1.Body), len(history2.Body)) + s.Len(history2.Body, len(history1.Body)) s.Equal(expectedFirstEventID[i], history1.Body[0].Events[0].GetEventId()) s.Equal(expectedFirstEventID[i], history2.Body[0].Events[0].GetEventId()) } diff --git a/common/archiver/s3store/query_parser.go b/common/archiver/s3store/query_parser.go index 1e8843ef8b4..3be851c5e6e 100644 --- a/common/archiver/s3store/query_parser.go +++ b/common/archiver/s3store/query_parser.go @@ -9,7 +9,6 @@ import ( "github.com/temporalio/sqlparser" "go.temporal.io/server/common/sqlquery" - "go.temporal.io/server/common/util" ) type ( @@ -133,7 +132,7 @@ func (p *queryParser) convertComparisonExpr(compExpr *sqlparser.ComparisonExpr, if parsedQuery.workflowTypeName != nil { return fmt.Errorf("can not query %s multiple times", WorkflowTypeName) } - parsedQuery.workflowTypeName = util.Ptr(val) + parsedQuery.workflowTypeName = new(val) case WorkflowID: val, err := sqlquery.ExtractStringValue(valStr) if err != nil { @@ -145,7 +144,7 @@ func (p *queryParser) convertComparisonExpr(compExpr *sqlparser.ComparisonExpr, if parsedQuery.workflowID != nil { return fmt.Errorf("can not query %s multiple times", WorkflowID) } - parsedQuery.workflowID = util.Ptr(val) + parsedQuery.workflowID = new(val) case CloseTime: timestamp, err := sqlquery.ConvertToTime(valStr) if err != nil { @@ -183,7 +182,7 @@ func (p *queryParser) convertComparisonExpr(compExpr *sqlparser.ComparisonExpr, default: return fmt.Errorf("invalid value for %s: %s", SearchPrecision, val) } - parsedQuery.searchPrecision = util.Ptr(val) + parsedQuery.searchPrecision = new(val) default: return fmt.Errorf("unknown filter name: %s", colNameStr) diff --git a/common/archiver/s3store/query_parser_test.go b/common/archiver/s3store/query_parser_test.go index cba343416bc..157dcbe267e 100644 --- a/common/archiver/s3store/query_parser_test.go +++ b/common/archiver/s3store/query_parser_test.go @@ -6,7 +6,6 @@ import ( "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" - "go.temporal.io/server/common/util" ) type queryParserSuite struct { @@ -35,14 +34,14 @@ func (s *queryParserSuite) TestParseWorkflowIDAndWorkflowTypeName() { query: "WorkflowId = \"random workflowID\"", expectErr: false, parsedQuery: &parsedQuery{ - workflowID: util.Ptr("random workflowID"), + workflowID: new("random workflowID"), }, }, { query: "WorkflowTypeName = \"random workflowTypeName\"", expectErr: false, parsedQuery: &parsedQuery{ - workflowTypeName: util.Ptr("random workflowTypeName"), + workflowTypeName: new("random workflowTypeName"), }, }, { @@ -61,14 +60,14 @@ func (s *queryParserSuite) TestParseWorkflowIDAndWorkflowTypeName() { query: "WorkflowId = 'random workflowID'", expectErr: false, parsedQuery: &parsedQuery{ - workflowID: util.Ptr("random workflowID"), + workflowID: new("random workflowID"), }, }, { query: "(WorkflowId = \"random workflowID\")", expectErr: false, parsedQuery: &parsedQuery{ - workflowID: util.Ptr("random workflowID"), + workflowID: new("random workflowID"), }, }, { @@ -117,28 +116,28 @@ func (s *queryParserSuite) TestParsePrecision() { query: commonQueryPart + "CloseTime = 1000 and SearchPrecision = 'Day'", expectErr: false, parsedQuery: &parsedQuery{ - searchPrecision: util.Ptr(PrecisionDay), + searchPrecision: new(PrecisionDay), }, }, { query: commonQueryPart + "CloseTime = 1000 and SearchPrecision = 'Hour'", expectErr: false, parsedQuery: &parsedQuery{ - searchPrecision: util.Ptr(PrecisionHour), + searchPrecision: new(PrecisionHour), }, }, { query: commonQueryPart + "CloseTime = 1000 and SearchPrecision = 'Minute'", expectErr: false, parsedQuery: &parsedQuery{ - searchPrecision: util.Ptr(PrecisionMinute), + searchPrecision: new(PrecisionMinute), }, }, { query: commonQueryPart + "StartTime = 1000 and SearchPrecision = 'Second'", expectErr: false, parsedQuery: &parsedQuery{ - searchPrecision: util.Ptr(PrecisionSecond), + searchPrecision: new(PrecisionSecond), }, }, { @@ -174,14 +173,14 @@ func (s *queryParserSuite) TestParseCloseTime() { query: commonQueryPart + "CloseTime = 1000", expectErr: false, parsedQuery: &parsedQuery{ - closeTime: util.Ptr(time.Unix(0, 1000).UTC()), + closeTime: new(time.Unix(0, 1000).UTC()), }, }, { query: commonQueryPart + "CloseTime = \"2019-01-01T11:11:11Z\"", expectErr: false, parsedQuery: &parsedQuery{ - closeTime: util.Ptr(time.Date(2019, 1, 1, 11, 11, 11, 0, time.UTC)), + closeTime: new(time.Date(2019, 1, 1, 11, 11, 11, 0, time.UTC)), }, }, { @@ -218,14 +217,14 @@ func (s *queryParserSuite) TestParseStartTime() { query: commonQueryPart + "StartTime = 1000", expectErr: false, parsedQuery: &parsedQuery{ - startTime: util.Ptr(time.Unix(0, 1000)), + startTime: new(time.Unix(0, 1000)), }, }, { query: commonQueryPart + "StartTime = \"2019-01-01T11:11:11Z\"", expectErr: false, parsedQuery: &parsedQuery{ - startTime: util.Ptr(time.Date(2019, 1, 1, 11, 11, 11, 0, time.UTC)), + startTime: new(time.Date(2019, 1, 1, 11, 11, 11, 0, time.UTC)), }, }, { diff --git a/common/archiver/s3store/util_test.go b/common/archiver/s3store/util_test.go index 34d5a629254..9b5b831c8d4 100644 --- a/common/archiver/s3store/util_test.go +++ b/common/archiver/s3store/util_test.go @@ -10,11 +10,10 @@ func TestConstructVisibilitySearchPrefix(t *testing.T) { t.Parallel() assert.Equal( t, - constructVisibilitySearchPrefix( + "path/namespaceID/visibility", constructVisibilitySearchPrefix( "path", "namespaceID", ), - "path/namespaceID/visibility", ) } @@ -22,13 +21,12 @@ func TestConstructIndexedVisibilitySearchPrefix(t *testing.T) { t.Parallel() assert.Equal( t, - constructIndexedVisibilitySearchPrefix( + "path/namespaceID/visibility/primaryIndexKey/primaryIndexValue/secondaryIndexType", constructIndexedVisibilitySearchPrefix( "/path", "namespaceID", "primaryIndexKey", "primaryIndexValue", "secondaryIndexType", ), - "path/namespaceID/visibility/primaryIndexKey/primaryIndexValue/secondaryIndexType", ) } diff --git a/common/persistence/cassandra/errors.go b/common/persistence/cassandra/errors.go index 058cafc5919..376fbc93d4e 100644 --- a/common/persistence/cassandra/errors.go +++ b/common/persistence/cassandra/errors.go @@ -16,10 +16,10 @@ import ( var ( errorPriority = map[reflect.Type]int{ - reflect.TypeOf(&p.ShardOwnershipLostError{}): 0, - reflect.TypeOf(&p.CurrentWorkflowConditionFailedError{}): 1, - reflect.TypeOf(&p.WorkflowConditionFailedError{}): 2, - reflect.TypeOf(&p.ConditionFailedError{}): 3, + reflect.TypeFor[*p.ShardOwnershipLostError](): 0, + reflect.TypeFor[*p.CurrentWorkflowConditionFailedError](): 1, + reflect.TypeFor[*p.WorkflowConditionFailedError](): 2, + reflect.TypeFor[*p.ConditionFailedError](): 3, } errorDefaultPriority = math.MaxInt64 diff --git a/common/persistence/cassandra/matching_task_store.go b/common/persistence/cassandra/matching_task_store.go index 93e34f47c36..e9f310a14d9 100644 --- a/common/persistence/cassandra/matching_task_store.go +++ b/common/persistence/cassandra/matching_task_store.go @@ -43,13 +43,10 @@ func getTaskTTL(expireTime *timestamppb.Timestamp) int64 { return 0 } - expiryTtl := convert.Int64Ceil(time.Until(expireTime.AsTime()).Seconds()) - // 0 means no ttl, we dont want that. // Todo: Come back and correctly ignore expired in-memory tasks before persisting - if expiryTtl < 1 { - expiryTtl = 1 - } + expiryTTL := max( + convert.Int64Ceil(time.Until(expireTime.AsTime()).Seconds()), 1) - return expiryTtl + return expiryTTL } diff --git a/common/persistence/cassandra/matching_task_store_queue.go b/common/persistence/cassandra/matching_task_store_queue.go index b23b540ae25..ce3960a62df 100644 --- a/common/persistence/cassandra/matching_task_store_queue.go +++ b/common/persistence/cassandra/matching_task_store_queue.go @@ -191,10 +191,7 @@ func (d *taskQueueStore) UpdateTaskQueue( if request.ExpiryTime == nil { return nil, serviceerror.NewInternal("ExpiryTime cannot be nil for sticky task queue") } - expiryTTL := convert.Int64Ceil(time.Until(timestamp.TimeValue(request.ExpiryTime)).Seconds()) - if expiryTTL >= maxCassandraTTL { - expiryTTL = maxCassandraTTL - } + expiryTTL := min(convert.Int64Ceil(time.Until(timestamp.TimeValue(request.ExpiryTime)).Seconds()), maxCassandraTTL) batch := d.Session.NewBatch(gocql.LoggedBatch).WithContext(ctx) batch.Query(switchTasksTable(templateUpdateTaskQueueQueryWithTTLPart1, d.version), diff --git a/common/persistence/client/quotas_test.go b/common/persistence/client/quotas_test.go index 874fdcf4413..6063089b398 100644 --- a/common/persistence/client/quotas_test.go +++ b/common/persistence/client/quotas_test.go @@ -62,7 +62,7 @@ func (s *quotasSuite) TestBackgroundTypeAPIPriorityOverrideMapping() { func (s *quotasSuite) TestRequestPrioritiesOrdered() { for idx := range RequestPrioritiesOrdered[1:] { - s.True(RequestPrioritiesOrdered[idx] < RequestPrioritiesOrdered[idx+1]) + s.Less(RequestPrioritiesOrdered[idx], RequestPrioritiesOrdered[idx+1]) } } diff --git a/common/persistence/history_node_util_test.go b/common/persistence/history_node_util_test.go index af82a63c149..10cd187c72d 100644 --- a/common/persistence/history_node_util_test.go +++ b/common/persistence/history_node_util_test.go @@ -65,7 +65,7 @@ func (s *historyNodeMetadataSuite) TestIndexNodeIDToNode() { for nodeID := common.FirstEventID; nodeID < int64(numNodeIDs+1); nodeID++ { nodes := nodeIDToNode[int64(nodeID)] for i := 1; i < nodePerNodeID; i++ { - s.True(nodes[i-1].transactionID >= nodes[i].transactionID) + s.GreaterOrEqual(nodes[i-1].transactionID, nodes[i].transactionID) } } } diff --git a/common/persistence/nosql/nosqlplugin/cassandra/translator/fixed_address_translator_test.go b/common/persistence/nosql/nosqlplugin/cassandra/translator/fixed_address_translator_test.go index 1a6481cd60f..44e3bcf26f5 100644 --- a/common/persistence/nosql/nosqlplugin/cassandra/translator/fixed_address_translator_test.go +++ b/common/persistence/nosql/nosqlplugin/cassandra/translator/fixed_address_translator_test.go @@ -60,5 +60,5 @@ func (s *fixedTranslatorPluginTestSuite) TestFixedAddressTranslator() { s.Equal(ipToExpect, translatedHost) s.Equal(6001, translatedPort) - s.Equal(nil, err) + s.NoError(err) } diff --git a/common/persistence/persistence-tests/cluster_metadata_manager.go b/common/persistence/persistence-tests/cluster_metadata_manager.go index a5aba91d026..6dfef45a4ff 100644 --- a/common/persistence/persistence-tests/cluster_metadata_manager.go +++ b/common/persistence/persistence-tests/cluster_metadata_manager.go @@ -391,7 +391,7 @@ func (s *ClusterMetadataManagerSuite) TestInitImmutableMetadataReadWrite() { getResp, err = s.ClusterMetadataManager.GetClusterMetadata(s.ctx, &p.GetClusterMetadataRequest{ClusterName: clusterNameToPersist}) s.Nil(err) s.NotNil(getResp) - s.Equal("1.0", getResp.ClusterMetadata.VersionInfo.Current.Version) + s.Equal("1.0", getResp.VersionInfo.Current.Version) // Case 6 - Delete Cluster Metadata err = s.ClusterMetadataManager.DeleteClusterMetadata(s.ctx, &p.DeleteClusterMetadataRequest{ClusterName: clusterNameToPersist}) @@ -456,7 +456,7 @@ func (s *ClusterMetadataManagerSuite) TestInitImmutableMetadataReadWrite() { // Fetch the persisted values getResp, err = s.ClusterMetadataManager.GetClusterMetadata(s.ctx, &p.GetClusterMetadataRequest{ClusterName: clusterNameToPersist}) s.NoError(err) - s.Equal("2.0", getResp.ClusterMetadata.VersionInfo.Current.Version) + s.Equal("2.0", getResp.VersionInfo.Current.Version) // Case 11 - List _, err = s.ClusterMetadataManager.SaveClusterMetadata( diff --git a/common/persistence/persistence-tests/history_v2_persistence.go b/common/persistence/persistence-tests/history_v2_persistence.go index e306a336bab..84d7bf86e50 100644 --- a/common/persistence/persistence-tests/history_v2_persistence.go +++ b/common/persistence/persistence-tests/history_v2_persistence.go @@ -80,12 +80,10 @@ func (s *HistoryV2PersistenceSuite) TestGenUUIDs() { m := sync.Map{} concurrency := 1000 for range concurrency { - wg.Add(1) - go func() { - defer wg.Done() + wg.Go(func() { u := uuid.NewString() m.Store(u, true) - }() + }) } wg.Wait() cnt := 0 diff --git a/common/persistence/query_util_test.go b/common/persistence/query_util_test.go index 0d7d0dbb845..7f17fc79801 100644 --- a/common/persistence/query_util_test.go +++ b/common/persistence/query_util_test.go @@ -61,7 +61,7 @@ func (s *queryUtilSuite) TestLoadAndSplitQueryFromReaders() { ` statements, err := LoadAndSplitQueryFromReaders([]io.Reader{bytes.NewBufferString(input)}) s.NoError(err) - s.Equal(4, len(statements)) + s.Len(statements, 4) s.Equal( `DO LANGUAGE 'plpgsql' $$ BEGIN diff --git a/common/persistence/serialization/task_serializers.go b/common/persistence/serialization/task_serializers.go index 73255e61418..1b4bd4ae906 100644 --- a/common/persistence/serialization/task_serializers.go +++ b/common/persistence/serialization/task_serializers.go @@ -46,9 +46,9 @@ func serializeTransferTask( func transferChasmTaskToProto(task *tasks.ChasmTask) *persistencespb.TransferTaskInfo { return &persistencespb.TransferTaskInfo{ - NamespaceId: task.WorkflowKey.NamespaceID, - WorkflowId: task.WorkflowKey.WorkflowID, - RunId: task.WorkflowKey.RunID, + NamespaceId: task.NamespaceID, + WorkflowId: task.WorkflowID, + RunId: task.RunID, TaskId: task.TaskID, TaskType: task.GetType(), VisibilityTime: timestamppb.New(task.VisibilityTimestamp), @@ -411,11 +411,11 @@ func transferActivityTaskToProto( activityTask *tasks.ActivityTask, ) *persistencespb.TransferTaskInfo { return &persistencespb.TransferTaskInfo{ - NamespaceId: activityTask.WorkflowKey.NamespaceID, - WorkflowId: activityTask.WorkflowKey.WorkflowID, - RunId: activityTask.WorkflowKey.RunID, + NamespaceId: activityTask.NamespaceID, + WorkflowId: activityTask.WorkflowID, + RunId: activityTask.RunID, TaskType: enumsspb.TASK_TYPE_TRANSFER_ACTIVITY_TASK, - TargetNamespaceId: activityTask.WorkflowKey.NamespaceID, + TargetNamespaceId: activityTask.NamespaceID, TargetWorkflowId: "", TargetRunId: "", TargetChildWorkflowOnly: false, @@ -450,9 +450,9 @@ func transferWorkflowTaskToProto( workflowTask *tasks.WorkflowTask, ) *persistencespb.TransferTaskInfo { return &persistencespb.TransferTaskInfo{ - NamespaceId: workflowTask.WorkflowKey.NamespaceID, - WorkflowId: workflowTask.WorkflowKey.WorkflowID, - RunId: workflowTask.WorkflowKey.RunID, + NamespaceId: workflowTask.NamespaceID, + WorkflowId: workflowTask.WorkflowID, + RunId: workflowTask.RunID, TaskType: enumsspb.TASK_TYPE_TRANSFER_WORKFLOW_TASK, TargetNamespaceId: workflowTask.NamespaceID, TargetWorkflowId: "", @@ -489,9 +489,9 @@ func transferRequestCancelTaskToProto( requestCancelTask *tasks.CancelExecutionTask, ) *persistencespb.TransferTaskInfo { return &persistencespb.TransferTaskInfo{ - NamespaceId: requestCancelTask.WorkflowKey.NamespaceID, - WorkflowId: requestCancelTask.WorkflowKey.WorkflowID, - RunId: requestCancelTask.WorkflowKey.RunID, + NamespaceId: requestCancelTask.NamespaceID, + WorkflowId: requestCancelTask.WorkflowID, + RunId: requestCancelTask.RunID, TaskType: enumsspb.TASK_TYPE_TRANSFER_CANCEL_EXECUTION, TargetNamespaceId: requestCancelTask.TargetNamespaceID, TargetWorkflowId: requestCancelTask.TargetWorkflowID, @@ -529,9 +529,9 @@ func transferSignalTaskToProto( signalTask *tasks.SignalExecutionTask, ) *persistencespb.TransferTaskInfo { return &persistencespb.TransferTaskInfo{ - NamespaceId: signalTask.WorkflowKey.NamespaceID, - WorkflowId: signalTask.WorkflowKey.WorkflowID, - RunId: signalTask.WorkflowKey.RunID, + NamespaceId: signalTask.NamespaceID, + WorkflowId: signalTask.WorkflowID, + RunId: signalTask.RunID, TaskType: enumsspb.TASK_TYPE_TRANSFER_SIGNAL_EXECUTION, TargetNamespaceId: signalTask.TargetNamespaceID, TargetWorkflowId: signalTask.TargetWorkflowID, @@ -569,9 +569,9 @@ func transferChildWorkflowTaskToProto( childWorkflowTask *tasks.StartChildExecutionTask, ) *persistencespb.TransferTaskInfo { return &persistencespb.TransferTaskInfo{ - NamespaceId: childWorkflowTask.WorkflowKey.NamespaceID, - WorkflowId: childWorkflowTask.WorkflowKey.WorkflowID, - RunId: childWorkflowTask.WorkflowKey.RunID, + NamespaceId: childWorkflowTask.NamespaceID, + WorkflowId: childWorkflowTask.WorkflowID, + RunId: childWorkflowTask.RunID, TaskType: enumsspb.TASK_TYPE_TRANSFER_START_CHILD_EXECUTION, TargetNamespaceId: childWorkflowTask.TargetNamespaceID, TargetWorkflowId: childWorkflowTask.TargetWorkflowID, @@ -607,9 +607,9 @@ func transferCloseTaskToProto( closeTask *tasks.CloseExecutionTask, ) *persistencespb.TransferTaskInfo { return &persistencespb.TransferTaskInfo{ - NamespaceId: closeTask.WorkflowKey.NamespaceID, - WorkflowId: closeTask.WorkflowKey.WorkflowID, - RunId: closeTask.WorkflowKey.RunID, + NamespaceId: closeTask.NamespaceID, + WorkflowId: closeTask.WorkflowID, + RunId: closeTask.RunID, TaskType: enumsspb.TASK_TYPE_TRANSFER_CLOSE_EXECUTION, TargetNamespaceId: "", TargetWorkflowId: "", @@ -653,9 +653,9 @@ func transferResetTaskToProto( resetTask *tasks.ResetWorkflowTask, ) *persistencespb.TransferTaskInfo { return &persistencespb.TransferTaskInfo{ - NamespaceId: resetTask.WorkflowKey.NamespaceID, - WorkflowId: resetTask.WorkflowKey.WorkflowID, - RunId: resetTask.WorkflowKey.RunID, + NamespaceId: resetTask.NamespaceID, + WorkflowId: resetTask.WorkflowID, + RunId: resetTask.RunID, TaskType: enumsspb.TASK_TYPE_TRANSFER_RESET_WORKFLOW, TargetNamespaceId: "", TargetWorkflowId: "", @@ -688,9 +688,9 @@ func transferDeleteExecutionTaskToProto( deleteExecutionTask *tasks.DeleteExecutionTask, ) *persistencespb.TransferTaskInfo { return &persistencespb.TransferTaskInfo{ - NamespaceId: deleteExecutionTask.WorkflowKey.NamespaceID, - WorkflowId: deleteExecutionTask.WorkflowKey.WorkflowID, - RunId: deleteExecutionTask.WorkflowKey.RunID, + NamespaceId: deleteExecutionTask.NamespaceID, + WorkflowId: deleteExecutionTask.WorkflowID, + RunId: deleteExecutionTask.RunID, TaskType: enumsspb.TASK_TYPE_TRANSFER_DELETE_EXECUTION, TaskId: deleteExecutionTask.TaskID, VisibilityTime: timestamppb.New(deleteExecutionTask.VisibilityTimestamp), @@ -723,9 +723,9 @@ func timerWorkflowTaskToProto( workflowTimer *tasks.WorkflowTaskTimeoutTask, ) *persistencespb.TimerTaskInfo { return &persistencespb.TimerTaskInfo{ - NamespaceId: workflowTimer.WorkflowKey.NamespaceID, - WorkflowId: workflowTimer.WorkflowKey.WorkflowID, - RunId: workflowTimer.WorkflowKey.RunID, + NamespaceId: workflowTimer.NamespaceID, + WorkflowId: workflowTimer.WorkflowID, + RunId: workflowTimer.RunID, TaskType: enumsspb.TASK_TYPE_WORKFLOW_TASK_TIMEOUT, TimeoutType: workflowTimer.TimeoutType, WorkflowBackoffType: enumsspb.WORKFLOW_BACKOFF_TYPE_UNSPECIFIED, @@ -761,9 +761,9 @@ func timerWorkflowDelayTaskToProto( workflowDelayTimer *tasks.WorkflowBackoffTimerTask, ) *persistencespb.TimerTaskInfo { return &persistencespb.TimerTaskInfo{ - NamespaceId: workflowDelayTimer.WorkflowKey.NamespaceID, - WorkflowId: workflowDelayTimer.WorkflowKey.WorkflowID, - RunId: workflowDelayTimer.WorkflowKey.RunID, + NamespaceId: workflowDelayTimer.NamespaceID, + WorkflowId: workflowDelayTimer.WorkflowID, + RunId: workflowDelayTimer.RunID, TaskType: enumsspb.TASK_TYPE_WORKFLOW_BACKOFF_TIMER, TimeoutType: enumspb.TIMEOUT_TYPE_UNSPECIFIED, WorkflowBackoffType: workflowDelayTimer.WorkflowBackoffType, @@ -795,9 +795,9 @@ func timerActivityTaskToProto( activityTimer *tasks.ActivityTimeoutTask, ) *persistencespb.TimerTaskInfo { return &persistencespb.TimerTaskInfo{ - NamespaceId: activityTimer.WorkflowKey.NamespaceID, - WorkflowId: activityTimer.WorkflowKey.WorkflowID, - RunId: activityTimer.WorkflowKey.RunID, + NamespaceId: activityTimer.NamespaceID, + WorkflowId: activityTimer.WorkflowID, + RunId: activityTimer.RunID, TaskType: enumsspb.TASK_TYPE_ACTIVITY_TIMEOUT, TimeoutType: activityTimer.TimeoutType, WorkflowBackoffType: enumsspb.WORKFLOW_BACKOFF_TYPE_UNSPECIFIED, @@ -831,9 +831,9 @@ func timerActivityRetryTaskToProto( activityRetryTimer *tasks.ActivityRetryTimerTask, ) *persistencespb.TimerTaskInfo { return &persistencespb.TimerTaskInfo{ - NamespaceId: activityRetryTimer.WorkflowKey.NamespaceID, - WorkflowId: activityRetryTimer.WorkflowKey.WorkflowID, - RunId: activityRetryTimer.WorkflowKey.RunID, + NamespaceId: activityRetryTimer.NamespaceID, + WorkflowId: activityRetryTimer.WorkflowID, + RunId: activityRetryTimer.RunID, TaskType: enumsspb.TASK_TYPE_ACTIVITY_RETRY_TIMER, TimeoutType: enumspb.TIMEOUT_TYPE_UNSPECIFIED, WorkflowBackoffType: enumsspb.WORKFLOW_BACKOFF_TYPE_UNSPECIFIED, @@ -868,9 +868,9 @@ func timerUserTaskToProto( userTimer *tasks.UserTimerTask, ) *persistencespb.TimerTaskInfo { return &persistencespb.TimerTaskInfo{ - NamespaceId: userTimer.WorkflowKey.NamespaceID, - WorkflowId: userTimer.WorkflowKey.WorkflowID, - RunId: userTimer.WorkflowKey.RunID, + NamespaceId: userTimer.NamespaceID, + WorkflowId: userTimer.WorkflowID, + RunId: userTimer.RunID, TaskType: enumsspb.TASK_TYPE_USER_TIMER, TimeoutType: enumspb.TIMEOUT_TYPE_UNSPECIFIED, WorkflowBackoffType: enumsspb.WORKFLOW_BACKOFF_TYPE_UNSPECIFIED, @@ -900,9 +900,9 @@ func timerWorkflowRunToProto( workflowRunTimer *tasks.WorkflowRunTimeoutTask, ) *persistencespb.TimerTaskInfo { return &persistencespb.TimerTaskInfo{ - NamespaceId: workflowRunTimer.WorkflowKey.NamespaceID, - WorkflowId: workflowRunTimer.WorkflowKey.WorkflowID, - RunId: workflowRunTimer.WorkflowKey.RunID, + NamespaceId: workflowRunTimer.NamespaceID, + WorkflowId: workflowRunTimer.WorkflowID, + RunId: workflowRunTimer.RunID, TaskType: enumsspb.TASK_TYPE_WORKFLOW_RUN_TIMEOUT, TimeoutType: enumspb.TIMEOUT_TYPE_UNSPECIFIED, WorkflowBackoffType: enumsspb.WORKFLOW_BACKOFF_TYPE_UNSPECIFIED, @@ -964,9 +964,9 @@ func timerWorkflowCleanupTaskToProto( workflowCleanupTimer *tasks.DeleteHistoryEventTask, ) *persistencespb.TimerTaskInfo { return &persistencespb.TimerTaskInfo{ - NamespaceId: workflowCleanupTimer.WorkflowKey.NamespaceID, - WorkflowId: workflowCleanupTimer.WorkflowKey.WorkflowID, - RunId: workflowCleanupTimer.WorkflowKey.RunID, + NamespaceId: workflowCleanupTimer.NamespaceID, + WorkflowId: workflowCleanupTimer.WorkflowID, + RunId: workflowCleanupTimer.RunID, TaskType: enumsspb.TASK_TYPE_DELETE_HISTORY_EVENT, TimeoutType: enumspb.TIMEOUT_TYPE_UNSPECIFIED, WorkflowBackoffType: enumsspb.WORKFLOW_BACKOFF_TYPE_UNSPECIFIED, @@ -1035,9 +1035,9 @@ func visibilityStartTaskToProto( startVisibilityTask *tasks.StartExecutionVisibilityTask, ) *persistencespb.VisibilityTaskInfo { return &persistencespb.VisibilityTaskInfo{ - NamespaceId: startVisibilityTask.WorkflowKey.NamespaceID, - WorkflowId: startVisibilityTask.WorkflowKey.WorkflowID, - RunId: startVisibilityTask.WorkflowKey.RunID, + NamespaceId: startVisibilityTask.NamespaceID, + WorkflowId: startVisibilityTask.WorkflowID, + RunId: startVisibilityTask.RunID, TaskType: enumsspb.TASK_TYPE_VISIBILITY_START_EXECUTION, Version: startVisibilityTask.Version, TaskId: startVisibilityTask.TaskID, @@ -1064,9 +1064,9 @@ func visibilityUpsertTaskToProto( upsertVisibilityTask *tasks.UpsertExecutionVisibilityTask, ) *persistencespb.VisibilityTaskInfo { return &persistencespb.VisibilityTaskInfo{ - NamespaceId: upsertVisibilityTask.WorkflowKey.NamespaceID, - WorkflowId: upsertVisibilityTask.WorkflowKey.WorkflowID, - RunId: upsertVisibilityTask.WorkflowKey.RunID, + NamespaceId: upsertVisibilityTask.NamespaceID, + WorkflowId: upsertVisibilityTask.WorkflowID, + RunId: upsertVisibilityTask.RunID, TaskType: enumsspb.TASK_TYPE_VISIBILITY_UPSERT_EXECUTION, TaskId: upsertVisibilityTask.TaskID, VisibilityTime: timestamppb.New(upsertVisibilityTask.VisibilityTimestamp), @@ -1091,9 +1091,9 @@ func visibilityCloseTaskToProto( closetVisibilityTask *tasks.CloseExecutionVisibilityTask, ) *persistencespb.VisibilityTaskInfo { return &persistencespb.VisibilityTaskInfo{ - NamespaceId: closetVisibilityTask.WorkflowKey.NamespaceID, - WorkflowId: closetVisibilityTask.WorkflowKey.WorkflowID, - RunId: closetVisibilityTask.WorkflowKey.RunID, + NamespaceId: closetVisibilityTask.NamespaceID, + WorkflowId: closetVisibilityTask.WorkflowID, + RunId: closetVisibilityTask.RunID, TaskType: enumsspb.TASK_TYPE_VISIBILITY_CLOSE_EXECUTION, Version: closetVisibilityTask.Version, TaskId: closetVisibilityTask.TaskID, @@ -1120,9 +1120,9 @@ func visibilityDeleteTaskToProto( deleteVisibilityTask *tasks.DeleteExecutionVisibilityTask, ) *persistencespb.VisibilityTaskInfo { return &persistencespb.VisibilityTaskInfo{ - NamespaceId: deleteVisibilityTask.WorkflowKey.NamespaceID, - WorkflowId: deleteVisibilityTask.WorkflowKey.WorkflowID, - RunId: deleteVisibilityTask.WorkflowKey.RunID, + NamespaceId: deleteVisibilityTask.NamespaceID, + WorkflowId: deleteVisibilityTask.WorkflowID, + RunId: deleteVisibilityTask.RunID, TaskType: enumsspb.TASK_TYPE_VISIBILITY_DELETE_EXECUTION, TaskId: deleteVisibilityTask.TaskID, VisibilityTime: timestamppb.New(deleteVisibilityTask.VisibilityTimestamp), @@ -1159,9 +1159,9 @@ func visibilityDeleteTaskFromProto( func visibilityChasmTaskToProto(task *tasks.ChasmTask) *persistencespb.VisibilityTaskInfo { return &persistencespb.VisibilityTaskInfo{ - NamespaceId: task.WorkflowKey.NamespaceID, - WorkflowId: task.WorkflowKey.WorkflowID, - RunId: task.WorkflowKey.RunID, + NamespaceId: task.NamespaceID, + WorkflowId: task.WorkflowID, + RunId: task.RunID, TaskId: task.TaskID, TaskType: task.GetType(), VisibilityTime: timestamppb.New(task.VisibilityTimestamp), @@ -1189,9 +1189,9 @@ func replicationActivityTaskToProto( activityTask *tasks.SyncActivityTask, ) *persistencespb.ReplicationTaskInfo { return &persistencespb.ReplicationTaskInfo{ - NamespaceId: activityTask.WorkflowKey.NamespaceID, - WorkflowId: activityTask.WorkflowKey.WorkflowID, - RunId: activityTask.WorkflowKey.RunID, + NamespaceId: activityTask.NamespaceID, + WorkflowId: activityTask.WorkflowID, + RunId: activityTask.RunID, TaskType: enumsspb.TASK_TYPE_REPLICATION_SYNC_ACTIVITY, TaskId: activityTask.TaskID, Version: activityTask.Version, @@ -1230,9 +1230,9 @@ func replicationHistoryTaskToProto( historyTask *tasks.HistoryReplicationTask, ) *persistencespb.ReplicationTaskInfo { return &persistencespb.ReplicationTaskInfo{ - NamespaceId: historyTask.WorkflowKey.NamespaceID, - WorkflowId: historyTask.WorkflowKey.WorkflowID, - RunId: historyTask.WorkflowKey.RunID, + NamespaceId: historyTask.NamespaceID, + WorkflowId: historyTask.WorkflowID, + RunId: historyTask.RunID, TaskType: enumsspb.TASK_TYPE_REPLICATION_HISTORY, TaskId: historyTask.TaskID, Version: historyTask.Version, @@ -1276,9 +1276,9 @@ func archiveExecutionTaskToProto( archiveExecutionTask *tasks.ArchiveExecutionTask, ) *persistencespb.ArchivalTaskInfo { return &persistencespb.ArchivalTaskInfo{ - NamespaceId: archiveExecutionTask.WorkflowKey.NamespaceID, - WorkflowId: archiveExecutionTask.WorkflowKey.WorkflowID, - RunId: archiveExecutionTask.WorkflowKey.RunID, + NamespaceId: archiveExecutionTask.NamespaceID, + WorkflowId: archiveExecutionTask.WorkflowID, + RunId: archiveExecutionTask.RunID, TaskType: enumsspb.TASK_TYPE_ARCHIVAL_ARCHIVE_EXECUTION, TaskId: archiveExecutionTask.TaskID, Version: archiveExecutionTask.Version, @@ -1348,9 +1348,9 @@ func replicationSyncHSMTaskToProto( syncHSMTask *tasks.SyncHSMTask, ) *persistencespb.ReplicationTaskInfo { return &persistencespb.ReplicationTaskInfo{ - NamespaceId: syncHSMTask.WorkflowKey.NamespaceID, - WorkflowId: syncHSMTask.WorkflowKey.WorkflowID, - RunId: syncHSMTask.WorkflowKey.RunID, + NamespaceId: syncHSMTask.NamespaceID, + WorkflowId: syncHSMTask.WorkflowID, + RunId: syncHSMTask.RunID, TaskType: enumsspb.TASK_TYPE_REPLICATION_SYNC_HSM, TaskId: syncHSMTask.TaskID, VisibilityTime: timestamppb.New(syncHSMTask.VisibilityTimestamp), @@ -1391,9 +1391,9 @@ func replicationSyncVersionedTransitionTaskToProto( } return &persistencespb.ReplicationTaskInfo{ - NamespaceId: syncVersionedTransitionTask.WorkflowKey.NamespaceID, - WorkflowId: syncVersionedTransitionTask.WorkflowKey.WorkflowID, - RunId: syncVersionedTransitionTask.WorkflowKey.RunID, + NamespaceId: syncVersionedTransitionTask.NamespaceID, + WorkflowId: syncVersionedTransitionTask.WorkflowID, + RunId: syncVersionedTransitionTask.RunID, TaskType: enumsspb.TASK_TYPE_REPLICATION_SYNC_VERSIONED_TRANSITION, TaskId: syncVersionedTransitionTask.TaskID, VisibilityTime: timestamppb.New(syncVersionedTransitionTask.VisibilityTimestamp), diff --git a/common/persistence/serialization/task_serializers_test.go b/common/persistence/serialization/task_serializers_test.go index 61014fcaae5..44d1ae034b9 100644 --- a/common/persistence/serialization/task_serializers_test.go +++ b/common/persistence/serialization/task_serializers_test.go @@ -475,8 +475,8 @@ func (s *taskSerializerSuite) TestArchiveExecutionTask() { TaskID: rand.Int63(), Version: rand.Int63(), } - s.Assert().Equal(tasks.CategoryArchival, task.GetCategory()) - s.Assert().Equal(enumsspb.TASK_TYPE_ARCHIVAL_ARCHIVE_EXECUTION, task.GetType()) + s.Equal(tasks.CategoryArchival, task.GetCategory()) + s.Equal(enumsspb.TASK_TYPE_ARCHIVAL_ARCHIVE_EXECUTION, task.GetType()) s.assertEqualTasks(task) } @@ -534,8 +534,8 @@ func (s *taskSerializerSuite) TestStateMachineOutboundTask() { Destination: "foo", } - s.Assert().Equal(tasks.CategoryOutbound, task.GetCategory()) - s.Assert().Equal(enumsspb.TASK_TYPE_STATE_MACHINE_OUTBOUND, task.GetType()) + s.Equal(tasks.CategoryOutbound, task.GetCategory()) + s.Equal(enumsspb.TASK_TYPE_STATE_MACHINE_OUTBOUND, task.GetType()) blob, err := s.serializer.SerializeTask(task) s.NoError(err) @@ -585,8 +585,8 @@ func (s *taskSerializerSuite) TestStateMachineTimerTask() { Version: rand.Int63(), } - s.Assert().Equal(tasks.CategoryTimer, task.GetCategory()) - s.Assert().Equal(enumsspb.TASK_TYPE_STATE_MACHINE_TIMER, task.GetType()) + s.Equal(tasks.CategoryTimer, task.GetCategory()) + s.Equal(enumsspb.TASK_TYPE_STATE_MACHINE_TIMER, task.GetType()) blob, err := s.serializer.SerializeTask(task) s.NoError(err) diff --git a/common/persistence/sql/history_store.go b/common/persistence/sql/history_store.go index 9703b6b32bd..f88582108d8 100644 --- a/common/persistence/sql/history_store.go +++ b/common/persistence/sql/history_store.go @@ -83,7 +83,7 @@ func (m *sqlExecutionStore) AppendHistoryNodes( if err != nil { return err } - if !(rowsAffected == 1 || rowsAffected == 2) { + if rowsAffected != 1 && rowsAffected != 2 { return fmt.Errorf("expected 1 or 2 row to be affected for node table, got %v", rowsAffected) } @@ -94,7 +94,7 @@ func (m *sqlExecutionStore) AppendHistoryNodes( if err != nil { return err } - if !(rowsAffected == 1 || rowsAffected == 2) { + if rowsAffected != 1 && rowsAffected != 2 { return fmt.Errorf("expected 1 or 2 rows to be affected for tree table as we allow upserts, got %v", rowsAffected) } return nil @@ -324,7 +324,7 @@ func (m *sqlExecutionStore) ForkHistoryBranch( if err != nil { return err } - if !(rowsAffected == 1 || rowsAffected == 2) { + if rowsAffected != 1 && rowsAffected != 2 { return fmt.Errorf("expected 1 or 2 row to be affected for tree table, got %v", rowsAffected) } return nil diff --git a/common/persistence/sql/queue_v2.go b/common/persistence/sql/queue_v2.go index 11a25ef7193..d793d1e4fc5 100644 --- a/common/persistence/sql/queue_v2.go +++ b/common/persistence/sql/queue_v2.go @@ -64,7 +64,7 @@ func (q *queueV2) EnqueueMessage( if err != nil { rollBackErr := tx.Rollback() if rollBackErr != nil { - q.SqlStore.logger.Error("transaction rollback error", tag.Error(rollBackErr)) + q.logger.Error("transaction rollback error", tag.Error(rollBackErr)) } return nil, serviceerror.NewUnavailablef( "EnqueueMessage failed for queue with type: %v and name: %v. failed to get last messageId. Error: %v", @@ -83,7 +83,7 @@ func (q *queueV2) EnqueueMessage( if err != nil { rollBackErr := tx.Rollback() if rollBackErr != nil { - q.SqlStore.logger.Error("transaction rollback error", tag.Error(rollBackErr)) + q.logger.Error("transaction rollback error", tag.Error(rollBackErr)) } return nil, serviceerror.NewUnavailablef( "EnqueueMessage failed for queue with type: %v and name: %v. InsertIntoQueueV2Messages operation failed. Error: %v", diff --git a/common/persistence/sql/sqlplugin/mysql/session/session.go b/common/persistence/sql/sqlplugin/mysql/session/session.go index f6c5b151746..d2c18d37c2d 100644 --- a/common/persistence/sql/sqlplugin/mysql/session/session.go +++ b/common/persistence/sql/sqlplugin/mysql/session/session.go @@ -7,6 +7,7 @@ import ( "database/sql/driver" "errors" "fmt" + "maps" "os" "strings" @@ -170,9 +171,7 @@ func buildDSNAttrs(dbKind sqlplugin.DbKind, cfg *config.SQL) (map[string]string, } // these attrs are always overriden - for k, v := range dsnAttrOverrides { - attrs[k] = v - } + maps.Copy(attrs, dsnAttrOverrides) if !paramInterpolationAllowed(dbKind) { if _, ok := attrs[interpolateParamsAttr]; ok { diff --git a/common/persistence/sql/sqlplugin/mysql/session/session_test.go b/common/persistence/sql/sqlplugin/mysql/session/session_test.go index 185a2990ef9..2026b79e4b5 100644 --- a/common/persistence/sql/sqlplugin/mysql/session/session_test.go +++ b/common/persistence/sql/sqlplugin/mysql/session/session_test.go @@ -135,7 +135,7 @@ func (s *sessionTestSuite) TestBuildDSN() { } s.True(strings.HasPrefix(out, tc.outURLPath), "invalid url path") tokens := strings.Split(out, "?") - s.Equal(2, len(tokens), "invalid url") + s.Len(tokens, 2, "invalid url") qry, err := url.Parse("?" + tokens[1]) s.NoError(err) wantAttrs := buildExpectedURLParams(dbKind, tc.in.ConnectAttributes, tc.outIsolationKey, tc.outIsolationVal) diff --git a/common/persistence/sql/sqlplugin/mysql/task_user_data.go b/common/persistence/sql/sqlplugin/mysql/task_user_data.go index 09f93485e70..82177f0b51d 100644 --- a/common/persistence/sql/sqlplugin/mysql/task_user_data.go +++ b/common/persistence/sql/sqlplugin/mysql/task_user_data.go @@ -72,18 +72,19 @@ func (mdb *db) UpdateTaskQueueUserData(ctx context.Context, request *sqlplugin.U } func (mdb *db) AddToBuildIdToTaskQueueMapping(ctx context.Context, request sqlplugin.AddToBuildIdToTaskQueueMapping) error { - query := addBuildIdToTaskQueueMappingQry + var query strings.Builder + query.WriteString(addBuildIdToTaskQueueMappingQry) var params []any for idx, buildId := range request.BuildIds { if idx == len(request.BuildIds)-1 { - query += "(?, ?, ?)" + query.WriteString("(?, ?, ?)") } else { - query += "(?, ?, ?), " + query.WriteString("(?, ?, ?), ") } params = append(params, request.NamespaceID, buildId, request.TaskQueueName) } - _, err := mdb.ExecContext(ctx, query, params...) + _, err := mdb.ExecContext(ctx, query.String(), params...) return err } diff --git a/common/persistence/sql/sqlplugin/postgresql/task_user_data.go b/common/persistence/sql/sqlplugin/postgresql/task_user_data.go index a052d82f1e0..5595df1e972 100644 --- a/common/persistence/sql/sqlplugin/postgresql/task_user_data.go +++ b/common/persistence/sql/sqlplugin/postgresql/task_user_data.go @@ -3,6 +3,7 @@ package postgresql import ( "context" "fmt" + "strings" "go.temporal.io/server/common/persistence" "go.temporal.io/server/common/persistence/sql/sqlplugin" @@ -78,22 +79,24 @@ func (pdb *db) ListTaskQueueUserDataEntries(ctx context.Context, request *sqlplu } func (pdb *db) AddToBuildIdToTaskQueueMapping(ctx context.Context, request sqlplugin.AddToBuildIdToTaskQueueMapping) error { - query := addBuildIdToTaskQueueMappingQry + var query strings.Builder + query.WriteString(addBuildIdToTaskQueueMappingQry) var params []any for idx, buildId := range request.BuildIds { - query += fmt.Sprintf("($%d, $%d, $%d)", idx*3+1, idx*3+2, idx*3+3) + query.WriteString(fmt.Sprintf("($%d, $%d, $%d)", idx*3+1, idx*3+2, idx*3+3)) if idx < len(request.BuildIds)-1 { - query += ", " + query.WriteString(", ") } params = append(params, request.NamespaceID, buildId, request.TaskQueueName) } - _, err := pdb.ExecContext(ctx, query, params...) + _, err := pdb.ExecContext(ctx, query.String(), params...) return err } func (pdb *db) RemoveFromBuildIdToTaskQueueMapping(ctx context.Context, request sqlplugin.RemoveFromBuildIdToTaskQueueMapping) error { - query := removeBuildIdToTaskQueueMappingQry + var query strings.Builder + query.WriteString(removeBuildIdToTaskQueueMappingQry) // Golang doesn't support appending a string slice to an any slice which is essentially what we're doing here. params := make([]any, len(request.BuildIds)+2) params[0] = request.NamespaceID @@ -103,11 +106,11 @@ func (pdb *db) RemoveFromBuildIdToTaskQueueMapping(ctx context.Context, request if idx == len(request.BuildIds)-1 { sep = ")" } - query += fmt.Sprintf("$%d%s", idx+3, sep) + query.WriteString(fmt.Sprintf("$%d%s", idx+3, sep)) params[idx+2] = buildId } - _, err := pdb.ExecContext(ctx, query, params...) + _, err := pdb.ExecContext(ctx, query.String(), params...) return err } diff --git a/common/persistence/sql/sqlplugin/sqlite/task_user_data.go b/common/persistence/sql/sqlplugin/sqlite/task_user_data.go index 51fd2e92ce6..7bb78aaa730 100644 --- a/common/persistence/sql/sqlplugin/sqlite/task_user_data.go +++ b/common/persistence/sql/sqlplugin/sqlite/task_user_data.go @@ -78,18 +78,19 @@ func (mdb *db) ListTaskQueueUserDataEntries(ctx context.Context, request *sqlplu } func (mdb *db) AddToBuildIdToTaskQueueMapping(ctx context.Context, request sqlplugin.AddToBuildIdToTaskQueueMapping) error { - query := addBuildIdToTaskQueueMappingQry + var query strings.Builder + query.WriteString(addBuildIdToTaskQueueMappingQry) var params []any for idx, buildId := range request.BuildIds { if idx == len(request.BuildIds)-1 { - query += "(?, ?, ?)" + query.WriteString("(?, ?, ?)") } else { - query += "(?, ?, ?), " + query.WriteString("(?, ?, ?), ") } params = append(params, request.NamespaceID, buildId, request.TaskQueueName) } - _, err := mdb.conn.ExecContext(ctx, query, params...) + _, err := mdb.conn.ExecContext(ctx, query.String(), params...) return err } diff --git a/common/persistence/sql/sqlplugin/tests/history_transfer_task.go b/common/persistence/sql/sqlplugin/tests/history_transfer_task.go index 18e638dcf56..237943b81d9 100644 --- a/common/persistence/sql/sqlplugin/tests/history_transfer_task.go +++ b/common/persistence/sql/sqlplugin/tests/history_transfer_task.go @@ -170,7 +170,7 @@ func (s *historyHistoryTransferTaskSuite) TestInsertSelect_Multiple() { rows, err := s.store.RangeSelectFromTransferTasks(newExecutionContext(), filter) s.NoError(err) s.NotEmpty(rows) - s.True(len(rows) <= filter.PageSize) + s.LessOrEqual(len(rows), filter.PageSize) for index := range rows { rows[index].ShardID = shardID } diff --git a/common/persistence/sql/sqlplugin/tests/history_visibility_task.go b/common/persistence/sql/sqlplugin/tests/history_visibility_task.go index 21ae5614e68..8d7e232db63 100644 --- a/common/persistence/sql/sqlplugin/tests/history_visibility_task.go +++ b/common/persistence/sql/sqlplugin/tests/history_visibility_task.go @@ -170,7 +170,7 @@ func (s *historyHistoryVisibilityTaskSuite) TestInsertSelect_Multiple() { rows, err := s.store.RangeSelectFromVisibilityTasks(newExecutionContext(), filter) s.NoError(err) s.NotEmpty(rows) - s.True(len(rows) <= filter.PageSize) + s.LessOrEqual(len(rows), filter.PageSize) for index := range rows { rows[index].ShardID = shardID } diff --git a/common/persistence/sql/sqlplugin/tests/matching_task.go b/common/persistence/sql/sqlplugin/tests/matching_task.go index 3ddc5b6ec81..c7b9857f560 100644 --- a/common/persistence/sql/sqlplugin/tests/matching_task.go +++ b/common/persistence/sql/sqlplugin/tests/matching_task.go @@ -7,7 +7,6 @@ import ( "github.com/stretchr/testify/suite" "go.temporal.io/server/common/persistence/sql/sqlplugin" "go.temporal.io/server/common/shuffle" - "go.temporal.io/server/common/util" ) const ( @@ -128,9 +127,9 @@ func (s *matchingTaskSuite) TestInsertSelect_Single() { s.NoError(err) s.Equal(1, int(rowsAffected)) - inclusiveMinTaskID := util.Ptr(taskID) - exclusiveMaxTaskID := util.Ptr(taskID + 1) - pageSize := util.Ptr(1) + inclusiveMinTaskID := new(taskID) + exclusiveMaxTaskID := new(taskID + 1) + pageSize := new(1) filter := sqlplugin.TasksFilter{ RangeHash: testMatchingTaskRangeHash, TaskQueueID: queueID, @@ -161,9 +160,9 @@ func (s *matchingTaskSuite) TestInsertSelect_Multiple() { s.NoError(err) s.Equal(2, int(rowsAffected)) - inclusiveMinTaskID := util.Ptr(taskID - 1) - exclusiveMaxTaskID := util.Ptr(taskID + 1) - pageSize := util.Ptr(2) + inclusiveMinTaskID := new(taskID - 1) + exclusiveMaxTaskID := new(taskID + 1) + pageSize := new(2) filter := sqlplugin.TasksFilter{ RangeHash: testMatchingTaskRangeHash, TaskQueueID: queueID, @@ -227,8 +226,8 @@ func (s *matchingTaskSuite) TestInsertDeleteSelect_Multiple() { filter := sqlplugin.TasksFilter{ RangeHash: testMatchingTaskRangeHash, TaskQueueID: queueID, - ExclusiveMaxTaskID: util.Ptr(taskID + 1), - Limit: util.Ptr(2), + ExclusiveMaxTaskID: new(taskID + 1), + Limit: new(2), } result, err = s.store.DeleteFromTasks(newExecutionContext(), filter) s.NoError(err) @@ -236,9 +235,9 @@ func (s *matchingTaskSuite) TestInsertDeleteSelect_Multiple() { s.NoError(err) s.Equal(2, int(rowsAffected)) - inclusiveMinTaskID := util.Ptr(taskID - 1) - exclusiveMaxTaskID := util.Ptr(taskID + 1) - pageSize := util.Ptr(2) + inclusiveMinTaskID := new(taskID - 1) + exclusiveMaxTaskID := new(taskID + 1) + pageSize := new(2) filter = sqlplugin.TasksFilter{ RangeHash: testMatchingTaskRangeHash, TaskQueueID: queueID, diff --git a/common/persistence/sql/sqlplugin/tests/matching_task_queue.go b/common/persistence/sql/sqlplugin/tests/matching_task_queue.go index 258f4757463..e3db05d27a4 100644 --- a/common/persistence/sql/sqlplugin/tests/matching_task_queue.go +++ b/common/persistence/sql/sqlplugin/tests/matching_task_queue.go @@ -7,7 +7,6 @@ import ( "github.com/stretchr/testify/suite" "go.temporal.io/server/common/persistence/sql/sqlplugin" "go.temporal.io/server/common/shuffle" - "go.temporal.io/server/common/util" ) const ( @@ -176,7 +175,7 @@ func (s *matchingTaskQueueSuite) TestDeleteSelect() { filter := sqlplugin.TaskQueuesFilter{ RangeHash: testMatchingTaskQueueRangeHash, TaskQueueID: queueID, - RangeID: util.Ptr(rangeID), + RangeID: new(rangeID), } result, err := s.store.DeleteFromTaskQueues(newExecutionContext(), filter, s.version) s.NoError(err) @@ -207,7 +206,7 @@ func (s *matchingTaskQueueSuite) TestInsertDeleteSelect_Success() { filter := sqlplugin.TaskQueuesFilter{ RangeHash: testMatchingTaskQueueRangeHash, TaskQueueID: queueID, - RangeID: util.Ptr(rangeID), + RangeID: new(rangeID), } result, err = s.store.DeleteFromTaskQueues(newExecutionContext(), filter, s.version) s.NoError(err) @@ -238,7 +237,7 @@ func (s *matchingTaskQueueSuite) TestInsertDeleteSelect_Fail() { filter := sqlplugin.TaskQueuesFilter{ RangeHash: testMatchingTaskQueueRangeHash, TaskQueueID: queueID, - RangeID: util.Ptr(rangeID + 1), + RangeID: new(rangeID + 1), } result, err = s.store.DeleteFromTaskQueues(newExecutionContext(), filter, s.version) s.NoError(err) diff --git a/common/persistence/sql/sqlplugin/tests/matching_task_v2.go b/common/persistence/sql/sqlplugin/tests/matching_task_v2.go index e8ab07b69c2..502f06f8c6e 100644 --- a/common/persistence/sql/sqlplugin/tests/matching_task_v2.go +++ b/common/persistence/sql/sqlplugin/tests/matching_task_v2.go @@ -7,7 +7,6 @@ import ( "github.com/stretchr/testify/suite" "go.temporal.io/server/common/persistence/sql/sqlplugin" "go.temporal.io/server/common/shuffle" - "go.temporal.io/server/common/util" ) type ( @@ -61,7 +60,7 @@ func (s *matchingTaskV2Suite) TestInsertSelect_Order() { RangeHash: testMatchingTaskRangeHash, TaskQueueID: queueID, InclusiveMinLevel: &sqlplugin.FairLevel{TaskPass: 1, TaskID: 0}, - PageSize: util.Ptr(len(tasks)), + PageSize: new(len(tasks)), } rows, err := s.store.SelectFromTasksV2(newExecutionContext(), filter) s.NoError(err) @@ -91,7 +90,7 @@ func (s *matchingTaskV2Suite) TestInsertDeleteRange() { RangeHash: testMatchingTaskRangeHash, TaskQueueID: queueID, ExclusiveMaxLevel: &sqlplugin.FairLevel{TaskPass: 3, TaskID: 0}, - Limit: util.Ptr(10), + Limit: new(10), } result, err = s.store.DeleteFromTasksV2(newExecutionContext(), filter) s.NoError(err) @@ -103,7 +102,7 @@ func (s *matchingTaskV2Suite) TestInsertDeleteRange() { RangeHash: testMatchingTaskRangeHash, TaskQueueID: queueID, InclusiveMinLevel: &sqlplugin.FairLevel{TaskPass: 1, TaskID: 0}, - PageSize: util.Ptr(10), + PageSize: new(10), } rows, err := s.store.SelectFromTasksV2(newExecutionContext(), filter) s.NoError(err) diff --git a/common/persistence/sql/sqlplugin/tests/namespace.go b/common/persistence/sql/sqlplugin/tests/namespace.go index 8556cb615ed..88438fd335b 100644 --- a/common/persistence/sql/sqlplugin/tests/namespace.go +++ b/common/persistence/sql/sqlplugin/tests/namespace.go @@ -9,7 +9,6 @@ import ( "go.temporal.io/server/common/persistence/sql/sqlplugin" "go.temporal.io/server/common/primitives" "go.temporal.io/server/common/shuffle" - "go.temporal.io/server/common/util" ) const ( @@ -260,7 +259,7 @@ func (s *namespaceSuite) TestInsertSelect_Pagination() { // cleanup the namespace for pagination test rowsPerPage, err := s.store.SelectFromNamespace(newExecutionContext(), sqlplugin.NamespaceFilter{ GreaterThanID: nil, - PageSize: util.Ptr(1000000), + PageSize: new(1000000), }) switch err { case nil: @@ -298,7 +297,7 @@ func (s *namespaceSuite) TestInsertSelect_Pagination() { rows := map[string]*sqlplugin.NamespaceRow{} filter := sqlplugin.NamespaceFilter{ GreaterThanID: nil, - PageSize: util.Ptr(numNamespacePerPage), + PageSize: new(numNamespacePerPage), } for doContinue := true; doContinue; doContinue = filter.GreaterThanID != nil { rowsPerPage, err := s.store.SelectFromNamespace(newExecutionContext(), filter) diff --git a/common/persistence/sql/sqlplugin/tests/visibility.go b/common/persistence/sql/sqlplugin/tests/visibility.go index db90427739e..654ca85e84f 100644 --- a/common/persistence/sql/sqlplugin/tests/visibility.go +++ b/common/persistence/sql/sqlplugin/tests/visibility.go @@ -12,7 +12,6 @@ import ( "go.temporal.io/server/common/persistence/sql/sqlplugin" "go.temporal.io/server/common/primitives" "go.temporal.io/server/common/shuffle" - "go.temporal.io/server/common/util" ) type ( @@ -101,7 +100,7 @@ func (s *visibilitySuite) TestInsertSelect_NonExists() { selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), - RunID: util.Ptr(runID.String()), + RunID: new(runID.String()), } rows, err := s.store.SelectFromVisibility(newVisibilityContext(), selectFilter) s.NoError(err) @@ -158,7 +157,7 @@ func (s *visibilitySuite) TestInsertSelect_Exists() { selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), - RunID: util.Ptr(runID.String()), + RunID: new(runID.String()), } rows, err := s.store.SelectFromVisibility(newVisibilityContext(), selectFilter) s.NoError(err) @@ -187,8 +186,8 @@ func (s *visibilitySuite) TestReplaceSelect_NonExists() { startTime, executionTime, status, - timePtr(closeTime), - util.Ptr(historyLength), + new(closeTime), + new(historyLength), ) result, err := s.store.ReplaceIntoVisibility(newVisibilityContext(), &visibility) s.NoError(err) @@ -198,7 +197,7 @@ func (s *visibilitySuite) TestReplaceSelect_NonExists() { selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), - RunID: util.Ptr(runID.String()), + RunID: new(runID.String()), } rows, err := s.store.SelectFromVisibility(newVisibilityContext(), selectFilter) s.NoError(err) @@ -227,8 +226,8 @@ func (s *visibilitySuite) TestReplaceSelect_Exists() { startTime, executionTime, status, - timePtr(closeTime), - util.Ptr(historyLength), + new(closeTime), + new(historyLength), ) result, err := s.store.ReplaceIntoVisibility(newVisibilityContext(), &visibility) s.NoError(err) @@ -244,8 +243,8 @@ func (s *visibilitySuite) TestReplaceSelect_Exists() { startTime, executionTime, status, - timePtr(closeTime), - util.Ptr(historyLength), + new(closeTime), + new(historyLength), ) _, err = s.store.ReplaceIntoVisibility(newVisibilityContext(), &visibility) s.NoError(err) @@ -255,7 +254,7 @@ func (s *visibilitySuite) TestReplaceSelect_Exists() { selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), - RunID: util.Ptr(runID.String()), + RunID: new(runID.String()), } rows, err := s.store.SelectFromVisibility(newVisibilityContext(), selectFilter) s.NoError(err) @@ -407,8 +406,8 @@ func (s *visibilitySuite) TestReplaceDeleteGet() { startTime, executionTime, status, - timePtr(closeTime), - util.Ptr(historyLength), + new(closeTime), + new(historyLength), ) result, err := s.store.ReplaceIntoVisibility(newVisibilityContext(), &visibility) s.NoError(err) @@ -468,13 +467,13 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowID_Status maxStartTime := startTime selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), - WorkflowID: util.Ptr(workflowID), - RunID: util.Ptr(""), + WorkflowID: new(workflowID), + RunID: new(""), WorkflowTypeName: nil, - MinTime: timePtr(minStartTime), - MaxTime: timePtr(maxStartTime), + MinTime: new(minStartTime), + MaxTime: new(maxStartTime), Status: int32(enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING), - PageSize: util.Ptr(pageSize), + PageSize: new(pageSize), } rows, err := s.store.SelectFromVisibility(newVisibilityContext(), selectFilter) s.NoError(err) @@ -529,13 +528,13 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowID_Status selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), - WorkflowID: util.Ptr(workflowID), - RunID: util.Ptr(""), + WorkflowID: new(workflowID), + RunID: new(""), WorkflowTypeName: nil, - MinTime: timePtr(minStartTime), - MaxTime: timePtr(maxStartTime), + MinTime: new(minStartTime), + MaxTime: new(maxStartTime), Status: int32(enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING), - PageSize: util.Ptr(pageSize), + PageSize: new(pageSize), } var rows []sqlplugin.VisibilityRow for { @@ -545,8 +544,8 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowID_Status if len(rowsPerPage) > 0 { lastVisibility := rowsPerPage[len(rowsPerPage)-1] - selectFilter.MaxTime = timePtr(lastVisibility.StartTime) - selectFilter.RunID = util.Ptr(lastVisibility.RunID) + selectFilter.MaxTime = new(lastVisibility.StartTime) + selectFilter.RunID = new(lastVisibility.RunID) } else { break } @@ -580,8 +579,8 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowID_Status startTime, executionTime, status, - timePtr(closeTime), - util.Ptr(historyLength), + new(closeTime), + new(historyLength), ) result, err := s.store.ReplaceIntoVisibility(newVisibilityContext(), &visibility) s.NoError(err) @@ -593,13 +592,13 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowID_Status maxStartTime := closeTime selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), - WorkflowID: util.Ptr(workflowID), - RunID: util.Ptr(""), + WorkflowID: new(workflowID), + RunID: new(""), WorkflowTypeName: nil, - MinTime: timePtr(minStartTime), - MaxTime: timePtr(maxStartTime), + MinTime: new(minStartTime), + MaxTime: new(maxStartTime), Status: int32(enumspb.WORKFLOW_EXECUTION_STATUS_UNSPECIFIED), - PageSize: util.Ptr(pageSize), + PageSize: new(pageSize), } rows, err := s.store.SelectFromVisibility(newVisibilityContext(), selectFilter) s.NoError(err) @@ -637,8 +636,8 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowID_Status startTime, executionTime, status, - timePtr(closeTime), - util.Ptr(historyLength), + new(closeTime), + new(historyLength), ) result, err := s.store.ReplaceIntoVisibility(newVisibilityContext(), &visibility) s.NoError(err) @@ -653,13 +652,13 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowID_Status selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), - WorkflowID: util.Ptr(workflowID), - RunID: util.Ptr(""), + WorkflowID: new(workflowID), + RunID: new(""), WorkflowTypeName: nil, - MinTime: timePtr(minStartTime), - MaxTime: timePtr(maxStartTime), + MinTime: new(minStartTime), + MaxTime: new(maxStartTime), Status: int32(enumspb.WORKFLOW_EXECUTION_STATUS_UNSPECIFIED), - PageSize: util.Ptr(pageSize), + PageSize: new(pageSize), } var rows []sqlplugin.VisibilityRow for { @@ -670,7 +669,7 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowID_Status if len(rowsPerPage) > 0 { lastVisibility := rowsPerPage[len(rowsPerPage)-1] selectFilter.MaxTime = lastVisibility.CloseTime - selectFilter.RunID = util.Ptr(lastVisibility.RunID) + selectFilter.RunID = new(lastVisibility.RunID) } else { break } @@ -718,12 +717,12 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowTypeName_ selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), WorkflowID: nil, - RunID: util.Ptr(""), - WorkflowTypeName: util.Ptr(workflowTypeName), - MinTime: timePtr(minStartTime), - MaxTime: timePtr(maxStartTime), + RunID: new(""), + WorkflowTypeName: new(workflowTypeName), + MinTime: new(minStartTime), + MaxTime: new(maxStartTime), Status: int32(enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING), - PageSize: util.Ptr(pageSize), + PageSize: new(pageSize), } rows, err := s.store.SelectFromVisibility(newVisibilityContext(), selectFilter) s.NoError(err) @@ -779,12 +778,12 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowTypeName_ selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), WorkflowID: nil, - RunID: util.Ptr(""), - WorkflowTypeName: util.Ptr(workflowTypeName), - MinTime: timePtr(minStartTime), - MaxTime: timePtr(maxStartTime), + RunID: new(""), + WorkflowTypeName: new(workflowTypeName), + MinTime: new(minStartTime), + MaxTime: new(maxStartTime), Status: int32(enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING), - PageSize: util.Ptr(pageSize), + PageSize: new(pageSize), } var rows []sqlplugin.VisibilityRow for { @@ -794,8 +793,8 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowTypeName_ if len(rowsPerPage) > 0 { lastVisibility := rowsPerPage[len(rowsPerPage)-1] - selectFilter.MaxTime = timePtr(lastVisibility.StartTime) - selectFilter.RunID = util.Ptr(lastVisibility.RunID) + selectFilter.MaxTime = new(lastVisibility.StartTime) + selectFilter.RunID = new(lastVisibility.RunID) } else { break } @@ -829,8 +828,8 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowTypeName_ startTime, executionTime, status, - timePtr(closeTime), - util.Ptr(historyLength), + new(closeTime), + new(historyLength), ) result, err := s.store.ReplaceIntoVisibility(newVisibilityContext(), &visibility) s.NoError(err) @@ -843,12 +842,12 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowTypeName_ selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), WorkflowID: nil, - RunID: util.Ptr(""), - WorkflowTypeName: util.Ptr(workflowTypeName), - MinTime: timePtr(minStartTime), - MaxTime: timePtr(maxStartTime), + RunID: new(""), + WorkflowTypeName: new(workflowTypeName), + MinTime: new(minStartTime), + MaxTime: new(maxStartTime), Status: int32(enumspb.WORKFLOW_EXECUTION_STATUS_UNSPECIFIED), - PageSize: util.Ptr(pageSize), + PageSize: new(pageSize), } rows, err := s.store.SelectFromVisibility(newVisibilityContext(), selectFilter) s.NoError(err) @@ -886,8 +885,8 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowTypeName_ startTime, executionTime, status, - timePtr(closeTime), - util.Ptr(historyLength), + new(closeTime), + new(historyLength), ) result, err := s.store.ReplaceIntoVisibility(newVisibilityContext(), &visibility) s.NoError(err) @@ -903,12 +902,12 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowTypeName_ selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), WorkflowID: nil, - RunID: util.Ptr(""), - WorkflowTypeName: util.Ptr(workflowTypeName), - MinTime: timePtr(minStartTime), - MaxTime: timePtr(maxStartTime), + RunID: new(""), + WorkflowTypeName: new(workflowTypeName), + MinTime: new(minStartTime), + MaxTime: new(maxStartTime), Status: int32(enumspb.WORKFLOW_EXECUTION_STATUS_UNSPECIFIED), - PageSize: util.Ptr(pageSize), + PageSize: new(pageSize), } var rows []sqlplugin.VisibilityRow for { @@ -919,7 +918,7 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowTypeName_ if len(rowsPerPage) > 0 { lastVisibility := rowsPerPage[len(rowsPerPage)-1] selectFilter.MaxTime = lastVisibility.CloseTime - selectFilter.RunID = util.Ptr(lastVisibility.RunID) + selectFilter.RunID = new(lastVisibility.RunID) } else { break } @@ -967,12 +966,12 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_StatusOpen_Single selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), WorkflowID: nil, - RunID: util.Ptr(""), + RunID: new(""), WorkflowTypeName: nil, - MinTime: timePtr(minStartTime), - MaxTime: timePtr(maxStartTime), + MinTime: new(minStartTime), + MaxTime: new(maxStartTime), Status: int32(enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING), - PageSize: util.Ptr(pageSize), + PageSize: new(pageSize), } rows, err := s.store.SelectFromVisibility(newVisibilityContext(), selectFilter) s.NoError(err) @@ -1028,12 +1027,12 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_StatusOpen_Multip selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), WorkflowID: nil, - RunID: util.Ptr(""), + RunID: new(""), WorkflowTypeName: nil, - MinTime: timePtr(minStartTime), - MaxTime: timePtr(maxStartTime), + MinTime: new(minStartTime), + MaxTime: new(maxStartTime), Status: int32(enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING), - PageSize: util.Ptr(pageSize), + PageSize: new(pageSize), } var rows []sqlplugin.VisibilityRow for { @@ -1043,8 +1042,8 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_StatusOpen_Multip if len(rowsPerPage) > 0 { lastVisibility := rowsPerPage[len(rowsPerPage)-1] - selectFilter.MaxTime = timePtr(lastVisibility.StartTime) - selectFilter.RunID = util.Ptr(lastVisibility.RunID) + selectFilter.MaxTime = new(lastVisibility.StartTime) + selectFilter.RunID = new(lastVisibility.RunID) } else { break } @@ -1085,8 +1084,8 @@ func (s *visibilitySuite) testSelectMinStartTimeMaxStartTimeStatusCloseSingle( startTime, executionTime, int32(status), - timePtr(closeTime), - util.Ptr(historyLength), + new(closeTime), + new(historyLength), ) result, err := s.store.ReplaceIntoVisibility(newVisibilityContext(), &visibility) s.NoError(err) @@ -1099,12 +1098,12 @@ func (s *visibilitySuite) testSelectMinStartTimeMaxStartTimeStatusCloseSingle( selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), WorkflowID: nil, - RunID: util.Ptr(""), + RunID: new(""), WorkflowTypeName: nil, - MinTime: timePtr(minStartTime), - MaxTime: timePtr(maxStartTime), + MinTime: new(minStartTime), + MaxTime: new(maxStartTime), Status: int32(enumspb.WORKFLOW_EXECUTION_STATUS_UNSPECIFIED), - PageSize: util.Ptr(pageSize), + PageSize: new(pageSize), } rows, err := s.store.SelectFromVisibility(newVisibilityContext(), selectFilter) s.NoError(err) @@ -1143,8 +1142,8 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_StatusClose_Multi startTime, executionTime, status, - timePtr(closeTime), - util.Ptr(historyLength), + new(closeTime), + new(historyLength), ) result, err := s.store.ReplaceIntoVisibility(newVisibilityContext(), &visibility) s.NoError(err) @@ -1160,12 +1159,12 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_StatusClose_Multi selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), WorkflowID: nil, - RunID: util.Ptr(""), + RunID: new(""), WorkflowTypeName: nil, - MinTime: timePtr(minStartTime), - MaxTime: timePtr(maxStartTime), + MinTime: new(minStartTime), + MaxTime: new(maxStartTime), Status: int32(enumspb.WORKFLOW_EXECUTION_STATUS_UNSPECIFIED), - PageSize: util.Ptr(pageSize), + PageSize: new(pageSize), } var rows []sqlplugin.VisibilityRow for { @@ -1176,7 +1175,7 @@ func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_StatusClose_Multi if len(rowsPerPage) > 0 { lastVisibility := rowsPerPage[len(rowsPerPage)-1] selectFilter.MaxTime = lastVisibility.CloseTime - selectFilter.RunID = util.Ptr(lastVisibility.RunID) + selectFilter.RunID = new(lastVisibility.RunID) } else { break } @@ -1217,8 +1216,8 @@ func (s *visibilitySuite) testSelectMinStartTimeMaxStartTimeStatusCloseByTypeSin startTime, executionTime, int32(status), - timePtr(closeTime), - util.Ptr(historyLength), + new(closeTime), + new(historyLength), ) result, err := s.store.ReplaceIntoVisibility(newVisibilityContext(), &visibility) s.NoError(err) @@ -1231,12 +1230,12 @@ func (s *visibilitySuite) testSelectMinStartTimeMaxStartTimeStatusCloseByTypeSin selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), WorkflowID: nil, - RunID: util.Ptr(""), - WorkflowTypeName: util.Ptr(workflowTypeName), - MinTime: timePtr(minStartTime), - MaxTime: timePtr(maxStartTime), + RunID: new(""), + WorkflowTypeName: new(workflowTypeName), + MinTime: new(minStartTime), + MaxTime: new(maxStartTime), Status: int32(status), - PageSize: util.Ptr(pageSize), + PageSize: new(pageSize), } rows, err := s.store.SelectFromVisibility(newVisibilityContext(), selectFilter) s.NoError(err) @@ -1281,8 +1280,8 @@ func (s *visibilitySuite) testSelectMinStartTimeMaxStartTimeStatusCloseByTypeMul startTime, executionTime, int32(status), - timePtr(closeTime), - util.Ptr(historyLength), + new(closeTime), + new(historyLength), ) result, err := s.store.ReplaceIntoVisibility(newVisibilityContext(), &visibility) s.NoError(err) @@ -1298,12 +1297,12 @@ func (s *visibilitySuite) testSelectMinStartTimeMaxStartTimeStatusCloseByTypeMul selectFilter := sqlplugin.VisibilitySelectFilter{ NamespaceID: namespaceID.String(), WorkflowID: nil, - RunID: util.Ptr(""), + RunID: new(""), WorkflowTypeName: nil, - MinTime: timePtr(minStartTime), - MaxTime: timePtr(maxStartTime), + MinTime: new(minStartTime), + MaxTime: new(maxStartTime), Status: int32(status), - PageSize: util.Ptr(pageSize), + PageSize: new(pageSize), } var rows []sqlplugin.VisibilityRow for { @@ -1314,7 +1313,7 @@ func (s *visibilitySuite) testSelectMinStartTimeMaxStartTimeStatusCloseByTypeMul if len(rowsPerPage) > 0 { lastVisibility := rowsPerPage[len(rowsPerPage)-1] selectFilter.MaxTime = lastVisibility.CloseTime - selectFilter.RunID = util.Ptr(lastVisibility.RunID) + selectFilter.RunID = new(lastVisibility.RunID) } else { break } @@ -1416,7 +1415,3 @@ func (s *visibilitySuite) newRandomVisibilityRow( Version: s.version, } } - -func timePtr(t time.Time) *time.Time { - return &t -} diff --git a/common/persistence/sql/sqlplugin/visibility.go b/common/persistence/sql/sqlplugin/visibility.go index 0eef18497e0..42d65b4781a 100644 --- a/common/persistence/sql/sqlplugin/visibility.go +++ b/common/persistence/sql/sqlplugin/visibility.go @@ -219,7 +219,7 @@ func parseCountGroupByGroupValue(fieldName string, value any) (any, error) { } func getDbFields() []string { - t := reflect.TypeOf(VisibilityRow{}) + t := reflect.TypeFor[VisibilityRow]() dbFields := make([]string, t.NumField()) for i := 0; i < t.NumField(); i++ { f := t.Field(i) diff --git a/common/persistence/sql/task_queues.go b/common/persistence/sql/task_queues.go index 63263df9958..686db0f05bd 100644 --- a/common/persistence/sql/task_queues.go +++ b/common/persistence/sql/task_queues.go @@ -94,7 +94,7 @@ func (m *taskQueueStore) UpdateTaskQueue( tqId, tqHash := taskQueueIdAndHash(nidBytes, request.TaskQueue, request.TaskType, persistence.SubqueueZero) var resp *persistence.UpdateTaskQueueResponse - err = m.SqlStore.txExecute(ctx, "UpdateTaskQueue", func(tx sqlplugin.Tx) error { + err = m.txExecute(ctx, "UpdateTaskQueue", func(tx sqlplugin.Tx) error { if err := lockTaskQueue(ctx, tx, tqHash, diff --git a/common/persistence/tests/cassandra_test.go b/common/persistence/tests/cassandra_test.go index f8b38b14c34..cb70e3f3b40 100644 --- a/common/persistence/tests/cassandra_test.go +++ b/common/persistence/tests/cassandra_test.go @@ -2,6 +2,7 @@ package tests import ( "context" + "slices" "strconv" "sync" "sync/atomic" @@ -696,10 +697,8 @@ func (q failingQuery) WithContext(context.Context) gocql.Query { } func (f failingSession) Query(query string, args ...any) gocql.Query { - for _, q := range f.failingQueries { - if q == query { - return failingQuery{} - } + if slices.Contains(f.failingQueries, query) { + return failingQuery{} } return f.Session.Query(query, args...) } @@ -990,7 +989,6 @@ func testCassandraQueueV2ConcurrentRangeDeleteMessages(t *testing.T, cluster *ca // Start both RangeDeleteMessages call for _, q := range qs { - q := q go func() { err := deleteMessages(ctx, q.QueueV2, queueType, queueName, q.maxIDToDelete) q.deleteErrs <- err diff --git a/common/persistence/tests/execution_mutable_state.go b/common/persistence/tests/execution_mutable_state.go index ccb415a7c0c..7ab9fb7a4a5 100644 --- a/common/persistence/tests/execution_mutable_state.go +++ b/common/persistence/tests/execution_mutable_state.go @@ -2728,7 +2728,7 @@ func (s *ExecutionMutableStateSuite) assertHEWithDB( if !assertPrefix { s.Nil(resp.NextPageToken) } - s.Equal(len(historyEvents), len(resp.HistoryEvents)) + s.Len(resp.HistoryEvents, len(historyEvents)) for i, event := range historyEvents { s.ProtoEqual(event, resp.HistoryEvents[i]) } diff --git a/common/persistence/tests/execution_mutable_state_task.go b/common/persistence/tests/execution_mutable_state_task.go index 62b7f25ba6d..c5f9bf49cfb 100644 --- a/common/persistence/tests/execution_mutable_state_task.go +++ b/common/persistence/tests/execution_mutable_state_task.go @@ -474,7 +474,7 @@ func (s *ExecutionMutableStateTaskSuite) TestGetTimerTasksOrdered() { 10, ) s.Len(loadedTasks, 2) - s.True(loadedTasks[0].GetKey().CompareTo(loadedTasks[1].GetKey()) < 0) + s.Negative(loadedTasks[0].GetKey().CompareTo(loadedTasks[1].GetKey())) } func (s *ExecutionMutableStateTaskSuite) TestGetScheduledTasksOrdered() { @@ -516,7 +516,7 @@ func (s *ExecutionMutableStateTaskSuite) TestGetScheduledTasksOrdered() { 10, ) s.Len(loadedTasks, 2) - s.True(loadedTasks[0].GetKey().CompareTo(loadedTasks[1].GetKey()) < 0) + s.Negative(loadedTasks[0].GetKey().CompareTo(loadedTasks[1].GetKey())) err = s.ExecutionManager.RangeCompleteHistoryTasks(s.Ctx, &p.RangeCompleteHistoryTasksRequest{ ShardID: s.ShardID, @@ -584,7 +584,7 @@ func (s *ExecutionMutableStateTaskSuite) PaginateTasks( for { response, err := s.ExecutionManager.GetHistoryTasks(s.Ctx, request) s.NoError(err) - s.True(len(response.Tasks) <= batchSize) + s.LessOrEqual(len(response.Tasks), batchSize) loadedTasks = append(loadedTasks, response.Tasks...) if len(response.NextPageToken) == 0 { break @@ -659,9 +659,9 @@ func (s *testSerializer) SerializeTask( ) (*commonpb.DataBlob, error) { if fakeTask, ok := task.(*tasks.FakeTask); ok { data, err := proto.Marshal(&persistencespb.TransferTaskInfo{ - NamespaceId: fakeTask.WorkflowKey.NamespaceID, - WorkflowId: fakeTask.WorkflowKey.WorkflowID, - RunId: fakeTask.WorkflowKey.RunID, + NamespaceId: fakeTask.NamespaceID, + WorkflowId: fakeTask.WorkflowID, + RunId: fakeTask.RunID, TaskType: fakeTask.GetType(), Version: fakeTask.Version, TaskId: fakeTask.TaskID, diff --git a/common/persistence/tests/mysql_test.go b/common/persistence/tests/mysql_test.go index dfff3ac3288..9463dd3ea6e 100644 --- a/common/persistence/tests/mysql_test.go +++ b/common/persistence/tests/mysql_test.go @@ -191,7 +191,7 @@ func TestMySQLHistoryV2PersistenceSuite(t *testing.T) { t.Parallel() s := new(persistencetests.HistoryV2PersistenceSuite) s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetMySQLTestClusterOption()) - s.TestBase.Setup(nil) + s.Setup(nil) suite.Run(t, s) } @@ -199,7 +199,7 @@ func TestMySQLMetadataPersistenceSuiteV2(t *testing.T) { t.Parallel() s := new(persistencetests.MetadataPersistenceSuiteV2) s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetMySQLTestClusterOption()) - s.TestBase.Setup(nil) + s.Setup(nil) suite.Run(t, s) } @@ -207,7 +207,7 @@ func TestMySQLQueuePersistence(t *testing.T) { t.Parallel() s := new(persistencetests.QueuePersistenceSuite) s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetMySQLTestClusterOption()) - s.TestBase.Setup(nil) + s.Setup(nil) suite.Run(t, s) } @@ -215,7 +215,7 @@ func TestMySQLClusterMetadataPersistence(t *testing.T) { t.Parallel() s := new(persistencetests.ClusterMetadataManagerSuite) s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetMySQLTestClusterOption()) - s.TestBase.Setup(nil) + s.Setup(nil) suite.Run(t, s) } diff --git a/common/persistence/tests/nexus_endpoint_suite.go b/common/persistence/tests/nexus_endpoint_suite.go index 45e6305125e..b924a169231 100644 --- a/common/persistence/tests/nexus_endpoint_suite.go +++ b/common/persistence/tests/nexus_endpoint_suite.go @@ -57,7 +57,7 @@ func testNexusEndpointsStoreSteadyState(t *testing.T, store persistence.NexusEnd // List when table is empty resp, err := store.ListNexusEndpoints(ctx, &persistence.ListNexusEndpointsRequest{PageSize: 10}) require.NoError(t, err) - require.Len(t, resp.Endpoints, 0) + require.Empty(t, resp.Endpoints) require.Equal(t, tableVersion.Load(), resp.TableVersion) // Create an endpoint @@ -172,7 +172,7 @@ func testNexusEndpointsStoreSteadyState(t *testing.T, store persistence.NexusEnd LastKnownTableVersion: tableVersion.Load(), }) require.NoError(t, err) - require.Len(t, resp.Endpoints, 0) + require.Empty(t, resp.Endpoints) }) } diff --git a/common/persistence/tests/postgresql_test.go b/common/persistence/tests/postgresql_test.go index 5309ac5a540..0a79c03fd92 100644 --- a/common/persistence/tests/postgresql_test.go +++ b/common/persistence/tests/postgresql_test.go @@ -181,7 +181,7 @@ func (p *PostgreSQLSuite) TestPostgreSQLHistoryV2PersistenceSuite() { s.TestBase = persistencetests.NewTestBaseWithSQL( persistencetests.GetPostgreSQLTestClusterOption(p.pluginName, p.connectAttrs), ) - s.TestBase.Setup(nil) + s.Setup(nil) suite.Run(p.T(), s) } @@ -190,7 +190,7 @@ func (p *PostgreSQLSuite) TestPostgreSQLMetadataPersistenceSuiteV2() { s.TestBase = persistencetests.NewTestBaseWithSQL( persistencetests.GetPostgreSQLTestClusterOption(p.pluginName, p.connectAttrs), ) - s.TestBase.Setup(nil) + s.Setup(nil) suite.Run(p.T(), s) } @@ -199,7 +199,7 @@ func (p *PostgreSQLSuite) TestPostgreSQLClusterMetadataPersistence() { s.TestBase = persistencetests.NewTestBaseWithSQL( persistencetests.GetPostgreSQLTestClusterOption(p.pluginName, p.connectAttrs), ) - s.TestBase.Setup(nil) + s.Setup(nil) suite.Run(p.T(), s) } @@ -208,7 +208,7 @@ func (p *PostgreSQLSuite) TestPostgreSQLQueuePersistence() { s.TestBase = persistencetests.NewTestBaseWithSQL( persistencetests.GetPostgreSQLTestClusterOption(p.pluginName, p.connectAttrs), ) - s.TestBase.Setup(nil) + s.Setup(nil) suite.Run(p.T(), s) } diff --git a/common/persistence/tests/sqlite_test.go b/common/persistence/tests/sqlite_test.go index f5173ad91e7..501cfe568be 100644 --- a/common/persistence/tests/sqlite_test.go +++ b/common/persistence/tests/sqlite_test.go @@ -560,7 +560,7 @@ func TestSQLiteHistoryV2PersistenceSuite(t *testing.T) { t.Parallel() s := new(persistencetests.HistoryV2PersistenceSuite) s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteMemoryTestClusterOption()) - s.TestBase.Setup(nil) + s.Setup(nil) suite.Run(t, s) } @@ -568,7 +568,7 @@ func TestSQLiteMetadataPersistenceSuiteV2(t *testing.T) { t.Parallel() s := new(persistencetests.MetadataPersistenceSuiteV2) s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteMemoryTestClusterOption()) - s.TestBase.Setup(nil) + s.Setup(nil) suite.Run(t, s) } @@ -576,7 +576,7 @@ func TestSQLiteClusterMetadataPersistence(t *testing.T) { t.Parallel() s := new(persistencetests.ClusterMetadataManagerSuite) s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteMemoryTestClusterOption()) - s.TestBase.Setup(nil) + s.Setup(nil) suite.Run(t, s) } @@ -584,7 +584,7 @@ func TestSQLiteQueuePersistence(t *testing.T) { t.Parallel() s := new(persistencetests.QueuePersistenceSuite) s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteMemoryTestClusterOption()) - s.TestBase.Setup(nil) + s.Setup(nil) suite.Run(t, s) } @@ -592,7 +592,7 @@ func TestSQLiteFileHistoryV2PersistenceSuite(t *testing.T) { t.Parallel() s := new(persistencetests.HistoryV2PersistenceSuite) s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteFileTestClusterOption()) - s.TestBase.Setup(nil) + s.Setup(nil) suite.Run(t, s) } @@ -600,7 +600,7 @@ func TestSQLiteFileMetadataPersistenceSuiteV2(t *testing.T) { t.Parallel() s := new(persistencetests.MetadataPersistenceSuiteV2) s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteFileTestClusterOption()) - s.TestBase.Setup(nil) + s.Setup(nil) suite.Run(t, s) } @@ -608,7 +608,7 @@ func TestSQLiteFileClusterMetadataPersistence(t *testing.T) { t.Parallel() s := new(persistencetests.ClusterMetadataManagerSuite) s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteFileTestClusterOption()) - s.TestBase.Setup(nil) + s.Setup(nil) suite.Run(t, s) } @@ -616,7 +616,7 @@ func TestSQLiteFileQueuePersistence(t *testing.T) { t.Parallel() s := new(persistencetests.QueuePersistenceSuite) s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteFileTestClusterOption()) - s.TestBase.Setup(nil) + s.Setup(nil) suite.Run(t, s) } diff --git a/common/persistence/tests/visibility_persistence_suite.go b/common/persistence/tests/visibility_persistence_suite.go index 15e77be9f89..4fda1f6d026 100644 --- a/common/persistence/tests/visibility_persistence_suite.go +++ b/common/persistence/tests/visibility_persistence_suite.go @@ -137,8 +137,8 @@ func (s *VisibilityPersistenceSuite) TestBasicVisibility() { enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING, ), }) - s.Nil(err1) - s.Equal(1, len(resp.Executions)) + s.NoError(err1) + s.Len(resp.Executions, 1) s.assertOpenExecutionEquals(startReq, resp.Executions[0]) closeReq := s.createClosedWorkflowRecord( @@ -160,8 +160,8 @@ func (s *VisibilityPersistenceSuite) TestBasicVisibility() { enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING, ), }) - s.Nil(err3) - s.Equal(0, len(resp.Executions)) + s.NoError(err3) + s.Empty(resp.Executions) // ListClosedWorkflowExecutions resp, err4 := s.VisibilityMgr.ListWorkflowExecutions(s.ctx, &manager.ListWorkflowExecutionsRequestV2{ @@ -176,8 +176,8 @@ func (s *VisibilityPersistenceSuite) TestBasicVisibility() { enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING, ), }) - s.Nil(err4) - s.Equal(1, len(resp.Executions)) + s.NoError(err4) + s.Len(resp.Executions, 1) s.assertClosedExecutionEquals(closeReq, resp.Executions[0]) } @@ -209,7 +209,7 @@ func (s *VisibilityPersistenceSuite) TestBasicVisibilityTimeSkew() { ), }) s.NoError(err1) - s.Equal(1, len(resp.Executions)) + s.Len(resp.Executions, 1) s.assertOpenExecutionEquals(openRecord, resp.Executions[0]) closedRecord := s.createClosedWorkflowRecord( @@ -232,7 +232,7 @@ func (s *VisibilityPersistenceSuite) TestBasicVisibilityTimeSkew() { ), }) s.NoError(err3) - s.Equal(0, len(resp.Executions)) + s.Empty(resp.Executions) // ListClosedWorkflowExecutions resp, err4 := s.VisibilityMgr.ListWorkflowExecutions(s.ctx, &manager.ListWorkflowExecutionsRequestV2{ @@ -248,7 +248,7 @@ func (s *VisibilityPersistenceSuite) TestBasicVisibilityTimeSkew() { ), }) s.NoError(err4) - s.Equal(1, len(resp.Executions)) + s.Len(resp.Executions, 1) s.assertClosedExecutionEquals(closedRecord, resp.Executions[0]) } @@ -284,7 +284,7 @@ func (s *VisibilityPersistenceSuite) TestBasicVisibilityShortWorkflow() { ), }) s.NoError(err3) - s.Equal(0, len(resp.Executions)) + s.Empty(resp.Executions) // ListClosedWorkflowExecutions resp, err4 := s.VisibilityMgr.ListWorkflowExecutions(s.ctx, &manager.ListWorkflowExecutionsRequestV2{ @@ -300,7 +300,7 @@ func (s *VisibilityPersistenceSuite) TestBasicVisibilityShortWorkflow() { ), }) s.NoError(err4) - s.Equal(1, len(resp.Executions)) + s.Len(resp.Executions, 1) s.assertClosedExecutionEquals(closedRecord, resp.Executions[0]) } @@ -342,8 +342,8 @@ func (s *VisibilityPersistenceSuite) TestVisibilityPagination() { enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING, ), }) - s.Nil(err2) - s.Equal(1, len(resp.Executions)) + s.NoError(err2) + s.Len(resp.Executions, 1) s.assertOpenExecutionEquals(openRecord2, resp.Executions[0]) // Use token to get the second one @@ -360,8 +360,8 @@ func (s *VisibilityPersistenceSuite) TestVisibilityPagination() { ), NextPageToken: resp.NextPageToken, }) - s.Nil(err3) - s.Equal(1, len(resp.Executions)) + s.NoError(err3) + s.Len(resp.Executions, 1) s.assertOpenExecutionEquals(openRecord1, resp.Executions[0]) // It is possible to not return non empty token which is going to return empty result @@ -380,8 +380,8 @@ func (s *VisibilityPersistenceSuite) TestVisibilityPagination() { ), NextPageToken: resp.NextPageToken, }) - s.Nil(err4) - s.Equal(0, len(resp.Executions)) + s.NoError(err4) + s.Empty(resp.Executions) } } @@ -422,7 +422,7 @@ func (s *VisibilityPersistenceSuite) TestFilteringByStartTime() { ), }) s.NoError(err) - s.Equal(1, len(resp.Executions)) + s.Len(resp.Executions, 1) s.assertOpenExecutionEquals(openRecord2, resp.Executions[0]) // List with WorkflowType filter in query string @@ -432,8 +432,8 @@ func (s *VisibilityPersistenceSuite) TestFilteringByStartTime() { PageSize: 2, Query: queryStr, }) - s.Nil(err) - s.Equal(1, len(resp.Executions)) + s.NoError(err) + s.Len(resp.Executions, 1) s.assertOpenExecutionEquals(openRecord2, resp.Executions[0]) queryStr = fmt.Sprintf(`StartTime BETWEEN "%v" AND "%v"`, time.Now().Add(-3*time.Hour).Format(time.RFC3339Nano), time.Now().Format(time.RFC3339Nano)) @@ -442,16 +442,16 @@ func (s *VisibilityPersistenceSuite) TestFilteringByStartTime() { PageSize: 2, Query: queryStr, }) - s.Nil(err) - s.Equal(2, len(resp.Executions)) + s.NoError(err) + s.Len(resp.Executions, 2) resp, err = s.VisibilityMgr.ListWorkflowExecutions(s.ctx, &manager.ListWorkflowExecutionsRequestV2{ NamespaceID: testNamespaceUUID, PageSize: 2, Query: queryStr + ` AND WorkflowType = "visibility-workflow-1"`, }) - s.Nil(err) - s.Equal(1, len(resp.Executions)) + s.NoError(err) + s.Len(resp.Executions, 1) s.assertOpenExecutionEquals(openRecord1, resp.Executions[0]) } @@ -493,8 +493,8 @@ func (s *VisibilityPersistenceSuite) TestFilteringByType() { "visibility-workflow-1", ), }) - s.Nil(err2) - s.Equal(1, len(resp.Executions)) + s.NoError(err2) + s.Len(resp.Executions, 1) s.assertOpenExecutionEquals(openRecord1, resp.Executions[0]) // List with WorkflowType filter in query string @@ -503,8 +503,8 @@ func (s *VisibilityPersistenceSuite) TestFilteringByType() { PageSize: 2, Query: `WorkflowType = "visibility-workflow-1"`, }) - s.Nil(err) - s.Equal(1, len(resp.Executions)) + s.NoError(err) + s.Len(resp.Executions, 1) s.assertOpenExecutionEquals(openRecord1, resp.Executions[0]) // Close both executions @@ -530,8 +530,8 @@ func (s *VisibilityPersistenceSuite) TestFilteringByType() { "visibility-workflow-2", ), }) - s.Nil(err5) - s.Equal(1, len(resp.Executions)) + s.NoError(err5) + s.Len(resp.Executions, 1) s.assertClosedExecutionEquals(closedRecord2, resp.Executions[0]) // List with WorkflowType filter in query string @@ -540,8 +540,8 @@ func (s *VisibilityPersistenceSuite) TestFilteringByType() { PageSize: 2, Query: `WorkflowType = "visibility-workflow-2"`, }) - s.Nil(err) - s.Equal(1, len(resp.Executions)) + s.NoError(err) + s.Len(resp.Executions, 1) s.assertClosedExecutionEquals(closedRecord2, resp.Executions[0]) } @@ -583,8 +583,8 @@ func (s *VisibilityPersistenceSuite) TestFilteringByWorkflowID() { "visibility-filtering-test1", ), }) - s.Nil(err2) - s.Equal(1, len(resp.Executions)) + s.NoError(err2) + s.Len(resp.Executions, 1) s.assertOpenExecutionEquals(openRecord1, resp.Executions[0]) // List workflow with workflowID filter in query string @@ -593,8 +593,8 @@ func (s *VisibilityPersistenceSuite) TestFilteringByWorkflowID() { PageSize: 2, Query: `WorkflowId = "visibility-filtering-test1"`, }) - s.Nil(err) - s.Equal(1, len(resp.Executions)) + s.NoError(err) + s.Len(resp.Executions, 1) s.assertOpenExecutionEquals(openRecord1, resp.Executions[0]) // Close both executions @@ -620,8 +620,8 @@ func (s *VisibilityPersistenceSuite) TestFilteringByWorkflowID() { "visibility-filtering-test2", ), }) - s.Nil(err5) - s.Equal(1, len(resp.Executions)) + s.NoError(err5) + s.Len(resp.Executions, 1) s.assertClosedExecutionEquals(closedRecord2, resp.Executions[0]) // List workflow with workflowID filter in query string @@ -630,8 +630,8 @@ func (s *VisibilityPersistenceSuite) TestFilteringByWorkflowID() { PageSize: 2, Query: `WorkflowId = "visibility-filtering-test2"`, }) - s.Nil(err) - s.Equal(1, len(resp.Executions)) + s.NoError(err) + s.Len(resp.Executions, 1) s.assertClosedExecutionEquals(closedRecord2, resp.Executions[0]) } @@ -682,8 +682,8 @@ func (s *VisibilityPersistenceSuite) TestFilteringByStatus() { enumspb.WORKFLOW_EXECUTION_STATUS_FAILED, ), }) - s.Nil(err4) - s.Equal(1, len(resp.Executions)) + s.NoError(err4) + s.Len(resp.Executions, 1) s.assertClosedExecutionEquals(closeRecord2, resp.Executions[0]) resp, err := s.VisibilityMgr.ListWorkflowExecutions(s.ctx, &manager.ListWorkflowExecutionsRequestV2{ @@ -691,8 +691,8 @@ func (s *VisibilityPersistenceSuite) TestFilteringByStatus() { PageSize: 5, Query: `ExecutionStatus = "Failed"`, }) - s.Nil(err) - s.Equal(1, len(resp.Executions)) + s.NoError(err) + s.Len(resp.Executions, 1) s.assertClosedExecutionEquals(closeRecord2, resp.Executions[0]) } @@ -738,8 +738,8 @@ func (s *VisibilityPersistenceSuite) TestDeleteWorkflow() { enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING, ), }) - s.Nil(err3) - s.Equal(closedRows, len(resp.Executions)) + s.NoError(err3) + s.Len(resp.Executions, closedRows) // Delete closed workflow for _, row := range resp.Executions { @@ -748,7 +748,7 @@ func (s *VisibilityPersistenceSuite) TestDeleteWorkflow() { WorkflowID: row.GetExecution().GetWorkflowId(), RunID: row.GetExecution().GetRunId(), }) - s.Nil(err4) + s.NoError(err4) } // ListClosedWorkflowExecutions @@ -764,8 +764,8 @@ func (s *VisibilityPersistenceSuite) TestDeleteWorkflow() { enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING, ), }) - s.Nil(err5) - s.Equal(0, len(resp.Executions)) + s.NoError(err5) + s.Empty(resp.Executions) // ListOpenWorkflowExecutions resp, err6 := s.VisibilityMgr.ListWorkflowExecutions(s.ctx, &manager.ListWorkflowExecutionsRequestV2{ @@ -780,8 +780,8 @@ func (s *VisibilityPersistenceSuite) TestDeleteWorkflow() { ), PageSize: 10, }) - s.Nil(err6) - s.Equal(openRows-closedRows, len(resp.Executions)) + s.NoError(err6) + s.Len(resp.Executions, openRows-closedRows) // Delete open workflow for _, row := range resp.Executions { err7 := s.VisibilityMgr.DeleteWorkflowExecution(s.ctx, &manager.VisibilityDeleteWorkflowExecutionRequest{ @@ -789,7 +789,7 @@ func (s *VisibilityPersistenceSuite) TestDeleteWorkflow() { WorkflowID: row.GetExecution().GetWorkflowId(), RunID: row.GetExecution().GetRunId(), }) - s.Nil(err7) + s.NoError(err7) } resp, err8 := s.VisibilityMgr.ListWorkflowExecutions(s.ctx, &manager.ListWorkflowExecutionsRequestV2{ NamespaceID: testNamespaceUUID, @@ -801,8 +801,8 @@ func (s *VisibilityPersistenceSuite) TestDeleteWorkflow() { ), PageSize: 10, }) - s.Nil(err8) - s.Equal(0, len(resp.Executions)) + s.NoError(err8) + s.Empty(resp.Executions) } // TestUpsertWorkflowExecution test @@ -1063,7 +1063,7 @@ func (s *VisibilityPersistenceSuite) listWithPagination(namespaceID namespace.ID PageSize: pageSize, Query: "", }) - s.Nil(err) + s.NoError(err) executions = append(executions, resp.Executions...) for len(resp.NextPageToken) > 0 { @@ -1073,7 +1073,7 @@ func (s *VisibilityPersistenceSuite) listWithPagination(namespaceID namespace.ID Query: "", NextPageToken: resp.NextPageToken, }) - s.Nil(err) + s.NoError(err) executions = append(executions, resp.Executions...) } @@ -1101,7 +1101,7 @@ func (s *VisibilityPersistenceSuite) createClosedWorkflowRecord( HistoryLength: 5, } err := s.VisibilityMgr.RecordWorkflowExecutionClosed(s.ctx, closeReq) - s.Nil(err) + s.NoError(err) return closeReq } @@ -1131,7 +1131,7 @@ func (s *VisibilityPersistenceSuite) createOpenWorkflowRecord( }, } err := s.VisibilityMgr.RecordWorkflowExecutionStarted(s.ctx, startReq) - s.Nil(err) + s.NoError(err) return startReq } @@ -1154,6 +1154,6 @@ func (s *VisibilityPersistenceSuite) assertOpenExecutionEquals( s.Equal(req.WorkflowTypeName, resp.GetType().GetName()) s.Equal(persistence.UnixMilliseconds(req.StartTime), persistence.UnixMilliseconds(timestamp.TimeValue(resp.GetStartTime()))) s.Nil(resp.CloseTime) - s.Equal(resp.Status, enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING) + s.Equal(enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING, resp.Status) s.Zero(resp.HistoryLength) } diff --git a/common/persistence/visibility/store/elasticsearch/processor_test.go b/common/persistence/visibility/store/elasticsearch/processor_test.go index 119745ef4d2..b8136fbd57e 100644 --- a/common/persistence/visibility/store/elasticsearch/processor_test.go +++ b/common/persistence/visibility/store/elasticsearch/processor_test.go @@ -436,7 +436,7 @@ func (s *processorSuite) TestExtractVisibilityTaskKey() { request := elastic.NewBulkIndexRequest() s.mockMetricHandler.EXPECT().Counter(metrics.ElasticsearchBulkProcessorCorruptedData.Name()).Return(metrics.NoopCounterMetricFunc) visibilityTaskKey := s.esProcessor.extractVisibilityTaskKey(request) - s.Equal("", visibilityTaskKey) + s.Empty(visibilityTaskKey) m := map[string]any{ sadefs.VisibilityTaskKey: 1, @@ -456,7 +456,7 @@ func (s *processorSuite) TestExtractVisibilityTaskKey_Delete() { // ensure compatible with dependency source, err := request.Source() s.NoError(err) - s.Equal(1, len(source)) + s.Len(source, 1) var body map[string]map[string]any err = json.Unmarshal([]byte(source[0]), &body) s.NoError(err) @@ -465,7 +465,7 @@ func (s *processorSuite) TestExtractVisibilityTaskKey_Delete() { s.mockMetricHandler.EXPECT().Counter(metrics.ElasticsearchBulkProcessorCorruptedData.Name()).Return(metrics.NoopCounterMetricFunc) key := s.esProcessor.extractVisibilityTaskKey(request) - s.Equal("", key) + s.Empty(key) id := "id" request.Id(id) @@ -497,7 +497,7 @@ func (s *processorSuite) TestIsResponseSuccess() { func (s *processorSuite) TestErrorReasonFromResponse() { reason := "error reason" resp := &elastic.BulkResponseItem{Status: 400} - s.Equal("", extractErrorReason(resp)) + s.Empty(extractErrorReason(resp)) resp.Error = &elastic.ErrorDetails{Reason: reason} s.Equal(reason, extractErrorReason(resp)) } diff --git a/common/persistence/visibility/store/elasticsearch/visibility_store_write_test.go b/common/persistence/visibility/store/elasticsearch/visibility_store_write_test.go index 21e1226b219..392b30d86b2 100644 --- a/common/persistence/visibility/store/elasticsearch/visibility_store_write_test.go +++ b/common/persistence/visibility/store/elasticsearch/visibility_store_write_test.go @@ -64,7 +64,7 @@ func (s *ESVisibilitySuite) TestRecordWorkflowExecutionStarted() { s.EqualValues(request.SearchAttributes.GetIndexedFields()["CustomTextField"].Data, fmt.Sprintf("%q", CustomTextField)) s.Equal(client.BulkableRequestTypeIndex, bulkRequest.RequestType) - s.EqualValues(request.TaskID, bulkRequest.Version) + s.Equal(request.TaskID, bulkRequest.Version) s.Equal("wid~rid", bulkRequest.ID) s.Equal("test-index", bulkRequest.Index) @@ -97,7 +97,7 @@ func (s *ESVisibilitySuite) TestRecordWorkflowExecutionStarted_EmptyRequest() { s.False(ok) s.Equal(client.BulkableRequestTypeIndex, bulkRequest.RequestType) - s.EqualValues(request.TaskID, bulkRequest.Version) + s.Equal(request.TaskID, bulkRequest.Version) s.Equal("~", bulkRequest.ID) s.Equal("test-index", bulkRequest.Index) @@ -154,7 +154,7 @@ func (s *ESVisibilitySuite) TestRecordWorkflowExecutionClosed() { s.EqualValues(request.HistoryLength, body[sadefs.HistoryLength]) s.Equal(client.BulkableRequestTypeIndex, bulkRequest.RequestType) - s.EqualValues(request.TaskID, bulkRequest.Version) + s.Equal(request.TaskID, bulkRequest.Version) s.Equal("wid~rid", bulkRequest.ID) s.Equal("test-index", bulkRequest.Index) @@ -187,7 +187,7 @@ func (s *ESVisibilitySuite) TestRecordWorkflowExecutionClosed_EmptyRequest() { s.False(ok) s.Equal(client.BulkableRequestTypeIndex, bulkRequest.RequestType) - s.EqualValues(request.TaskID, bulkRequest.Version) + s.Equal(request.TaskID, bulkRequest.Version) s.Equal("~", bulkRequest.ID) s.Equal("test-index", bulkRequest.Index) @@ -214,7 +214,7 @@ func (s *ESVisibilitySuite) TestDeleteExecution() { s.Equal("wid~rid", visibilityTaskKey) s.Equal(client.BulkableRequestTypeDelete, bulkRequest.RequestType) - s.EqualValues(request.TaskID, bulkRequest.Version) + s.Equal(request.TaskID, bulkRequest.Version) s.Equal("wid~rid", bulkRequest.ID) s.Equal("test-index", bulkRequest.Index) diff --git a/common/persistence/visibility/store/query/converter.go b/common/persistence/visibility/store/query/converter.go index 394150ba81a..e0147e7f066 100644 --- a/common/persistence/visibility/store/query/converter.go +++ b/common/persistence/visibility/store/query/converter.go @@ -714,10 +714,8 @@ func (c *QueryConverter[ExprT]) validateValueType( } func IsGroupByFieldAllowed(fieldName string) bool { - for _, allowedField := range groupByFieldAllowlist { - if fieldName == allowedField { - return true - } + if slices.Contains(groupByFieldAllowlist, fieldName) { + return true } for _, allowedPrefix := range groupByFieldPrefixAllowlist { if strings.HasPrefix(fieldName, allowedPrefix) { diff --git a/common/persistence/visibility/store/sql/pagination_token_legacy_test.go b/common/persistence/visibility/store/sql/pagination_token_legacy_test.go index e71623785c1..5eb03aca143 100644 --- a/common/persistence/visibility/store/sql/pagination_token_legacy_test.go +++ b/common/persistence/visibility/store/sql/pagination_token_legacy_test.go @@ -17,9 +17,9 @@ func TestSerializePageToken(t *testing.T) { } data, err := serializePageTokenLegacy(&token) s.NoError(err) - s.Equal( - []byte(`{"CloseTime":"2023-03-21T14:20:32Z","StartTime":"2023-03-21T14:10:32Z","RunID":"test-run-id"}`), - data, + s.JSONEq( + `{"CloseTime":"2023-03-21T14:20:32Z","StartTime":"2023-03-21T14:10:32Z","RunID":"test-run-id"}`, + string(data), ) } diff --git a/common/persistence/visibility/store/sql/query_converter_legacy.go b/common/persistence/visibility/store/sql/query_converter_legacy.go index 46d07b7a976..de11fb268d4 100644 --- a/common/persistence/visibility/store/sql/query_converter_legacy.go +++ b/common/persistence/visibility/store/sql/query_converter_legacy.go @@ -3,6 +3,7 @@ package sql import ( "errors" "fmt" + "slices" "strconv" "strings" "time" @@ -656,12 +657,7 @@ func (c *QueryConverterLegacy) convertIsExpr(exprRef *sqlparser.Expr) error { } func isSupportedOperator(supportedOperators []string, operator string) bool { - for _, op := range supportedOperators { - if operator == op { - return true - } - } - return false + return slices.Contains(supportedOperators, operator) } func isSupportedComparisonOperator(operator string) bool { @@ -677,10 +673,5 @@ func isSupportedTextOperator(operator string) bool { } func isSupportedTypeRangeCond(saType enumspb.IndexedValueType) bool { - for _, tp := range supportedTypesRangeCond { - if saType == tp { - return true - } - } - return false + return slices.Contains(supportedTypesRangeCond, saType) } diff --git a/common/persistence/visibility/visibility_manager_dual.go b/common/persistence/visibility/visibility_manager_dual.go index 68afb94f9c0..5f209db243c 100644 --- a/common/persistence/visibility/visibility_manager_dual.go +++ b/common/persistence/visibility/visibility_manager_dual.go @@ -3,6 +3,7 @@ package visibility import ( "context" "errors" + "slices" "sync" "go.temporal.io/server/api/visibilityservice/v1" @@ -71,12 +72,7 @@ func (v *VisibilityManagerDual) GetStoreNames() []string { } func (v *VisibilityManagerDual) HasStoreName(stName string) bool { - for _, sn := range v.GetStoreNames() { - if sn == stName { - return true - } - } - return false + return slices.Contains(v.GetStoreNames(), stName) } func (v *VisibilityManagerDual) GetIndexName() string { @@ -235,11 +231,9 @@ func dualWriteWrapper[RequestT any]( errs := make([]error, len(ms)) wg := sync.WaitGroup{} for i, m := range ms { - wg.Add(1) - go func() { - defer wg.Done() + wg.Go(func() { errs[i] = fn(m, ctx, request) - }() + }) } wg.Wait() return errors.Join(errs...) diff --git a/common/persistence/workflow_state_status_validator_test.go b/common/persistence/workflow_state_status_validator_test.go index bfb49d0b441..eeaf285a8d0 100644 --- a/common/persistence/workflow_state_status_validator_test.go +++ b/common/persistence/workflow_state_status_validator_test.go @@ -55,7 +55,7 @@ func (s *workflowStateStatusSuite) TestCreateWorkflowStateStatus_WorkflowStateCr s.Error(ValidateCreateWorkflowStateStatus(enumsspb.WORKFLOW_EXECUTION_STATE_COMPLETED, enumspb.WORKFLOW_EXECUTION_STATUS_PAUSED)) for _, status := range statuses { - s.NotNil(ValidateCreateWorkflowStateStatus(enumsspb.WORKFLOW_EXECUTION_STATE_CREATED, status)) + s.Error(ValidateCreateWorkflowStateStatus(enumsspb.WORKFLOW_EXECUTION_STATE_CREATED, status)) } } @@ -72,7 +72,7 @@ func (s *workflowStateStatusSuite) TestCreateWorkflowStateStatus_WorkflowStateRu s.NoError(ValidateCreateWorkflowStateStatus(enumsspb.WORKFLOW_EXECUTION_STATE_RUNNING, enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING)) for _, status := range statuses { - s.NotNil(ValidateCreateWorkflowStateStatus(enumsspb.WORKFLOW_EXECUTION_STATE_RUNNING, status)) + s.Error(ValidateCreateWorkflowStateStatus(enumsspb.WORKFLOW_EXECUTION_STATE_RUNNING, status)) } } diff --git a/common/searchattribute/manager_test.go b/common/searchattribute/manager_test.go index 3d2df087526..203b109ae81 100644 --- a/common/searchattribute/manager_test.go +++ b/common/searchattribute/manager_test.go @@ -131,7 +131,7 @@ func (s *searchAttributesManagerSuite) TestGetSearchAttributesCache_Error() { s.logger.Expect(testlogger.Error, "failed to refresh search attributes") searchAttributes, err := s.manager.GetSearchAttributes("index-name", false) s.Error(err) - s.Len(searchAttributes.Custom(), 0) + s.Empty(searchAttributes.Custom()) } func (s *searchAttributesManagerSuite) TestGetSearchAttributesCache_NotFoundError() { @@ -140,12 +140,12 @@ func (s *searchAttributesManagerSuite) TestGetSearchAttributesCache_NotFoundErro s.mockClusterMetadataManager.EXPECT().GetCurrentClusterMetadata(gomock.Any()).Return(nil, serviceerror.NewNotFound("not found")) searchAttributes, err := s.manager.GetSearchAttributes("index-name", false) s.NoError(err) - s.Len(searchAttributes.Custom(), 0) + s.Empty(searchAttributes.Custom()) // GetClusterMetadata() shouldn't be called, because results are cached. searchAttributes, err = s.manager.GetSearchAttributes("index-name", false) s.NoError(err) - s.Len(searchAttributes.Custom(), 0) + s.Empty(searchAttributes.Custom()) } func (s *searchAttributesManagerSuite) TestGetSearchAttributesCache_UnavailableError() { @@ -156,7 +156,7 @@ func (s *searchAttributesManagerSuite) TestGetSearchAttributesCache_UnavailableE s.logger.Expect(testlogger.Error, "failed to refresh search attributes") searchAttributes, err := s.manager.GetSearchAttributes("index-name", false) s.Error(err) - s.Len(searchAttributes.Custom(), 0) + s.Empty(searchAttributes.Custom()) // Move time forward s.timeSource.Update(time.Date(2020, 8, 22, 1, 1, 0, 0, time.UTC)) @@ -231,13 +231,13 @@ func (s *searchAttributesManagerSuite) TestGetSearchAttributesCache_RefreshIfAbs searchAttributes, err := s.manager.GetSearchAttributes("index-name", false) s.NoError(err) - s.Len(searchAttributes.Custom(), 0) + s.Empty(searchAttributes.Custom()) s.timeSource.Update(time.Date(2020, 8, 22, 1, 0, 1, 0, time.UTC)) searchAttributes, err = s.manager.GetSearchAttributes("index-name", false) s.NoError(err) - s.Len(searchAttributes.Custom(), 0) + s.Empty(searchAttributes.Custom()) s.forceCacheRefresh = true searchAttributes, err = s.manager.GetSearchAttributes("index-name", false) diff --git a/common/searchattribute/stringify_test.go b/common/searchattribute/stringify_test.go index e4ac2b5f2ec..02399da5f09 100644 --- a/common/searchattribute/stringify_test.go +++ b/common/searchattribute/stringify_test.go @@ -405,7 +405,7 @@ func (s *StringifySuite) Test_parseJSONArray() { } for _, testCase := range testCases2 { res, err := parseJSONArray(testCase.input, testCase.indexedValueType) - s.NotNil(err) + s.Error(err) s.Nil(res) } } diff --git a/common/searchattribute/test_provider.go b/common/searchattribute/test_provider.go index daa11414d00..c3a476577b3 100644 --- a/common/searchattribute/test_provider.go +++ b/common/searchattribute/test_provider.go @@ -123,21 +123,22 @@ func (t *TestMapper) GetFieldName(alias string, namespace string) (string, error // This error must be always ignored. return "", serviceerror.NewInvalidArgument("unmapped alias") } - if namespace == "error-namespace" { + switch namespace { + case "error-namespace": return "", serviceerror.NewInvalidArgument( fmt.Sprintf("Namespace %s has no mapping defined for search attribute %s", namespace, alias), ) - } else if namespace == "test-namespace" || namespace == t.Namespace { + case "test-namespace", t.Namespace: if alias == "pass-through" { return alias, nil } if t.WithCustomScheduleID && alias == sadefs.ScheduleID { return TestScheduleIDFieldName, nil } - if strings.HasPrefix(alias, "AliasFor") { - return strings.TrimPrefix(alias, "AliasFor"), nil - } else if strings.HasPrefix(alias, "AliasWithHyphenFor-") { - return strings.TrimPrefix(alias, "AliasWithHyphenFor-"), nil + if after, ok := strings.CutPrefix(alias, "AliasFor"); ok { + return after, nil + } else if after, ok := strings.CutPrefix(alias, "AliasWithHyphenFor-"); ok { + return after, nil } return "", serviceerror.NewInvalidArgument("mapper error") } diff --git a/common/tasks/fifo_scheduler_test.go b/common/tasks/fifo_scheduler_test.go index a90c8e56680..28002c51992 100644 --- a/common/tasks/fifo_scheduler_test.go +++ b/common/tasks/fifo_scheduler_test.go @@ -155,16 +155,14 @@ func (s *fifoSchedulerSuite) TestParallelSubmitProcess() { } close(channel) - endWaitGroup.Add(1) - go func() { + endWaitGroup.Go(func() { startWaitGroup.Wait() for mockTask := range channel { s.scheduler.Submit(mockTask) } - endWaitGroup.Done() - }() + }) startWaitGroup.Done() } endWaitGroup.Wait() diff --git a/common/tasks/group_by_scheduler_test.go b/common/tasks/group_by_scheduler_test.go index 84f5dece2fb..7932173ce9e 100644 --- a/common/tasks/group_by_scheduler_test.go +++ b/common/tasks/group_by_scheduler_test.go @@ -71,10 +71,10 @@ func TestSchedulerLogic(t *testing.T) { task4b.EXPECT().Abort().Times(1) require.True(t, sched.TrySubmit(task4b)) - require.Equal(t, 2, len(scheds)) - require.Equal(t, 1, len(scheds["a"].buffer)) + require.Len(t, scheds, 2) + require.Len(t, scheds["a"].buffer, 1) require.Equal(t, "a", scheds["a"].buffer[0].(RunnableTask).Task.(taskWithID).ID) - require.Equal(t, 1, len(scheds["b"].buffer)) + require.Len(t, scheds["b"].buffer, 1) require.Equal(t, "b", scheds["b"].buffer[0].(RunnableTask).Task.(taskWithID).ID) // Stop shuts down all groups. require.True(t, scheds["a"].stopped && scheds["b"].stopped) diff --git a/common/tasks/interleaved_weighted_round_robin_test.go b/common/tasks/interleaved_weighted_round_robin_test.go index 193787e68a7..3c2cf337a90 100644 --- a/common/tasks/interleaved_weighted_round_robin_test.go +++ b/common/tasks/interleaved_weighted_round_robin_test.go @@ -287,16 +287,14 @@ func (s *interleavedWeightedRoundRobinSchedulerSuite) TestParallelSubmitSchedule } close(channel) - endWaitGroup.Add(1) - go func() { + endWaitGroup.Go(func() { startWaitGroup.Wait() for mockTask := range channel { s.scheduler.Submit(mockTask) } - endWaitGroup.Done() - }() + }) startWaitGroup.Done() } endWaitGroup.Wait() diff --git a/common/tasks/sequential_scheduler_test.go b/common/tasks/sequential_scheduler_test.go index 1ae6f7fb276..7a410d905d4 100644 --- a/common/tasks/sequential_scheduler_test.go +++ b/common/tasks/sequential_scheduler_test.go @@ -172,16 +172,14 @@ func (s *sequentialSchedulerSuite) TestParallelSubmitProcess() { } close(channel) - endWaitGroup.Add(1) - go func() { + endWaitGroup.Go(func() { startWaitGroup.Wait() for mockTask := range channel { s.scheduler.Submit(mockTask) } - endWaitGroup.Done() - }() + }) startWaitGroup.Done() } endWaitGroup.Wait() diff --git a/service/history/archival/archiver_test.go b/service/history/archival/archiver_test.go index b9252fd6002..70ba453ba27 100644 --- a/service/history/archival/archiver_test.go +++ b/service/history/archival/archiver_test.go @@ -151,7 +151,6 @@ func TestArchiver(t *testing.T) { }, }, } { - c := c // capture range variable t.Run(c.Name, func(t *testing.T) { t.Parallel() diff --git a/service/history/archival_queue_task_executor_test.go b/service/history/archival_queue_task_executor_test.go index 416b417bb07..d7d5c2524c3 100644 --- a/service/history/archival_queue_task_executor_test.go +++ b/service/history/archival_queue_task_executor_test.go @@ -283,7 +283,6 @@ func TestArchivalQueueTaskExecutor(t *testing.T) { }, }, } { - c := c // store c in closure to prevent loop from changing it when a parallel task is accessing it t.Run(c.Name, func(t *testing.T) { t.Parallel() var p params diff --git a/service/history/queue_factory_base_test.go b/service/history/queue_factory_base_test.go index bc28dab5380..896fac88d8e 100644 --- a/service/history/queue_factory_base_test.go +++ b/service/history/queue_factory_base_test.go @@ -48,7 +48,6 @@ func TestQueueModule_ArchivalQueue(t *testing.T) { ExpectArchivalQueue: true, }, } { - c := c t.Run(c.Name, c.Run) } } diff --git a/service/history/queues/queue_base.go b/service/history/queues/queue_base.go index fc0140b6d53..388447be7d3 100644 --- a/service/history/queues/queue_base.go +++ b/service/history/queues/queue_base.go @@ -183,7 +183,7 @@ func newQueueBase( slices := make([]Slice, 0, len(scopes)) for _, scope := range scopes { - slices = append(slices, NewSlice(paginationFnProvider, executableFactory, monitor, scope, grouper, options.ReaderOptions.MaxPredicateSize)) + slices = append(slices, NewSlice(paginationFnProvider, executableFactory, monitor, scope, grouper, options.MaxPredicateSize)) } readerGroup.NewReader(readerID, slices...) @@ -271,7 +271,7 @@ func (p *queueBase) processNewRange() { p.monitor, newReadScope, p.grouper, - p.options.ReaderOptions.MaxPredicateSize, + p.options.MaxPredicateSize, )) } diff --git a/service/history/queues/reader_group_test.go b/service/history/queues/reader_group_test.go index 5a60cda928f..525d1867d20 100644 --- a/service/history/queues/reader_group_test.go +++ b/service/history/queues/reader_group_test.go @@ -98,7 +98,7 @@ func (s *readerGroupSuite) TestRemoveReader() { s.readerGroup.RemoveReader(readerID) s.Equal(common.DaemonStatusStopped, r.(*testReader).status) - s.Len(s.readerGroup.Readers(), 0) + s.Empty(s.readerGroup.Readers()) } func (s *readerGroupSuite) TestForEach() { diff --git a/service/history/queues/reader_test.go b/service/history/queues/reader_test.go index 1b0e4fde814..43508bfeab4 100644 --- a/service/history/queues/reader_test.go +++ b/service/history/queues/reader_test.go @@ -500,7 +500,7 @@ func (s *readerSuite) validateSlicesOrdered( } for idx := range scopes[:len(scopes)-1] { - s.True(scopes[idx].Range.ExclusiveMax.CompareTo(scopes[idx+1].Range.InclusiveMin) <= 0) + s.LessOrEqual(scopes[idx].Range.ExclusiveMax.CompareTo(scopes[idx+1].Range.InclusiveMin), 0) } } diff --git a/service/history/queues/slice.go b/service/history/queues/slice.go index 8fc4490d7f3..e9cf6c3ab80 100644 --- a/service/history/queues/slice.go +++ b/service/history/queues/slice.go @@ -97,7 +97,7 @@ func (s *SliceImpl) SplitByRange(key tasks.Key) (left Slice, right Slice) { func (s *SliceImpl) splitByRange(key tasks.Key) (left *SliceImpl, right *SliceImpl) { leftScope, rightScope := s.scope.SplitByRange(key) - leftTaskTracker, rightTaskTracker := s.executableTracker.split(leftScope, rightScope) + leftTaskTracker, rightTaskTracker := s.split(leftScope, rightScope) leftIterators := make([]Iterator, 0, len(s.iterators)/2) rightIterators := make([]Iterator, 0, len(s.iterators)/2) @@ -128,7 +128,7 @@ func (s *SliceImpl) SplitByPredicate(predicate tasks.Predicate) (pass Slice, fai s.stateSanityCheck() passScope, failScope := s.scope.SplitByPredicate(predicate) - passTaskTracker, failTaskTracker := s.executableTracker.split(passScope, failScope) + passTaskTracker, failTaskTracker := s.split(passScope, failScope) passIterators := make([]Iterator, 0, len(s.iterators)) failIterators := make([]Iterator, 0, len(s.iterators)) @@ -189,7 +189,7 @@ func (s *SliceImpl) MergeWithSlice(slice Slice) []Slice { } func (s *SliceImpl) mergeByRange(incomingSlice *SliceImpl) *SliceImpl { - mergedTaskTracker := s.executableTracker.merge(incomingSlice.executableTracker) + mergedTaskTracker := s.merge(incomingSlice.executableTracker) mergedIterators := s.mergeIterators(incomingSlice) s.destroy() @@ -203,7 +203,7 @@ func (s *SliceImpl) mergeByRange(incomingSlice *SliceImpl) *SliceImpl { } func (s *SliceImpl) mergeByPredicate(incomingSlice *SliceImpl) *SliceImpl { - mergedTaskTracker := s.executableTracker.merge(incomingSlice.executableTracker) + mergedTaskTracker := s.merge(incomingSlice.executableTracker) mergedIterators := s.mergeIterators(incomingSlice) s.destroy() @@ -279,7 +279,7 @@ func (s *SliceImpl) CompactWithSlice(slice Slice) Slice { tasks.OrPredicates(s.scope.Predicate, incomingSlice.scope.Predicate), ) - compactedTaskTracker := s.executableTracker.merge(incomingSlice.executableTracker) + compactedTaskTracker := s.merge(incomingSlice.executableTracker) compactedIterators := s.mergeIterators(incomingSlice) s.destroy() @@ -300,13 +300,13 @@ func (s *SliceImpl) ShrinkScope() int { // shrinkRange shrinks the executableTracker, which may remove tracked pending executables. Set the // pending task count to reflect that. - s.monitor.SetSlicePendingTaskCount(s, len(s.executableTracker.pendingExecutables)) + s.monitor.SetSlicePendingTaskCount(s, len(s.pendingExecutables)) return tasksCompleted } func (s *SliceImpl) shrinkRange() int { - minPendingTaskKey, tasksCompleted := s.executableTracker.shrink() + minPendingTaskKey, tasksCompleted := s.shrink() minIteratorKey := tasks.MaximumKey if len(s.iterators) != 0 { @@ -335,7 +335,7 @@ func (s *SliceImpl) shrinkPredicate() { } // TODO: this should be generic enough to shrink any predicate type, probably doesn't belong here. - pendingPerKey := s.executableTracker.pendingPerKey + pendingPerKey := s.pendingPerKey if len(pendingPerKey) > shrinkPredicateMaxPendingKeys { // only shrink predicate if there're few keys left return @@ -353,7 +353,7 @@ func (s *SliceImpl) SelectTasks(readerID int64, batchSize int) ([]Executable, er } defer func() { - s.monitor.SetSlicePendingTaskCount(s, len(s.executableTracker.pendingExecutables)) + s.monitor.SetSlicePendingTaskCount(s, len(s.pendingExecutables)) }() executables := make([]Executable, 0, batchSize) @@ -381,7 +381,7 @@ func (s *SliceImpl) SelectTasks(readerID int64, batchSize int) ([]Executable, er } executable := s.executableFactory.NewExecutable(task, readerID) - s.executableTracker.add(executable) + s.add(executable) executables = append(executables, executable) } else { s.iterators = s.iterators[1:] @@ -401,7 +401,7 @@ func (s *SliceImpl) TaskStats() TaskStats { s.stateSanityCheck() return TaskStats{ - PendingPerKey: s.executableTracker.pendingPerKey, + PendingPerKey: s.pendingPerKey, } } @@ -413,9 +413,9 @@ func (s *SliceImpl) Clear() { s.iterators = []Iterator{ NewIterator(s.paginationFnProvider, s.scope.Range), } - s.executableTracker.clear() + s.clear() - s.monitor.SetSlicePendingTaskCount(s, len(s.executableTracker.pendingExecutables)) + s.monitor.SetSlicePendingTaskCount(s, len(s.pendingExecutables)) } func (s *SliceImpl) destroy() { @@ -446,7 +446,7 @@ func (s *SliceImpl) newSlice( maxPredicateSizeFn: s.maxPredicateSizeFn, } slice.ensurePredicateSizeLimit() - slice.monitor.SetSlicePendingTaskCount(slice, len(slice.executableTracker.pendingExecutables)) + slice.monitor.SetSlicePendingTaskCount(slice, len(slice.pendingExecutables)) return slice } diff --git a/service/history/queues/slice_test.go b/service/history/queues/slice_test.go index 3277fff5237..1fc1a63292e 100644 --- a/service/history/queues/slice_test.go +++ b/service/history/queues/slice_test.go @@ -432,7 +432,7 @@ func (s *sliceSuite) TestShrinkScope_ShrinkPredicate() { mockExecutable.EXPECT().State().Return(ctasks.TaskStatePending).MaxTimes(1) } - slice.executableTracker.add(executable) + slice.add(executable) } slice.ShrinkScope() diff --git a/service/history/shard/context_impl.go b/service/history/shard/context_impl.go index 450c6aadbf7..3085e369cdb 100644 --- a/service/history/shard/context_impl.go +++ b/service/history/shard/context_impl.go @@ -2288,10 +2288,7 @@ func (s *ContextImpl) newDetachedContext( var cancel context.CancelFunc deadline, ok := ctx.Deadline() if ok { - timeout := deadline.Sub(s.GetTimeSource().Now()) - if timeout < minContextTimeout { - timeout = minContextTimeout - } + timeout := max(deadline.Sub(s.GetTimeSource().Now()), minContextTimeout) detachedContext, cancel = context.WithTimeout(detachedContext, timeout) } else { cancel = func() {} diff --git a/service/history/shard/context_test.go b/service/history/shard/context_test.go index 37719f8f282..6ba381aae1d 100644 --- a/service/history/shard/context_test.go +++ b/service/history/shard/context_test.go @@ -468,7 +468,7 @@ func (s *contextSuite) TestAcquireShardOwnershipLostErrorIsNotRetried() { s.mockShard.acquireShard() - s.Assert().Equal(contextStateStopping, s.mockShard.state) + s.Equal(contextStateStopping, s.mockShard.state) } func (s *contextSuite) TestAcquireShardNonOwnershipLostErrorIsRetried() { @@ -480,7 +480,7 @@ func (s *contextSuite) TestAcquireShardNonOwnershipLostErrorIsRetried() { s.mockShard.acquireShard() - s.Assert().Equal(contextStateStopping, s.mockShard.state) + s.Equal(contextStateStopping, s.mockShard.state) } func (s *contextSuite) TestAcquireShardEventuallySucceeds() { @@ -495,7 +495,7 @@ func (s *contextSuite) TestAcquireShardEventuallySucceeds() { s.mockShard.acquireShard() - s.Assert().Equal(contextStateAcquired, s.mockShard.state) + s.Equal(contextStateAcquired, s.mockShard.state) } func (s *contextSuite) TestAcquireShardNoError() { @@ -508,7 +508,7 @@ func (s *contextSuite) TestAcquireShardNoError() { s.mockShard.acquireShard() - s.Assert().Equal(contextStateAcquired, s.mockShard.state) + s.Equal(contextStateAcquired, s.mockShard.state) } func (s *contextSuite) TestHandoverNamespace() { @@ -775,7 +775,7 @@ func (s *contextSuite) TestShardStopReasonAcquireShard() { s.mockShard.acquireShard() - s.Assert().Equal(contextStateStopping, s.mockShard.state) + s.Equal(contextStateStopping, s.mockShard.state) s.False(s.mockShard.IsValid()) s.True(s.mockShard.stoppedForOwnershipLost()) } @@ -785,7 +785,7 @@ func (s *contextSuite) TestShardStopReasonUnload() { s.mockShard.UnloadForOwnershipLost() - s.Assert().Equal(contextStateStopping, s.mockShard.state) + s.Equal(contextStateStopping, s.mockShard.state) s.False(s.mockShard.IsValid()) s.True(s.mockShard.stoppedForOwnershipLost()) } @@ -951,7 +951,7 @@ func (s *contextSuite) TestUpdateShardInfo_FirstUpdate() { s.NoError(err) s.True(called) - s.Equal(s.mockShard.tasksCompletedSinceLastUpdate, 2) + s.Equal(2, s.mockShard.tasksCompletedSinceLastUpdate) // update after ShardFirstUpdateInterval s.mockShard.initLastUpdatesTime() @@ -962,7 +962,7 @@ func (s *contextSuite) TestUpdateShardInfo_FirstUpdate() { s.NoError(err) s.True(called) - s.Equal(s.mockShard.tasksCompletedSinceLastUpdate, 0) + s.Equal(0, s.mockShard.tasksCompletedSinceLastUpdate) // update again. This time update will not work since shard lastUpdate time was set during previous update s.timeSource.Update(time.Now().Add(s.mockShard.config.ShardFirstUpdateInterval() + 15*time.Second)) @@ -972,7 +972,7 @@ func (s *contextSuite) TestUpdateShardInfo_FirstUpdate() { s.NoError(err) s.True(called) - s.Equal(s.mockShard.tasksCompletedSinceLastUpdate, 1) + s.Equal(1, s.mockShard.tasksCompletedSinceLastUpdate) // now move past last updated interval. This time hard info should be updated/persisted s.timeSource.Update(s.mockShard.lastUpdated.Add(s.mockShard.config.ShardUpdateMinInterval() + 10*time.Second)) @@ -982,5 +982,5 @@ func (s *contextSuite) TestUpdateShardInfo_FirstUpdate() { s.NoError(err) s.True(called) - s.Equal(s.mockShard.tasksCompletedSinceLastUpdate, 0) + s.Equal(0, s.mockShard.tasksCompletedSinceLastUpdate) } diff --git a/service/history/shard/controller_test.go b/service/history/shard/controller_test.go index a8ed689d40f..8ead9c3a9af 100644 --- a/service/history/shard/controller_test.go +++ b/service/history/shard/controller_test.go @@ -321,8 +321,7 @@ func (s *controllerSuite) TestHistoryEngineClosed() { var workerWG sync.WaitGroup for range 10 { - workerWG.Add(1) - go func() { + workerWG.Go(func() { for range 10 { for shardID := int32(1); shardID <= numShards; shardID++ { shard, err := s.shardController.GetShardByID(shardID) @@ -333,8 +332,7 @@ func (s *controllerSuite) TestHistoryEngineClosed() { s.NotNil(engine) } } - workerWG.Done() - }() + }) } workerWG.Wait() @@ -347,8 +345,7 @@ func (s *controllerSuite) TestHistoryEngineClosed() { } for range 10 { - workerWG.Add(1) - go func() { + workerWG.Go(func() { for range 10 { for shardID := int32(3); shardID <= numShards; shardID++ { shard, err := s.shardController.GetShardByID(shardID) @@ -360,13 +357,11 @@ func (s *controllerSuite) TestHistoryEngineClosed() { time.Sleep(20 * time.Millisecond) } } - workerWG.Done() - }() + }) } for range 10 { - workerWG.Add(1) - go func() { + workerWG.Go(func() { shardLost := false for attempt := 0; !shardLost && attempt < 10; attempt++ { for shardID := int32(1); shardID <= 2; shardID++ { @@ -380,8 +375,7 @@ func (s *controllerSuite) TestHistoryEngineClosed() { } s.True(shardLost) - workerWG.Done() - }() + }) } workerWG.Wait() @@ -419,8 +413,7 @@ func (s *controllerSuite) TestShardControllerClosed() { var workerWG sync.WaitGroup for range 10 { - workerWG.Add(1) - go func() { + workerWG.Go(func() { shardLost := false for attempt := 0; !shardLost && attempt < 10; attempt++ { for shardID := int32(1); shardID <= numShards; shardID++ { @@ -434,8 +427,7 @@ func (s *controllerSuite) TestShardControllerClosed() { } s.True(shardLost) - workerWG.Done() - }() + }) } s.mockServiceResolver.EXPECT().RemoveListener(shardControllerMembershipUpdateListenerName).Return(nil).AnyTimes() @@ -457,7 +449,7 @@ func (s *controllerSuite) TestShardExplicitUnload() { shard, err := s.shardController.getOrCreateShardContext(1) s.NoError(err) - s.Equal(1, len(s.shardController.ShardIDs())) + s.Len(s.shardController.ShardIDs(), 1) shard.UnloadForOwnershipLost() @@ -465,7 +457,7 @@ func (s *controllerSuite) TestShardExplicitUnload() { // removal from map happens asynchronously time.Sleep(1 * time.Millisecond) } - s.Equal(0, len(s.shardController.ShardIDs())) + s.Empty(s.shardController.ShardIDs()) s.False(shard.IsValid()) } @@ -742,7 +734,7 @@ func (s *controllerSuite) TestShardLingerTimeout() { // By now the timeout should have occurred. time.Sleep(timeLimit/2 + 100*time.Millisecond) - s.Len(s.shardController.ShardIDs(), 0) + s.Empty(s.shardController.ShardIDs()) s.False(shard.IsValid()) s.Equal(float64(1), s.readMetricsCounter( @@ -823,7 +815,7 @@ func (s *controllerSuite) TestShardLingerSuccess() { expectedWait := time.Second / time.Duration(checkQPS) * 2 time.Sleep(expectedWait + 100*time.Millisecond) - s.Len(s.shardController.ShardIDs(), 0) + s.Empty(s.shardController.ShardIDs()) } // TestShardCounter verifies that we can subscribe to shard count updates, receive them when shards are acquired, and diff --git a/service/history/shard/ownership_based_quota_scaler.go b/service/history/shard/ownership_based_quota_scaler.go index a309353fa93..ed3334e2a43 100644 --- a/service/history/shard/ownership_based_quota_scaler.go +++ b/service/history/shard/ownership_based_quota_scaler.go @@ -74,9 +74,7 @@ func NewOwnershipBasedQuotaScaler( } scaler.shardCount.Store(shardCountNotSet) - scaler.shutdownWG.Add(1) - go func() { - defer scaler.shutdownWG.Done() + scaler.shutdownWG.Go(func() { for count := range scaler.subscription.ShardCount() { scaler.shardCount.Store(int64(count)) @@ -84,7 +82,7 @@ func NewOwnershipBasedQuotaScaler( scaler.updateAppliedCallback <- struct{}{} } } - }() + }) return scaler, nil } diff --git a/service/history/shard/ownership_test.go b/service/history/shard/ownership_test.go index 306a09b9032..53814e5e356 100644 --- a/service/history/shard/ownership_test.go +++ b/service/history/shard/ownership_test.go @@ -83,7 +83,7 @@ func (s *ownershipSuite) TestAcquireViaMembershipUpdate() { shardController := s.newController(cf) shardController.Start() - s.Zero(len(shardController.ShardIDs())) + s.Empty(shardController.ShardIDs()) shardController.ownership.membershipUpdateCh <- &membership.ChangedEvent{} diff --git a/service/history/shard/task_key_generator_test.go b/service/history/shard/task_key_generator_test.go index fbcec6ff13d..79c45e2ad27 100644 --- a/service/history/shard/task_key_generator_test.go +++ b/service/history/shard/task_key_generator_test.go @@ -120,7 +120,7 @@ func (s *taskKeyGeneratorSuite) TestSetTaskKeys_RenewRange() { initialRangeID := s.rangeID numTask := 10 - s.True(numTask > (1 << s.rangeSizeBits)) + s.Greater(numTask, (1 << s.rangeSizeBits)) transferTasks := make([]tasks.Task, 0, numTask) for range numTask { diff --git a/service/history/statemachine_environment_test.go b/service/history/statemachine_environment_test.go index ed74a2fd865..8d35d23b867 100644 --- a/service/history/statemachine_environment_test.go +++ b/service/history/statemachine_environment_test.go @@ -254,7 +254,6 @@ func TestValidateStateMachineRef(t *testing.T) { }, } for _, tc := range cases { - tc := tc t.Run(tc.name, func(t *testing.T) { t.Parallel() s := newStateMachineEnvTestContext(t, tc.enableTransitionHistory) diff --git a/service/history/visibility_queue_task_executor_test.go b/service/history/visibility_queue_task_executor_test.go index 36427b50df3..ac60c0069ea 100644 --- a/service/history/visibility_queue_task_executor_test.go +++ b/service/history/visibility_queue_task_executor_test.go @@ -235,7 +235,7 @@ func (s *visibilityQueueTaskExecutorSuite) TestProcessCloseExecution() { }, }, ) - s.Nil(err) + s.NoError(err) wt := addWorkflowTaskScheduledEvent(mutableState) event := addWorkflowTaskStartedEvent(mutableState, wt.ScheduledEventID, taskQueueName, uuid.NewString()) @@ -274,7 +274,7 @@ func (s *visibilityQueueTaskExecutorSuite) TestProcessCloseExecution() { ).Return(nil) resp := s.visibilityQueueTaskExecutor.Execute(context.Background(), s.newTaskExecutable(visibilityTask)) - s.Nil(resp.ExecutionErr) + s.NoError(resp.ExecutionErr) } func (s *visibilityQueueTaskExecutorSuite) TestProcessCloseExecutionWithWorkflowClosedCleanup() { @@ -321,7 +321,7 @@ func (s *visibilityQueueTaskExecutorSuite) TestProcessCloseExecutionWithWorkflow }, }, ) - s.Nil(err) + s.NoError(err) wt := addWorkflowTaskScheduledEvent(mutableState) event := addWorkflowTaskStartedEvent(mutableState, wt.ScheduledEventID, taskQueueName, uuid.NewString()) @@ -361,7 +361,7 @@ func (s *visibilityQueueTaskExecutorSuite) TestProcessCloseExecutionWithWorkflow ).Return(nil) resp := s.visibilityQueueTaskExecutor.Execute(context.Background(), s.newTaskExecutable(visibilityTask)) - s.Nil(resp.ExecutionErr) + s.NoError(resp.ExecutionErr) } func (s *visibilityQueueTaskExecutorSuite) TestProcessRecordWorkflowStartedTask() { @@ -391,7 +391,7 @@ func (s *visibilityQueueTaskExecutorSuite) TestProcessRecordWorkflowStartedTask( FirstWorkflowTaskBackoff: durationpb.New(backoff), }, ) - s.Nil(err) + s.NoError(err) taskID := int64(59) wt := addWorkflowTaskScheduledEvent(mutableState) @@ -415,7 +415,7 @@ func (s *visibilityQueueTaskExecutorSuite) TestProcessRecordWorkflowStartedTask( ).Return(nil) resp := s.visibilityQueueTaskExecutor.Execute(context.Background(), s.newTaskExecutable(visibilityTask)) - s.Nil(resp.ExecutionErr) + s.NoError(resp.ExecutionErr) } func (s *visibilityQueueTaskExecutorSuite) TestProcessUpsertWorkflowSearchAttributes() { @@ -463,7 +463,7 @@ func (s *visibilityQueueTaskExecutorSuite) TestProcessUpsertWorkflowSearchAttrib ).Return(nil) resp := s.visibilityQueueTaskExecutor.Execute(context.Background(), s.newTaskExecutable(visibilityTask)) - s.Nil(resp.ExecutionErr) + s.NoError(resp.ExecutionErr) } func (s *visibilityQueueTaskExecutorSuite) TestProcessModifyWorkflowProperties() { @@ -531,7 +531,7 @@ func (s *visibilityQueueTaskExecutorSuite) TestProcessModifyWorkflowProperties() context.Background(), s.newTaskExecutable(visibilityTask), ) - s.Nil(resp.ExecutionErr) + s.NoError(resp.ExecutionErr) } func (s *visibilityQueueTaskExecutorSuite) TestProcessDeleteExecution() { @@ -545,7 +545,7 @@ func (s *visibilityQueueTaskExecutorSuite) TestProcessDeleteExecution() { WorkflowKey: workflowKey, CloseExecutionVisibilityTaskID: 0, }) - s.Assert().NoError(err) + s.NoError(err) }) s.Run("WorkflowCloseTime=1970-01-01T00:00:00Z", func() { s.mockVisibilityMgr.EXPECT().DeleteWorkflowExecution(gomock.Any(), gomock.Any()) @@ -553,7 +553,7 @@ func (s *visibilityQueueTaskExecutorSuite) TestProcessDeleteExecution() { WorkflowKey: workflowKey, CloseTime: time.Unix(0, 0).UTC(), }) - s.Assert().NoError(err) + s.NoError(err) }) s.Run("MultiCursorQueue", func() { const highWatermark int64 = 5 @@ -596,7 +596,7 @@ func (s *visibilityQueueTaskExecutorSuite) TestProcessChasmTask_InvalidTask() { s.mockExecutionMgr.EXPECT().GetWorkflowExecution(gomock.Any(), gomock.Any()).Return(&persistence.GetWorkflowExecutionResponse{State: mutableState}, nil) resp := s.visibilityQueueTaskExecutor.Execute(context.Background(), s.newTaskExecutable(visibilityTask)) - s.Nil(resp.ExecutionErr) + s.NoError(resp.ExecutionErr) // Case 2: invalid task with a different initial versioned transition componentInitVT := mutableState.ChasmNodes["Visibility"].Metadata.InitialVersionedTransition @@ -607,7 +607,7 @@ func (s *visibilityQueueTaskExecutorSuite) TestProcessChasmTask_InvalidTask() { } resp = s.visibilityQueueTaskExecutor.Execute(context.Background(), s.newTaskExecutable(visibilityTask)) - s.Nil(resp.ExecutionErr) + s.NoError(resp.ExecutionErr) } func (s *visibilityQueueTaskExecutorSuite) TestProcessChasmTask_RunningExecution() { @@ -658,7 +658,7 @@ func (s *visibilityQueueTaskExecutorSuite) TestProcessChasmTask_RunningExecution ) resp := s.visibilityQueueTaskExecutor.Execute(context.Background(), s.newTaskExecutable(visibilityTask)) - s.Nil(resp.ExecutionErr) + s.NoError(resp.ExecutionErr) } func (s *visibilityQueueTaskExecutorSuite) TestProcessChasmTask_ClosedExecution() { @@ -691,7 +691,7 @@ func (s *visibilityQueueTaskExecutorSuite) TestProcessChasmTask_ClosedExecution( ) resp := s.visibilityQueueTaskExecutor.Execute(context.Background(), s.newTaskExecutable(visibilityTask)) - s.Nil(resp.ExecutionErr) + s.NoError(resp.ExecutionErr) } func (s *visibilityQueueTaskExecutorSuite) buildChasmMutableState( diff --git a/service/worker/deletenamespace/activities_test.go b/service/worker/deletenamespace/activities_test.go index 0d62634f7a4..4719eedb759 100644 --- a/service/worker/deletenamespace/activities_test.go +++ b/service/worker/deletenamespace/activities_test.go @@ -90,7 +90,7 @@ func Test_ValidateNexusEndpointsActivity(t *testing.T) { nexusEndpointManager.EXPECT().ListNexusEndpoints(gomock.Any(), gomock.Any()).Return(nil, errors.New("persistence failure")) err = a.ValidateNexusEndpointsActivity(context.Background(), "namespace-id", "namespace") require.Error(t, err) - require.Equal(t, err.Error(), "unable to list Nexus endpoints for namespace namespace: persistence failure") + require.Equal(t, "unable to list Nexus endpoints for namespace namespace: persistence failure", err.Error()) ctrl.Finish() } diff --git a/service/worker/deletenamespace/deleteexecutions/workflow_test.go b/service/worker/deletenamespace/deleteexecutions/workflow_test.go index e9742ea9330..aaf471a0a76 100644 --- a/service/worker/deletenamespace/deleteexecutions/workflow_test.go +++ b/service/worker/deletenamespace/deleteexecutions/workflow_test.go @@ -3,7 +3,6 @@ package deleteexecutions import ( "context" "encoding/json" - stderrors "errors" "strconv" "sync/atomic" "testing" @@ -237,8 +236,8 @@ func Test_DeleteExecutionsWorkflow_ManyExecutions_ActivityError(t *testing.T) { err := env.GetWorkflowError() require.Error(t, err) var appErr *temporal.ApplicationError - require.True(t, stderrors.As(err, &appErr)) - require.Equal(t, appErr.Error(), "specific_error_from_activity (type: Unavailable, retryable: true)") + require.ErrorAs(t, err, &appErr) + require.Equal(t, "specific_error_from_activity (type: Unavailable, retryable: true)", appErr.Error()) } func Test_DeleteExecutionsWorkflow_NoActivityMocks_ManyExecutions(t *testing.T) { @@ -587,8 +586,8 @@ func Test_DeleteExecutionsWorkflow_QueryStats(t *testing.T) { require.NoError(t, err) testSuite.GetLogger().Info("Current stats.", "pageNumber", pageNumber, "DeleteExecutionsStats", string(desJson)) - require.Equal(t, 10*(pageNumber-1), des.DeleteExecutionsResult.ErrorCount) - require.Equal(t, 220*(pageNumber-1), des.DeleteExecutionsResult.SuccessCount) + require.Equal(t, 10*(pageNumber-1), des.ErrorCount) + require.Equal(t, 220*(pageNumber-1), des.SuccessCount) require.Equal(t, (10+220)*4, des.TotalExecutionsCount) require.Equal(t, (10+220)*(4-(pageNumber-1)), des.RemainingExecutionsCount) require.Equal(t, (10+220)/5, des.AverageRPS) // 5 seconds for every activity run. diff --git a/service/worker/deletenamespace/reclaimresources/workflow.go b/service/worker/deletenamespace/reclaimresources/workflow.go index c4bb07c57c3..ce678e3f3c0 100644 --- a/service/worker/deletenamespace/reclaimresources/workflow.go +++ b/service/worker/deletenamespace/reclaimresources/workflow.go @@ -231,7 +231,7 @@ func deleteWorkflowExecutions(ctx workflow.Context, logger log.Logger, params Re if executionsCount == 0 { return result, nil } - params.DeleteExecutionsParams.TotalExecutionsCount = int(executionsCount) + params.TotalExecutionsCount = int(executionsCount) ctx2 := workflow.WithChildOptions(ctx, deleteExecutionsWorkflowOptions) ctx2 = workflow.WithWorkflowID(ctx2, fmt.Sprintf("%s/%s", deleteexecutions.WorkflowName, params.Namespace)) diff --git a/service/worker/deletenamespace/reclaimresources/workflow_test.go b/service/worker/deletenamespace/reclaimresources/workflow_test.go index b61c32ac1cc..5712ff8f5ce 100644 --- a/service/worker/deletenamespace/reclaimresources/workflow_test.go +++ b/service/worker/deletenamespace/reclaimresources/workflow_test.go @@ -70,7 +70,7 @@ func Test_ReclaimResourcesWorkflow_Success(t *testing.T) { require.NoError(t, env.GetWorkflowResult(&result)) require.Equal(t, 0, result.DeleteErrorCount) require.Equal(t, 10, result.DeleteSuccessCount) - require.Equal(t, true, result.NamespaceDeleted) + require.True(t, result.NamespaceDeleted) } func Test_ReclaimResourcesWorkflow_EnsureNoExecutionsActivity_Error(t *testing.T) { @@ -119,8 +119,7 @@ func Test_ReclaimResourcesWorkflow_EnsureNoExecutionsActivity_Error(t *testing.T err := env.GetWorkflowError() require.Error(t, err) require.Equal(t, - err.Error(), - "workflow execution error (type: ReclaimResourcesWorkflow, workflowID: default-test-workflow-id, runID: default-test-run-id): activity error (type: EnsureNoExecutionsAdvVisibilityActivity, scheduledEventID: 0, startedEventID: 0, identity: ): specific_error_from_activity") + "workflow execution error (type: ReclaimResourcesWorkflow, workflowID: default-test-workflow-id, runID: default-test-run-id): activity error (type: EnsureNoExecutionsAdvVisibilityActivity, scheduledEventID: 0, startedEventID: 0, identity: ): specific_error_from_activity", err.Error()) } func Test_ReclaimResourcesWorkflow_EnsureNoExecutionsActivity_ExecutionsStillExist(t *testing.T) { @@ -168,7 +167,7 @@ func Test_ReclaimResourcesWorkflow_EnsureNoExecutionsActivity_ExecutionsStillExi require.True(t, env.IsWorkflowCompleted()) err := env.GetWorkflowError() var appErr *temporal.ApplicationError - require.True(t, stderrors.As(err, &appErr)) + require.ErrorAs(t, err, &appErr) require.Equal(t, errors.ExecutionsStillExistErrType, appErr.Type()) } @@ -264,7 +263,7 @@ func Test_ReclaimResourcesWorkflow_NoActivityMocks_Success(t *testing.T) { require.NoError(t, env.GetWorkflowResult(&result)) require.Equal(t, 0, result.DeleteErrorCount) require.Equal(t, 10, result.DeleteSuccessCount) - require.Equal(t, true, result.NamespaceDeleted) + require.True(t, result.NamespaceDeleted) } func Test_ReclaimResourcesWorkflow_NoActivityMocks_NoProgressMade(t *testing.T) { @@ -340,7 +339,7 @@ func Test_ReclaimResourcesWorkflow_NoActivityMocks_NoProgressMade(t *testing.T) err := env.GetWorkflowError() require.Error(t, err) var appErr *temporal.ApplicationError - require.True(t, stderrors.As(err, &appErr)) + require.ErrorAs(t, err, &appErr) require.Equal(t, errors.NoProgressErrType, appErr.Type()) } @@ -416,5 +415,5 @@ func Test_ReclaimResourcesWorkflow_UpdateDeleteDelay(t *testing.T) { require.NoError(t, env.GetWorkflowResult(&result)) require.Equal(t, 0, result.DeleteErrorCount) require.Equal(t, 10, result.DeleteSuccessCount) - require.Equal(t, true, result.NamespaceDeleted) + require.True(t, result.NamespaceDeleted) } diff --git a/service/worker/deletenamespace/workflow_test.go b/service/worker/deletenamespace/workflow_test.go index 4f14c61964c..67586329def 100644 --- a/service/worker/deletenamespace/workflow_test.go +++ b/service/worker/deletenamespace/workflow_test.go @@ -252,7 +252,7 @@ func Test_DeleteProtectedNamespace(t *testing.T) { require.Error(t, err) var appErr *temporal.ApplicationError require.ErrorAs(t, err, &appErr) - require.Equal(t, appErr.Message(), "namespace namespace is protected from deletion") + require.Equal(t, "namespace namespace is protected from deletion", appErr.Message()) } func Test_DeleteNamespaceUsedByNexus(t *testing.T) { @@ -279,5 +279,5 @@ func Test_DeleteNamespaceUsedByNexus(t *testing.T) { require.Error(t, err) var appErr *temporal.ApplicationError require.ErrorAs(t, err, &appErr) - require.Equal(t, appErr.Message(), "cannot delete a namespace that is a target of a Nexus endpoint") + require.Equal(t, "cannot delete a namespace that is a target of a Nexus endpoint", appErr.Message()) } diff --git a/service/worker/dlq/workflow.go b/service/worker/dlq/workflow.go index 59b76296ef0..d0a864ad883 100644 --- a/service/worker/dlq/workflow.go +++ b/service/worker/dlq/workflow.go @@ -209,7 +209,8 @@ func (c *workerComponent) workflow(ctx workflow.Context, params WorkflowParams) if err != nil { return err } - if params.WorkflowType == WorkflowTypeDelete { + switch params.WorkflowType { + case WorkflowTypeDelete: queryResponse.MaxMessageIDToProcess = params.DeleteParams.MaxMessageID queryResponse.DlqKey = Key{ TaskCategoryID: params.DeleteParams.TaskCategoryID, @@ -232,7 +233,7 @@ func (c *workerComponent) workflow(ctx workflow.Context, params WorkflowParams) queryResponse.LastProcessedMessageID = params.DeleteParams.MaxMessageID queryResponse.NumberOfMessagesProcessed = response.MessagesDeleted return nil - } else if params.WorkflowType == WorkflowTypeMerge { + case WorkflowTypeMerge: queryResponse.MaxMessageIDToProcess = params.MergeParams.MaxMessageID queryResponse.DlqKey = Key{ TaskCategoryID: params.MergeParams.TaskCategoryID, diff --git a/service/worker/dlq/workflow_test.go b/service/worker/dlq/workflow_test.go index 8d13821227f..b361df9cce5 100644 --- a/service/worker/dlq/workflow_test.go +++ b/service/worker/dlq/workflow_test.go @@ -370,10 +370,10 @@ func TestModule(t *testing.T) { name: "merge_replication_tasks_dial_error", configure: func(t *testing.T, params *testParams) { params.setDefaultMergeParams(t) - params.workflowParams.MergeParams.Key.SourceCluster = "source-cluster" - params.workflowParams.MergeParams.Key.TargetCluster = "current-cluster" + params.workflowParams.MergeParams.SourceCluster = "source-cluster" + params.workflowParams.MergeParams.TargetCluster = "current-cluster" params.currentClusterName = "current-cluster" - params.workflowParams.MergeParams.Key.TaskCategoryID = tasks.CategoryIDReplication + params.workflowParams.MergeParams.TaskCategoryID = tasks.CategoryIDReplication params.expectedQueryResp.DlqKey = params.workflowParams.MergeParams.Key var replicationTask tasks.HistoryReplicationTask blob, err := serialization.NewSerializer().SerializeTask(&replicationTask) @@ -572,7 +572,7 @@ func (p *testParams) setDefaultParams(t *testing.T) { require.Equal(t, p.expectedQueryResp.LastProcessedMessageID, response.LastProcessedMessageID) require.Equal(t, p.expectedQueryResp.WorkflowType, response.WorkflowType) require.Equal(t, p.expectedQueryResp.NumberOfMessagesProcessed, response.NumberOfMessagesProcessed) - require.EqualValues(t, p.expectedQueryResp.DlqKey, response.DlqKey) + require.Equal(t, p.expectedQueryResp.DlqKey, response.DlqKey) } p.taskClientDialer = dlq.TaskClientDialerFn(func(ctx context.Context, address string) (dlq.TaskClient, error) { return dlq.AddTasksFn(func(ctx context.Context, req *adminservice.AddTasksRequest) (*adminservice.AddTasksResponse, error) { diff --git a/service/worker/scanner/executions/task_test.go b/service/worker/scanner/executions/task_test.go index aa0a53dcf5c..bd1a591fdf9 100644 --- a/service/worker/scanner/executions/task_test.go +++ b/service/worker/scanner/executions/task_test.go @@ -5,7 +5,6 @@ import ( "errors" "testing" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" "go.temporal.io/server/common/log" "go.temporal.io/server/common/metrics" @@ -56,7 +55,7 @@ func (s *taskTestSuite) TestRun_Success_EmptyResults() { Return(&persistence.ListConcreteExecutionsResponse{}, nil) status := task.Run() - assert.Equal(s.T(), executor.TaskStatusDone, status) + s.Equal(executor.TaskStatusDone, status) } func (s *taskTestSuite) TestRun_PaginationError() { @@ -68,5 +67,5 @@ func (s *taskTestSuite) TestRun_PaginationError() { Return(nil, errors.New("pagination error")) status := task.Run() - assert.Equal(s.T(), executor.TaskStatusDefer, status) + s.Equal(executor.TaskStatusDefer, status) } diff --git a/service/worker/scanner/history/scavenger.go b/service/worker/scanner/history/scavenger.go index 1908cc4cdf5..bc0543a18d1 100644 --- a/service/worker/scanner/history/scavenger.go +++ b/service/worker/scanner/history/scavenger.go @@ -121,11 +121,11 @@ func (s *Scavenger) Run(ctx context.Context) (ScavengerHeartbeatDetails, error) go s.loadTasks(ctx, reqCh) for range numWorker { - s.WaitGroup.Add(1) + s.Add(1) go s.taskWorker(ctx, reqCh) } - s.WaitGroup.Wait() + s.Wait() s.Lock() defer s.Unlock() @@ -176,7 +176,7 @@ func (s *Scavenger) taskWorker( taskCh chan taskDetail, ) { - defer s.WaitGroup.Done() + defer s.Done() for { select {