From 546ef39d54e40bfeb700a578dba77a3bd3186637 Mon Sep 17 00:00:00 2001 From: ionutboangiu Date: Wed, 17 Apr 2024 19:46:01 +0300 Subject: [PATCH] Revise agents *uch unit test - increase margin of error by 1ms - in case of failure, retrieve the expiry time and log it along the current time. Makes troubleshooting easier in the future. --- agents/agentreq_test.go | 43 +++++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/agents/agentreq_test.go b/agents/agentreq_test.go index 2ac8eb19c5..7a4d846041 100644 --- a/agents/agentreq_test.go +++ b/agents/agentreq_test.go @@ -28,6 +28,7 @@ import ( "testing" "time" + "github.com/cgrates/birpc/context" "github.com/cgrates/cgrates/config" "github.com/cgrates/cgrates/engine" "github.com/cgrates/cgrates/utils" @@ -2166,12 +2167,42 @@ func TestAgReqSetFieldsInCacheWithTimeOut(t *testing.T) { t.Error(err) } // give enough time to Cache to remove ttl the *uch - time.Sleep(6 * time.Millisecond) - if _, err := agReq.FieldAsInterface([]string{utils.MetaUCH, utils.Tenant}); err == nil || err != utils.ErrNotFound { - t.Error(err) - } - if _, err := agReq.FieldAsInterface([]string{utils.MetaUCH, utils.AccountField}); err == nil || err != utils.ErrNotFound { - t.Error(err) + time.Sleep(7 * time.Millisecond) + if _, err := agReq.FieldAsInterface([]string{utils.MetaUCH, utils.Tenant}); err != utils.ErrNotFound { + t.Errorf("agReq.FieldAsInterface([]string{%q,%q}):got err=%v, want %v", + utils.MetaUCH, utils.Tenant, err, utils.ErrNotFound) + + // Check item expiry time just in case. + var expiryTime time.Time + if err := engine.Cache.V1GetItemExpiryTime(context.Background(), + &utils.ArgsGetCacheItemWithAPIOpts{ + ArgsGetCacheItem: utils.ArgsGetCacheItem{ + CacheID: utils.MetaUCH, + ItemID: utils.Tenant, + }, + }, &expiryTime); err != nil { + t.Logf("V1GetItemExpiryTime(%q,%q): got unexpected err=%v, item probably expired in the meantime", + utils.MetaUCH, utils.Tenant, err) + } + t.Logf("item supposed to expire at %v, current time: %v", expiryTime, time.Now()) + } + if _, err := agReq.FieldAsInterface([]string{utils.MetaUCH, utils.AccountField}); err != utils.ErrNotFound { + t.Errorf("agReq.FieldAsInterface([]string{%q,%q}):got err=%v, want %v", + utils.MetaUCH, utils.AccountField, err, utils.ErrNotFound) + + // Check item expiry time just in case. + var expiryTime time.Time + if err := engine.Cache.V1GetItemExpiryTime(context.Background(), + &utils.ArgsGetCacheItemWithAPIOpts{ + ArgsGetCacheItem: utils.ArgsGetCacheItem{ + CacheID: utils.MetaUCH, + ItemID: utils.AccountField, + }, + }, &expiryTime); err != nil { + t.Logf("V1GetItemExpiryTime(%q,%q): got unexpected err=%v, item probably expired in the meantime", + utils.MetaUCH, utils.Tenant, err) + } + t.Logf("item supposed to expire at %v, current time: %v", expiryTime, time.Now()) } }