diff options
author | Heisenberg <lziqiang1@gmail.com> | 2020-09-04 16:56:54 +0800 |
---|---|---|
committer | Robert Griesemer <gri@golang.org> | 2020-11-03 04:11:02 +0000 |
commit | 974def803ee9fd03a755014dcb62d55105c846f1 (patch) | |
tree | 84f4db59951a20ae46b3e3461a21f54b632770c8 /src/go | |
parent | cc0930cd1d200a126a3ae8ac3d1bea986cfc30fe (diff) | |
download | go-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.go | 29 |
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) + } + } +} |