// Copyright 2015 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package demangle import ( "fmt" "testing" ) func TestASTToString(t *testing.T) { var tests = []struct { input AST want string formatted string }{ { &Qualified{Scope: &Name{Name: "s"}, Name: &Name{Name: "C"}}, "s::C", `Qualified: Scope: s Name: C`, }, { &Typed{Name: &Name{Name: "v"}, Type: &BuiltinType{"int"}}, "int v", `Typed: Name: v Type: BuiltinType: int`, }, } for i, test := range tests { if got := ASTToString(test.input); got != test.want { t.Errorf("ASTToString of test %d == %s, want %s", i, test.input, test.want) } if got := fmt.Sprintf("%#v", test.input); got != test.formatted { t.Errorf("Formatted test %d == %s, want %s", i, got, test.formatted) } } }