diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 34612c640..53ab6176d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -43,7 +43,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: "1.23.x" + go-version: "1.24.x" - name: Go Format run: gofmt -s -w . && git diff --exit-code diff --git a/.github/workflows/integration_tests.yaml b/.github/workflows/integration_tests.yaml index cc3229165..98809c53d 100644 --- a/.github/workflows/integration_tests.yaml +++ b/.github/workflows/integration_tests.yaml @@ -41,7 +41,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: "1.23.x" + go-version: "1.24.x" - name: Set up Python uses: actions/setup-python@v5 diff --git a/apier/v1/apier.go b/apier/v1/apier.go index ea839fecc..bf0abb450 100644 --- a/apier/v1/apier.go +++ b/apier/v1/apier.go @@ -489,13 +489,13 @@ func (apierSv1 *APIerSv1) SetRatingProfile(ctx *context.Context, attrs *utils.At at, err := utils.ParseTimeDetectLayout(ra.ActivationTime, apierSv1.Config.GeneralCfg().DefaultTimezone) if err != nil { - return fmt.Errorf(fmt.Sprintf("%s:Cannot parse activation time from %v", utils.ErrServerError.Error(), ra.ActivationTime)) + return fmt.Errorf("%s:Cannot parse activation time from %v", utils.ErrServerError.Error(), ra.ActivationTime) } if exists, err := apierSv1.DataManager.HasData(utils.RatingPlanPrefix, ra.RatingPlanId, ""); err != nil { return utils.NewErrServerError(err) } else if !exists { - return fmt.Errorf(fmt.Sprintf("%s:RatingPlanId:%s", utils.ErrNotFound.Error(), ra.RatingPlanId)) + return fmt.Errorf("%s:RatingPlanId:%s", utils.ErrNotFound.Error(), ra.RatingPlanId) } rpfl.RatingPlanActivations = append(rpfl.RatingPlanActivations, &engine.RatingPlanActivation{ diff --git a/apier/v1/caps_it_test.go b/apier/v1/caps_it_test.go index 819443e98..b1982b111 100644 --- a/apier/v1/caps_it_test.go +++ b/apier/v1/caps_it_test.go @@ -319,12 +319,12 @@ func benchmarkCall(b *testing.B) { } } -// func BenchmarkcapsWithLimit(b *testing.B) { -// benchmarkInit(b, "caps_queue_bench") -// benchmarkCall(b) -// } +func BenchmarkCapsWithLimit(b *testing.B) { + benchmarkInit(b, "caps_queue_bench") + benchmarkCall(b) +} -// func BenchmarkcapsWithoutLimit(b *testing.B) { -// benchmarkInit(b, "tutmysql") -// benchmarkCall(b) -// } +func BenchmarkCapsWithoutLimit(b *testing.B) { + benchmarkInit(b, "tutmysql") + benchmarkCall(b) +} diff --git a/apier/v2/tp_it_test.go b/apier/v2/tp_it_test.go index 740313a29..4de3f28ed 100644 --- a/apier/v2/tp_it_test.go +++ b/apier/v2/tp_it_test.go @@ -184,20 +184,20 @@ func testTPitTimings(t *testing.T) { } // Test get var rplyTmDummy *utils.ApierTPTiming - if err := tpRPC.Call(context.Background(), utils.APIerSv2GetTPTiming, v1.AttrGetTPTiming{tmDummyRemove.TPid, tmDummyRemove.ID}, &rplyTmDummy); err != nil { + if err := tpRPC.Call(context.Background(), utils.APIerSv2GetTPTiming, v1.AttrGetTPTiming{TPid: tmDummyRemove.TPid, ID: tmDummyRemove.ID}, &rplyTmDummy); err != nil { t.Error("Calling APIerSv2.GetTPTiming, got error: ", err.Error()) } else if !reflect.DeepEqual(tmDummyRemove, rplyTmDummy) { t.Errorf("Calling APIerSv2.GetTPTiming expected: %v, received: %v", tmDummyRemove, rplyTmDummy) } var rplyTmIDs []string expectedTmIDs := []string{"OFFPEAK_EVENING", "OFFPEAK_MORNING", "OFFPEAK_WEEKEND", "PEAK", tmDummyRemove.ID} - if err := tpRPC.Call(context.Background(), utils.APIerSv1GetTPTimingIds, &v1.AttrGetTPTimingIds{testTPid, utils.PaginatorWithSearch{}}, &rplyTmIDs); err != nil { + if err := tpRPC.Call(context.Background(), utils.APIerSv1GetTPTimingIds, &v1.AttrGetTPTimingIds{TPid: testTPid, PaginatorWithSearch: utils.PaginatorWithSearch{}}, &rplyTmIDs); err != nil { t.Error("Calling APIerSv1.GetTPTimingIds, got error: ", err.Error()) } else if len(expectedTmIDs) != len(rplyTmIDs) { t.Errorf("Calling APIerSv1.GetTPTimingIds expected: %v, received: %v", expectedTmIDs, rplyTmIDs) } // Test remove - if err := tpRPC.Call(context.Background(), utils.APIerSv2RemoveTPTiming, v1.AttrGetTPTiming{tmDummyRemove.TPid, tmDummyRemove.ID}, &reply); err != nil { + if err := tpRPC.Call(context.Background(), utils.APIerSv2RemoveTPTiming, v1.AttrGetTPTiming{TPid: tmDummyRemove.TPid, ID: tmDummyRemove.ID}, &reply); err != nil { t.Error("Calling APIerSv2.RemoveTPTiming, got error: ", err.Error()) } else if reply != utils.OK { t.Error("Calling APIerSv2.RemoveTPTiming received: ", reply) @@ -205,7 +205,7 @@ func testTPitTimings(t *testing.T) { // Test getIds rplyTmIDs = []string{} expectedTmIDs = []string{"OFFPEAK_EVENING", "OFFPEAK_MORNING", "OFFPEAK_WEEKEND", "PEAK"} - if err := tpRPC.Call(context.Background(), utils.APIerSv1GetTPTimingIds, &v1.AttrGetTPTimingIds{testTPid, utils.PaginatorWithSearch{}}, &rplyTmIDs); err != nil { + if err := tpRPC.Call(context.Background(), utils.APIerSv1GetTPTimingIds, &v1.AttrGetTPTimingIds{TPid: testTPid, PaginatorWithSearch: utils.PaginatorWithSearch{}}, &rplyTmIDs); err != nil { t.Error("Calling APIerSv1.GetTPTimingIds, got error: ", err.Error()) } else if len(expectedTmIDs) != len(rplyTmIDs) { t.Errorf("Calling APIerSv1.GetTPTimingIds expected: %v, received: %v", expectedTmIDs, rplyTmIDs) diff --git a/data/ansible/roles/go/defaults/main.yaml b/data/ansible/roles/go/defaults/main.yaml index 8c4d34cb4..1aabcb251 100644 --- a/data/ansible/roles/go/defaults/main.yaml +++ b/data/ansible/roles/go/defaults/main.yaml @@ -1,5 +1,5 @@ --- -go_version: 1.23.2 +go_version: 1.24.0 go_platform: linux go_arch: amd64 go_tarball: go{{ go_version }}.{{ go_platform }}-{{ go_arch }}.tar.gz diff --git a/data/docker/integration/Dockerfile b/data/docker/integration/Dockerfile index 8da6b9c0b..9c6d39182 100644 --- a/data/docker/integration/Dockerfile +++ b/data/docker/integration/Dockerfile @@ -74,7 +74,7 @@ RUN apt-get clean && \ RUN touch /logs/mariadb.log /logs/mariadb_script.log /logs/rabbitmq.log RUN chmod 777 /logs/mariadb.log /logs/mariadb_script.log /logs/rabbitmq.log -RUN wget -O go.tgz "https://storage.googleapis.com/golang/go1.23.2.linux-amd64.tar.gz" --progress=dot:giga +RUN wget -O go.tgz "https://storage.googleapis.com/golang/go1.24.0.linux-amd64.tar.gz" --progress=dot:giga RUN tar -C /usr/local -xzf go.tgz RUN rm go.tgz diff --git a/docs/installation.rst b/docs/installation.rst index ac2788ff0..e8a356e51 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -146,8 +146,8 @@ To install the latest Go version at the time of writing this documentation, run: # sudo dnf install -y wget tar for .rpm distros sudo rm -rf /usr/local/go cd /tmp - wget https://go.dev/dl/go1.23.2.linux-amd64.tar.gz - sudo tar -C /usr/local -xzf go1.23.2.linux-amd64.tar.gz + wget https://go.dev/dl/go1.24.0.linux-amd64.tar.gz + sudo tar -C /usr/local -xzf go1.24.0.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin Installation: diff --git a/engine/filters_test.go b/engine/filters_test.go index 86b4c47c3..3b6adc9b2 100644 --- a/engine/filters_test.go +++ b/engine/filters_test.go @@ -910,7 +910,7 @@ func TestInlineFilterPassFiltersForEvent(t *testing.T) { } if pass, err := filterS.Pass("cgrates.org", []string{"*string:~*req.Account:1007"}, fEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } @@ -918,14 +918,14 @@ func TestInlineFilterPassFiltersForEvent(t *testing.T) { pEv.Set([]string{utils.MetaReq}, passEvent) if pass, err := filterS.Pass("cgrates.org", []string{"*string:~*req.Account:1007"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", true, pass) } //not if pass, err := filterS.Pass("cgrates.org", []string{"*notstring:~*req.Account:1007"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } @@ -941,32 +941,32 @@ func TestInlineFilterPassFiltersForEvent(t *testing.T) { pEv.Set([]string{utils.MetaReq}, passEvent) if pass, err := filterS.Pass("cgrates.org", []string{"*prefix:~*req.Account:10"}, fEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } if pass, err := filterS.Pass("cgrates.org", []string{"*prefix:~*req.Account:10"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", true, pass) } if pass, err := filterS.Pass("cgrates.org", []string{"*suffix:~*req.Account:07"}, fEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } if pass, err := filterS.Pass("cgrates.org", []string{"*suffix:~*req.Account:07"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", true, pass) } //not if pass, err := filterS.Pass("cgrates.org", []string{"*notsuffix:~*req.Account:07"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } @@ -982,20 +982,20 @@ func TestInlineFilterPassFiltersForEvent(t *testing.T) { pEv.Set([]string{utils.MetaReq}, passEvent) if pass, err := filterS.Pass("cgrates.org", []string{"*rsr:~*req.Tenant:~^cgr.*\\.org$"}, fEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } if pass, err := filterS.Pass("cgrates.org", []string{"*rsr:~*req.Tenant:~^cgr.*\\.org$"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", true, pass) } //not if pass, err := filterS.Pass("cgrates.org", []string{"*notrsr:~*req.Tenant:~^cgr.*\\.org$"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } @@ -1011,13 +1011,13 @@ func TestInlineFilterPassFiltersForEvent(t *testing.T) { pEv.Set([]string{utils.MetaReq}, passEvent) if pass, err := filterS.Pass("cgrates.org", []string{"*gte:~*req.Weight:20"}, fEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } if pass, err := filterS.Pass("cgrates.org", []string{"*gte:~*req.Weight:10"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", true, pass) } @@ -1048,26 +1048,26 @@ func TestInlineFilterPassFiltersForEvent(t *testing.T) { for key := range failEvent { if pass, err := filterS.Pass("cgrates.org", []string{"*empty:~*req." + key + ":"}, fEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("For %s expecting: %+v, received: %+v", key, false, pass) } if pass, err := filterS.Pass("cgrates.org", []string{"*empty:~*req." + key + ":"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("For %s expecting: %+v, received: %+v", key, true, pass) } } if pass, err := filterS.Pass("cgrates.org", []string{"*exists:~*req.NewKey:"}, fEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("For NewKey expecting: %+v, received: %+v", false, pass) } if pass, err := filterS.Pass("cgrates.org", []string{"*notexists:~*req.NewKey:"}, fEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("For NewKey expecting: %+v, received: %+v", true, pass) } @@ -1088,7 +1088,7 @@ func TestInlineFilterPassFiltersForEvent(t *testing.T) { } if pass, err := filterS.Pass("cgrates.org", []string{"*regex:~*req.Account:\\d{3}7"}, fEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } @@ -1096,14 +1096,14 @@ func TestInlineFilterPassFiltersForEvent(t *testing.T) { pEv.Set([]string{utils.MetaReq}, passEvent) if pass, err := filterS.Pass("cgrates.org", []string{"*regex:~*req.Account:\\d{3}7"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", true, pass) } //not if pass, err := filterS.Pass("cgrates.org", []string{"*notregex:~*req.Account:\\d{3}7"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } @@ -1111,19 +1111,19 @@ func TestInlineFilterPassFiltersForEvent(t *testing.T) { pEv = utils.MapStorage{utils.MetaReq: utils.MapStorage{utils.AccountField: "sip:12345678901234567@abcdefg"}} if pass, err := filterS.Pass("cgrates.org", []string{"*regex:~*req.Account:.{29,}"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", true, pass) } if pass, err := filterS.Pass("cgrates.org", []string{"*regex:~*req.Account:^.{28}$"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } if pass, err := filterS.Pass("cgrates.org", []string{"*gte:~*req.Account{*len}:29"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", true, pass) } @@ -1131,7 +1131,7 @@ func TestInlineFilterPassFiltersForEvent(t *testing.T) { pEv = utils.MapStorage{utils.MetaReq: utils.MapStorage{utils.AccountField: "[1,2,3]"}} if pass, err := filterS.Pass("cgrates.org", []string{"*eq:~*req.Account{*slice&*len}:3"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", true, pass) } @@ -1164,13 +1164,13 @@ func TestPassFiltersForEventWithEmptyFilter(t *testing.T) { pEv2.Set([]string{utils.MetaReq}, passEvent2) if pass, err := filterS.Pass("cgrates.org", []string{}, pEv1); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } if pass, err := filterS.Pass("itsyscom.com", []string{}, pEv2); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", true, pass) } @@ -1181,7 +1181,7 @@ func TestPassFiltersForEventWithEmptyFilter(t *testing.T) { pEv.Set([]string{utils.MetaReq}, ev) if pass, err := filterS.Pass("cgrates.org", []string{"*rsr:~*req.Test:~^\\w{30,}"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } @@ -1192,7 +1192,7 @@ func TestPassFiltersForEventWithEmptyFilter(t *testing.T) { pEv.Set([]string{utils.MetaReq}, ev) if pass, err := filterS.Pass("cgrates.org", []string{"*rsr:~*req.Test:~^\\w{30,}"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", true, pass) } @@ -1206,7 +1206,7 @@ func TestPassFiltersForEventWithEmptyFilter(t *testing.T) { pEv.Set([]string{utils.MetaReq}, ev) if pass, err := filterS.Pass("cgrates.org", []string{"*rsr:~*req.Test.Test2:~^\\w{30,}"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } @@ -1219,7 +1219,7 @@ func TestPassFiltersForEventWithEmptyFilter(t *testing.T) { pEv.Set([]string{utils.MetaReq}, ev) if pass, err := filterS.Pass("cgrates.org", []string{"*rsr:~*req.Test.Test2:~^\\w{30,}"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } @@ -1240,7 +1240,7 @@ func TestPassFiltersForEventWithEmptyFilter(t *testing.T) { "*suffix:~*req.Subject:03", "*rsr:~*req.Destination:1002"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", true, pass) } @@ -1262,7 +1262,7 @@ func TestPassFilterMaxCost(t *testing.T) { pEv.Set([]string{utils.MetaReq}, passEvent1) if pass, err := filterS.Pass("cgrates.org", []string{"*gt:~*req.MaxUsage:0s"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: false , received: %+v", pass) } @@ -1274,7 +1274,7 @@ func TestPassFilterMaxCost(t *testing.T) { pEv.Set([]string{utils.MetaReq}, passEvent2) if pass, err := filterS.Pass("cgrates.org", []string{"*gt:~*req.MaxUsage:0s"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: false, received: %+v", pass) } @@ -1286,13 +1286,13 @@ func TestPassFilterMaxCost(t *testing.T) { pEv.Set([]string{utils.MetaReq}, passEvent3) if pass, err := filterS.Pass("cgrates.org", []string{"*gt:~*req.MaxUsage:0"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: true, received: %+v", pass) } if pass, err := filterS.Pass("cgrates.org", []string{"*gt:~*req.MaxUsage:0"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: true, received: %+v", pass) } @@ -1314,7 +1314,7 @@ func TestPassFilterMissingField(t *testing.T) { pEv.Set([]string{utils.MetaReq}, passEvent1) if pass, err := filterS.Pass("cgrates.org", []string{"*rsr:~*req.Category:^$"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: true , received: %+v", pass) } @@ -1326,7 +1326,7 @@ func TestPassFilterMissingField(t *testing.T) { pEv.Set([]string{utils.MetaReq}, passEvent2) if pass, err := filterS.Pass("cgrates.org", []string{"*rsr:~*req.Category:^$"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: true , received: %+v", pass) } @@ -1338,7 +1338,7 @@ func TestPassFilterMissingField(t *testing.T) { pEv.Set([]string{utils.MetaReq}, passEvent3) if pass, err := filterS.Pass("cgrates.org", []string{"*rsr:~*req.Category:^$"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: false , received: %+v", pass) } @@ -1483,31 +1483,31 @@ func TestEventCostFilter(t *testing.T) { if pass, err := filterS.Pass("cgrates.org", []string{"*string:~*ec.Charges[0].Increments[0].Accounting.Balance.Value:50"}, cgrDp); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: true , received: %+v", pass) } if pass, err := filterS.Pass("cgrates.org", []string{"*string:~*ec.Charges[0].Increments[0].Accounting.AccountID:cgrates.org:1001"}, cgrDp); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: true , received: %+v", pass) } if pass, err := filterS.Pass("cgrates.org", []string{"*string:~*ec.Charges[0].Rating.Rates[0].Value:0.1574"}, cgrDp); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: true , received: %+v", pass) } if pass, err := filterS.Pass("cgrates.org", []string{"*string:~*ec.Charges[0].Increments[0].Accounting.Balance.ID:MONETARY_POSTPAID"}, cgrDp); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: true , received: %+v", pass) } if pass, err := filterS.Pass("cgrates.org", []string{"*lt:~*ec.AccountSummary.BalanceSummaries.MONETARY_POSTPAID.Value:60"}, cgrDp); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: true , received: %+v", pass) } @@ -1581,7 +1581,7 @@ func TestPassPartial(t *testing.T) { prefixes := []string{utils.DynamicDataPrefix + utils.MetaReq} if pass, ruleList, err := filterS.LazyPass("cgrates.org", []string{"*string:~*req.Account:1007"}, fEv, prefixes); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", true, pass) } else if len(ruleList) != 0 { @@ -1590,7 +1590,7 @@ func TestPassPartial(t *testing.T) { // in PartialPass we verify the filters matching the prefixes if pass, ruleList, err := filterS.LazyPass("cgrates.org", []string{"*string:~*req.Account:1007", "*string:~*vars.Field1:Val1"}, fEv, prefixes); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", true, pass) } else if len(ruleList) != 1 { @@ -1598,7 +1598,7 @@ func TestPassPartial(t *testing.T) { } if pass, ruleList, err := filterS.LazyPass("cgrates.org", []string{"*string:~*req.Account:1010", "*string:~*vars.Field1:Val1"}, fEv, prefixes); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } else if len(ruleList) != 0 { @@ -2455,7 +2455,7 @@ func TestFilterLazyPassErr(t *testing.T) { Cache.Set(utils.CacheFilters, utils.ConcatenatedKey("cgrates.org", fltrID), nil, []string{}, true, utils.NonTransactional) if _, _, err := filterS.LazyPass("cgrates.org", []string{fltrID}, fEv, prefixes); err == nil || err.Error() != utils.ErrPrefixNotFound(fltrID).Error() { - t.Errorf(err.Error()) + t.Error(err) } } diff --git a/general_tests/a1_it_test.go b/general_tests/a1_it_test.go index 864d4d849..b000a0c69 100644 --- a/general_tests/a1_it_test.go +++ b/general_tests/a1_it_test.go @@ -167,7 +167,7 @@ func testA1itAddBalance1(t *testing.T) { if err := a1rpc.Call(context.Background(), utils.APIerSv1AddBalance, argAdd, &reply); err != nil { t.Error(err) } else if reply != utils.OK { - t.Errorf(reply) + t.Errorf("unexpected reply returned: %s", reply) } argGet := &utils.AttrGetAccount{Tenant: argAdd.Tenant, Account: argAdd.Account} var acnt *engine.Account diff --git a/general_tests/filters_test.go b/general_tests/filters_test.go index f0a1b8e6c..c8732db3a 100644 --- a/general_tests/filters_test.go +++ b/general_tests/filters_test.go @@ -122,13 +122,13 @@ func TestInlineFilterPassFiltersForEvent(t *testing.T) { pEv := utils.MapStorage{utils.MetaReq: passEvent} if pass, err := filterS.Pass("cgrates.org", []string{"*destinations:~*req.Destination:EU"}, fEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if pass { t.Errorf("Expecting: %+v, received: %+v", false, pass) } if pass, err := filterS.Pass("cgrates.org", []string{"*destinations:~*req.Destination:EU_LANDLINE"}, pEv); err != nil { - t.Errorf(err.Error()) + t.Error(err) } else if !pass { t.Errorf("Expecting: %+v, received: %+v", true, pass) } diff --git a/go.mod b/go.mod index acafbf63c..1c6286f4f 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/cgrates/cgrates -go 1.23.2 +go 1.24.0 // replace github.com/cgrates/radigo => ../radigo diff --git a/migrator/thresholds_it_test.go b/migrator/thresholds_it_test.go index 7b3980d67..339616b6b 100644 --- a/migrator/thresholds_it_test.go +++ b/migrator/thresholds_it_test.go @@ -208,7 +208,7 @@ func testTrsITMigrateAndMove(t *testing.T) { ID: v1trs.ID, Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, Weight: v1trs.Weight, - ActivationInterval: &utils.ActivationInterval{v1trs.ExpirationDate, v1trs.ActivationDate}, + ActivationInterval: &utils.ActivationInterval{ActivationTime: v1trs.ExpirationDate, ExpiryTime: v1trs.ActivationDate}, MinSleep: v1trs.MinSleep, } diff --git a/packages/copr.fedorainfracloud.org/cgrates.spec b/packages/copr.fedorainfracloud.org/cgrates.spec index 8f6dd6b5f..2b6030e40 100644 --- a/packages/copr.fedorainfracloud.org/cgrates.spec +++ b/packages/copr.fedorainfracloud.org/cgrates.spec @@ -1,6 +1,6 @@ # Define global variables %global version 0.11.0~dev -%global go_version 1.23.2 +%global go_version 1.24.0 # Define system paths %define debug_package %{nil} diff --git a/packages/redhat_fedora/cgrates.spec b/packages/redhat_fedora/cgrates.spec index 021acdc39..3f7d42a2d 100644 --- a/packages/redhat_fedora/cgrates.spec +++ b/packages/redhat_fedora/cgrates.spec @@ -1,6 +1,6 @@ # Define global variables %global version 0.11.0~dev -%global go_version 1.23.2 +%global go_version 1.24.0 %global git_commit %(echo $gitLastCommit) %global releaseTag %(echo $rpmTag)