blob: 972980b8b6b0fc5bf3d6c0fab4c468e1b6af08cd [file] [log] [blame] [edit]
// Copyright 2024 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package ir
import (
"testing"
)
func testMatch(t *testing.T, pkgName, fnName, toMatch string, match bool) {
if matchPkgFn(pkgName, fnName, toMatch) != match {
t.Errorf("%v != matchPkgFn(%s, %s, %s)", match, pkgName, fnName, toMatch)
}
}
func TestMatchPkgFn(t *testing.T) {
// "aFunc" matches "aFunc" (in any package)
// "aPkg.aFunc" matches "aPkg.aFunc"
// "aPkg/subPkg.aFunc" matches "subPkg.aFunc"
match := func(pkgName, fnName, toMatch string) {
if !matchPkgFn(pkgName, fnName, toMatch) {
t.Errorf("matchPkgFn(%s, %s, %s) did not match", pkgName, fnName, toMatch)
}
}
match("aPkg", "AFunc", "AFunc")
match("aPkg", "AFunc", "AFunc")
match("aPkg", "AFunc", "aPkg.AFunc")
match("aPkg/sPkg", "AFunc", "aPkg/sPkg.AFunc")
match("aPkg/sPkg", "AFunc", "sPkg.AFunc")
notmatch := func(pkgName, fnName, toMatch string) {
if matchPkgFn(pkgName, fnName, toMatch) {
t.Errorf("matchPkgFn(%s, %s, %s) should not match", pkgName, fnName, toMatch)
}
}
notmatch("aPkg", "AFunc", "BFunc")
notmatch("aPkg", "AFunc", "aPkg.BFunc")
notmatch("aPkg", "AFunc", "bPkg.AFunc")
notmatch("aPkg", "AFunc", "aPkg_AFunc")
notmatch("aPkg/sPkg", "AFunc", "aPkg/ssPkg.AFunc")
notmatch("aPkg/sPkg", "AFunc", "XPkg.AFunc")
}