summaryrefslogtreecommitdiff
path: root/internal/util/slices_test.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2024-11-11 15:45:19 +0000
committerLibravatar GitHub <noreply@github.com>2024-11-11 15:45:19 +0000
commite3c2b790fd4329494979bd27be7fa162600f1436 (patch)
tree4f33353453cf45a670149e3d9f7dedc56ad79a88 /internal/util/slices_test.go
parent[chore]: Bump golang.org/x/net from 0.30.0 to 0.31.0 (#3536) (diff)
downloadgotosocial-e3c2b790fd4329494979bd27be7fa162600f1436.tar.xz
[performance] minimise log field allocations (#3529)
* when appending log field only do so by minimal amount * move slice utils to separate package to fix import cycle, add GrowJust() and AppendJust() functions * fix GrowJust() not returning slice of same length * improved xslices tests * make AppendJust() test check for slice contents, fix AppendJust() final copying behaviour * add a +1 with field growth to try minimise allocation for log 'msg' field
Diffstat (limited to 'internal/util/slices_test.go')
-rw-r--r--internal/util/slices_test.go94
1 files changed, 0 insertions, 94 deletions
diff --git a/internal/util/slices_test.go b/internal/util/slices_test.go
deleted file mode 100644
index c93e489f5..000000000
--- a/internal/util/slices_test.go
+++ /dev/null
@@ -1,94 +0,0 @@
-// GoToSocial
-// Copyright (C) GoToSocial Authors admin@gotosocial.org
-// SPDX-License-Identifier: AGPL-3.0-or-later
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-package util_test
-
-import (
- "net/url"
- "slices"
- "testing"
-
- "github.com/superseriousbusiness/gotosocial/internal/util"
-)
-
-var (
- testURLSlice = []*url.URL{}
-)
-
-func TestGather(t *testing.T) {
- out := util.Gather(nil, []*url.URL{
- {Scheme: "https", Host: "google.com", Path: "/some-search"},
- {Scheme: "http", Host: "example.com", Path: "/robots.txt"},
- }, (*url.URL).String)
- if !slices.Equal(out, []string{
- "https://google.com/some-search",
- "http://example.com/robots.txt",
- }) {
- t.Fatal("unexpected gather output")
- }
-
- out = util.Gather([]string{
- "starting input string",
- "another starting input",
- }, []*url.URL{
- {Scheme: "https", Host: "google.com", Path: "/some-search"},
- {Scheme: "http", Host: "example.com", Path: "/robots.txt"},
- }, (*url.URL).String)
- if !slices.Equal(out, []string{
- "starting input string",
- "another starting input",
- "https://google.com/some-search",
- "http://example.com/robots.txt",
- }) {
- t.Fatal("unexpected gather output")
- }
-}
-
-func TestGatherIf(t *testing.T) {
- out := util.GatherIf(nil, []string{
- "hello world",
- "not hello world",
- "hello world",
- }, func(s string) (string, bool) {
- return s, s == "hello world"
- })
- if !slices.Equal(out, []string{
- "hello world",
- "hello world",
- }) {
- t.Fatal("unexpected gatherif output")
- }
-
- out = util.GatherIf([]string{
- "starting input string",
- "another starting input",
- }, []string{
- "hello world",
- "not hello world",
- "hello world",
- }, func(s string) (string, bool) {
- return s, s == "hello world"
- })
- if !slices.Equal(out, []string{
- "starting input string",
- "another starting input",
- "hello world",
- "hello world",
- }) {
- t.Fatal("unexpected gatherif output")
- }
-}