Skip to content

Commit

Permalink
add gop.GetFileClassType
Browse files Browse the repository at this point in the history
  • Loading branch information
visualfc committed Apr 12, 2024
1 parent 5192883 commit 9cf0814
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 0 deletions.
9 changes: 9 additions & 0 deletions cl/builtin_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,15 @@ func TestClassNameAndExt(t *testing.T) {
}
}

func TestClassTypeForTest(t *testing.T) {
if name := ClassTypeForTest("foo"); name != "case_foo" {
t.Fatal("ClassTypeForTest error:", name)
}
if name := ClassTypeForTest("Foo"); name != "caseFoo" {
t.Fatal("ClassTypeForTest error:", name)
}
}

func TestErrMultiStarRecv(t *testing.T) {
defer func() {
if e := recover(); e == nil {
Expand Down
4 changes: 4 additions & 0 deletions cl/classfile.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,10 @@ func ClassNameAndExt(file string) (name, clsfile, ext string) {
return
}

func ClassTypeForTest(classType string) string {
return casePrefix + testNameSuffix(classType)
}

func isGoxTestFile(ext string) bool {
return strings.HasSuffix(ext, "test.gox")
}
Expand Down
29 changes: 29 additions & 0 deletions load.go
Original file line number Diff line number Diff line change
Expand Up @@ -403,3 +403,32 @@ var (
)

// -----------------------------------------------------------------------------

// GetFileClassType get gop module file classType.
func GetFileClassType(mod *gopmod.Module, filename string, file *ast.File) (classType string, isTest bool, ok bool) {
if file.IsClass {
var ext string
classType, _, ext = cl.ClassNameAndExt(filename)
ok = true
if file.IsNormalGox {
isTest = strings.HasSuffix(ext, "_test.gox")
if !isTest && classType == "main" {
classType = "_main"
}
} else {
isTest = strings.HasSuffix(ext, "test.gox")
}
if file.IsProj {
if gt, ok := mod.LookupClass(ext); ok {
classType = gt.Class
}
} else if isTest {
classType = cl.ClassTypeForTest(classType)
}
} else if strings.HasSuffix(filename, "_test.gop") {
isTest = true
}
return
}

// -----------------------------------------------------------------------------

0 comments on commit 9cf0814

Please sign in to comment.