// 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 obj import ( "fmt" "testing" ) func TestLineHist(t *testing.T) { ctxt := new(Link) ctxt.Hash = make(map[SymVer]*LSym) ctxt.LineHist.Push(1, "a.c") ctxt.LineHist.Push(3, "a.h") ctxt.LineHist.Pop(5) ctxt.LineHist.Update(7, "linedir", 2) ctxt.LineHist.Pop(9) ctxt.LineHist.Push(11, "b.c") ctxt.LineHist.Pop(13) var expect = []string{ 0: "??:0", 1: "a.c:1", 2: "a.c:2", 3: "a.h:1", 4: "a.h:2", 5: "a.c:3", 6: "a.c:4", 7: "linedir:2", 8: "linedir:3", 9: "??:0", 10: "??:0", 11: "b.c:1", 12: "b.c:2", 13: "??:0", 14: "??:0", } for i, want := range expect { var f *LSym var l int32 linkgetline(ctxt, int32(i), &f, &l) have := fmt.Sprintf("%s:%d", f.Name, l) if have != want { t.Errorf("linkgetline(%d) = %q, want %q", i, have, want) } } }