Files
LearnGO/go/pkg/mod/github.com/cilium/ebpf@v0.11.0/internal/output_test.go
T
2024-09-19 21:38:24 -04:00

42 lines
1003 B
Go

package internal
import (
"testing"
qt "github.com/frankban/quicktest"
)
func TestIdentifier(t *testing.T) {
testcases := []struct {
in, out string
}{
{".rodata", "Rodata"},
{"_foo_bar_", "FooBar"},
{"ipv6_test", "Ipv6Test"},
{"FOO_BAR", "FOO_BAR"},
{"FOO_", "FOO_"},
{"FOO__BAR", "FOO__BAR"},
{"FOO___BAR", "FOO___BAR"},
{"_FOO__BAR", "FOO__BAR"},
{"__FOO__BAR", "FOO__BAR"},
}
for _, tc := range testcases {
have := Identifier(tc.in)
if have != tc.out {
t.Errorf("Expected %q as output of %q, got %q", tc.out, tc.in, have)
}
}
}
func TestGoTypeName(t *testing.T) {
type foo struct{}
type bar[T any] struct{}
qt.Assert(t, GoTypeName(foo{}), qt.Equals, "foo")
qt.Assert(t, GoTypeName(new(foo)), qt.Equals, "foo")
qt.Assert(t, GoTypeName(new(*foo)), qt.Equals, "foo")
qt.Assert(t, GoTypeName(bar[int]{}), qt.Equals, "bar[int]")
// Broken in the stdlib, see GoTypeName for details.
// qt.Assert(t, GoTypeName(bar[qt.C]{}), qt.Equals, "bar[quicktest.C]")
}