aboutsummaryrefslogtreecommitdiff
path: root/src/go
diff options
context:
space:
mode:
authorHeisenberg <lziqiang1@gmail.com>2020-09-04 16:56:54 +0800
committerRobert Griesemer <gri@golang.org>2020-11-03 04:11:02 +0000
commit974def803ee9fd03a755014dcb62d55105c846f1 (patch)
tree84f4db59951a20ae46b3e3461a21f54b632770c8 /src/go
parentcc0930cd1d200a126a3ae8ac3d1bea986cfc30fe (diff)
downloadgo-974def803ee9fd03a755014dcb62d55105c846f1.tar.gz
go-974def803ee9fd03a755014dcb62d55105c846f1.zip
go/ast: add test for Filter
Change-Id: Ia14659a9c44f9e1504eb88b5693932b9dd4bb286 Reviewed-on: https://go-review.googlesource.com/c/go/+/252939 Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Trust: Dmitri Shuralyov <dmitshur@golang.org> Trust: Robert Griesemer <gri@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
Diffstat (limited to 'src/go')
-rw-r--r--src/go/ast/commentmap_test.go29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/go/ast/commentmap_test.go b/src/go/ast/commentmap_test.go
index e372eab745..38c62b01ab 100644
--- a/src/go/ast/commentmap_test.go
+++ b/src/go/ast/commentmap_test.go
@@ -140,4 +140,31 @@ func TestCommentMap(t *testing.T) {
}
}
-// TODO(gri): add tests for Filter.
+func TestFilter(t *testing.T) {
+ fset := token.NewFileSet()
+ f, err := parser.ParseFile(fset, "", src, parser.ParseComments)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cmap := NewCommentMap(fset, f, f.Comments)
+
+ // delete variable declaration
+ for i, decl := range f.Decls {
+ if gen, ok := decl.(*GenDecl); ok && gen.Tok == token.VAR {
+ copy(f.Decls[i:], f.Decls[i+1:])
+ f.Decls = f.Decls[:len(f.Decls)-1]
+ break
+ }
+ }
+
+ // check if comments are filtered correctly
+ cc := cmap.Filter(f)
+ for n, list := range cc {
+ key := fmt.Sprintf("%2d: %T", fset.Position(n.Pos()).Line, n)
+ got := ctext(list)
+ want := res[key]
+ if key == "25: *ast.GenDecl" || got != want {
+ t.Errorf("%s: got %q; want %q", key, got, want)
+ }
+ }
+}