From 07770ae76dba7bf8dfab868dfb3104828c425bb0 Mon Sep 17 00:00:00 2001 From: Cosmin Cojocar Date: Fri, 4 Oct 2019 13:23:58 +0200 Subject: [PATCH] Add a test for composite literals when trying to resolve an AST tree node Signed-off-by: Cosmin Cojocar --- resolve_test.go | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/resolve_test.go b/resolve_test.go index 035ba90..15c49d2 100644 --- a/resolve_test.go +++ b/resolve_test.go @@ -112,6 +112,24 @@ var _ = Describe("Resolve ast node to concrete value", func() { Expect(value).ShouldNot(BeNil()) Expect(gosec.TryResolve(value, ctx)).Should(BeTrue()) }) - }) + It("should successfully resolve composite literal", func() { + var value *ast.CompositeLit + pkg := testutils.NewTestPackage() + defer pkg.Close() + pkg.AddFile("foo.go", `package main; func main(){ y := []string{"value1", "value2"}; println(y) }`) + ctx := pkg.CreateContext("foo.go") + v := testutils.NewMockVisitor() + v.Callback = func(n ast.Node, ctx *gosec.Context) bool { + if node, ok := n.(*ast.CompositeLit); ok { + value = node + } + return true + } + v.Context = ctx + ast.Walk(v, ctx.Root) + Expect(value).ShouldNot(BeNil()) + Expect(gosec.TryResolve(value, ctx)).Should(BeTrue()) + }) + }) })