From 99ce24e2ab936050c8d3135294e84cbf0840a346 Mon Sep 17 00:00:00 2001 From: Kevin Wan Date: Fri, 19 May 2023 00:56:50 +0800 Subject: [PATCH] chore: add more tests (#3260) --- core/stat/internal/cgroup_linux.go | 1 + core/stores/builder/builder_test.go | 59 +++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/core/stat/internal/cgroup_linux.go b/core/stat/internal/cgroup_linux.go index 23bdda48..5f53d9ed 100644 --- a/core/stat/internal/cgroup_linux.go +++ b/core/stat/internal/cgroup_linux.go @@ -284,6 +284,7 @@ func runningInUserNS() bool { if a == 0 && b == 0 && c == math.MaxUint32 { return } + inUserNS = true }) diff --git a/core/stores/builder/builder_test.go b/core/stores/builder/builder_test.go index 8741b7d6..d8cfd33e 100644 --- a/core/stores/builder/builder_test.go +++ b/core/stores/builder/builder_test.go @@ -69,3 +69,62 @@ func TestFieldNamesWithDashTagAndOptions(t *testing.T) { assert.Equal(t, expected, out) }) } + +func TestPostgreSqlJoin(t *testing.T) { + // Test with empty input array + var input []string + var expectedOutput string + assert.Equal(t, expectedOutput, PostgreSqlJoin(input)) + + // Test with single element input array + input = []string{"foo"} + expectedOutput = "foo = $2" + assert.Equal(t, expectedOutput, PostgreSqlJoin(input)) + + // Test with multiple elements input array + input = []string{"foo", "bar", "baz"} + expectedOutput = "foo = $2, bar = $3, baz = $4" + assert.Equal(t, expectedOutput, PostgreSqlJoin(input)) +} + +type testStruct struct { + Foo string `db:"foo"` + Bar int `db:"bar"` + Baz bool `db:"-"` +} + +func TestRawFieldNames(t *testing.T) { + // Test with a struct without tags + in := struct { + Foo string + Bar int + }{} + expectedOutput := []string{"`Foo`", "`Bar`"} + assert.ElementsMatch(t, expectedOutput, RawFieldNames(in)) + + // Test pg without db tag + expectedOutput = []string{"Foo", "Bar"} + assert.ElementsMatch(t, expectedOutput, RawFieldNames(in, true)) + + // Test with a struct with tags + input := testStruct{} + expectedOutput = []string{"`foo`", "`bar`"} + assert.ElementsMatch(t, expectedOutput, RawFieldNames(input)) + + // Test with nil input (pointer) + var nilInput *testStruct + assert.Panics(t, func() { + RawFieldNames(nilInput) + }, "RawFieldNames should panic with nil input") + + // Test with non-struct input + inputInt := 42 + assert.Panics(t, func() { + RawFieldNames(inputInt) + }, "RawFieldNames should panic with non-struct input") + + // Test with PostgreSQL flag + input = testStruct{} + expectedOutput = []string{"foo", "bar"} + assert.ElementsMatch(t, expectedOutput, RawFieldNames(input, true)) +}