diff --git a/pkg/shared/util/uniq_str_list.go b/pkg/shared/util/uniq_str_list.go index 4a5c09be85..48840596ae 100644 --- a/pkg/shared/util/uniq_str_list.go +++ b/pkg/shared/util/uniq_str_list.go @@ -18,6 +18,7 @@ package util import ( "container/list" + "strings" "sync" ) @@ -94,9 +95,12 @@ func (l *UniqueStringList) Remove(value string) { func (l *UniqueStringList) ToString() string { l.lock.RLock() defer l.lock.RUnlock() - var s string + var sb strings.Builder for e := l.l.Front(); e != nil; e = e.Next() { - s += e.Value.(string) + "," + if sb.Len() > 0 { + sb.WriteByte(',') + } + sb.WriteString(e.Value.(string)) } - return s + return sb.String() } diff --git a/pkg/shared/util/uniq_str_list_test.go b/pkg/shared/util/uniq_str_list_test.go index ab88096bf4..23c27d383a 100644 --- a/pkg/shared/util/uniq_str_list_test.go +++ b/pkg/shared/util/uniq_str_list_test.go @@ -67,3 +67,15 @@ func TestUniqStrList(t *testing.T) { assert.Equal(t, true, l.Contains("a")) assert.Equal(t, true, l.Contains("c")) } + +func TestUniqueStringList_ToString(t *testing.T) { + l := NewUniqueStringList() + assert.Equal(t, "", l.ToString()) + + l.PushBack("a") + assert.Equal(t, "a", l.ToString()) + + l.PushBack("b") + l.PushBack("c") + assert.Equal(t, "a,b,c", l.ToString()) +}