2
0
mirror of synced 2025-02-24 07:18:15 +00:00
mobile/internal/importers/ast_test.go
Elias Naur e4531be66f internal/importers: introduce package to analyze Java classes
The importers package adds functions to traverse the AST of a Go
file or set of packages and extract references to Java packages and
types.

The java package adds a parser that uses the javap command to extract
type information about Java classes and interfaces.

The resulting type information is needed to generate Java API wrappers
in Go.

This is the first part of the implementation of proposal golang/go#16876.

For golang/go#16876

Change-Id: Ic844472a1101354d61401d9e8c120acdee2519df
Reviewed-on: https://go-review.googlesource.com/28595
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-09-16 17:24:51 +00:00

36 lines
729 B
Go

package importers
import (
"go/parser"
"go/token"
"testing"
)
func TestAnalyzer(t *testing.T) {
file := `package ast_test
import "Prefix/some/pkg/Name"
const c = Name.Constant
`
fset := token.NewFileSet()
f, err := parser.ParseFile(fset, "ast_test.go", file, parser.AllErrors)
if err != nil {
t.Fatal(err)
}
refs, err := AnalyzeFile(f, "Prefix/")
if err != nil {
t.Fatal(err)
}
if len(refs.Refs) != 1 {
t.Fatalf("expected 1 reference; got %d", len(refs.Refs))
}
got := refs.Refs[0]
if exp := (PkgRef{"some/pkg/Name", "Constant"}); exp != got {
t.Errorf("expected ref %v; got %v", exp, got)
}
if _, exists := refs.Names["Constant"]; !exists {
t.Errorf("expected \"Constant\" in the names set")
}
}