42 lines
1003 B
Go
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]")
|
|
}
|