mirror of
https://github.com/langhuihui/monibuca.git
synced 2025-12-24 13:48:04 +08:00
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package report
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestPackageName(t *testing.T) {
|
|
type testCase struct {
|
|
name string
|
|
expect string
|
|
}
|
|
|
|
for _, c := range []testCase{
|
|
// Unrecognized packages:
|
|
{``, ``},
|
|
{`name`, ``},
|
|
{`[libjvm.so]`, ``},
|
|
{`prefix/name/suffix`, ``},
|
|
{`prefix(a.b.c,x.y.z)`, ``},
|
|
{`<undefined>.a.b`, ``},
|
|
{`(a.b)`, ``},
|
|
|
|
// C++ symbols:
|
|
{`Math.number`, `Math`},
|
|
{`std::vector`, `std`},
|
|
{`std::internal::vector`, `std`},
|
|
|
|
// Java symbols:
|
|
{`pkg.Class.name`, `pkg`},
|
|
{`pkg.pkg.Class.name`, `pkg`},
|
|
{`pkg.Class.name(a.b.c, x.y.z)`, `pkg`},
|
|
{`pkg.pkg.Class.<init>`, `pkg`},
|
|
{`pkg.pkg.Class.<init>(a.b.c, x.y.z)`, `pkg`},
|
|
|
|
// Go symbols:
|
|
{`pkg.name`, `pkg`},
|
|
{`pkg.(*type).name`, `pkg`},
|
|
{`path/pkg.name`, `path/pkg`},
|
|
{`path/pkg.(*type).name`, `path/pkg`},
|
|
{`path/path/pkg.name`, `path/path/pkg`},
|
|
{`path/path/pkg.(*type).name`, `path/path/pkg`},
|
|
{`some.url.com/path/pkg.fnID`, `some.url.com/path/pkg`},
|
|
{`parent-dir/dir/google.golang.org/grpc/transport.NewFramer`, `parent-dir/dir/google.golang.org/grpc/transport`},
|
|
{`parent-dir/dir/google.golang.org/grpc.(*Server).handleRawConn`, `parent-dir/dir/google.golang.org/grpc`},
|
|
} {
|
|
t.Run(c.name, func(t *testing.T) {
|
|
if got := packageName(c.name); got != c.expect {
|
|
t.Errorf("packageName(%q) = %#v, expecting %#v", c.name, got, c.expect)
|
|
}
|
|
})
|
|
}
|
|
}
|