// 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") }