]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/obj: add basic test of line history
authorRuss Cox <rsc@golang.org>
Sat, 14 Mar 2015 22:50:18 +0000 (18:50 -0400)
committerRuss Cox <rsc@golang.org>
Mon, 16 Mar 2015 23:07:28 +0000 (23:07 +0000)
Change-Id: Ic22e004b43bd98e712befb30684be16d8214c94a
Reviewed-on: https://go-review.googlesource.com/7622
Reviewed-by: Rob Pike <r@golang.org>
src/cmd/internal/obj/line_test.go [new file with mode: 0644]

diff --git a/src/cmd/internal/obj/line_test.go b/src/cmd/internal/obj/line_test.go
new file mode 100644 (file)
index 0000000..6e6cc33
--- /dev/null
@@ -0,0 +1,50 @@
+// 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)
+
+       Linklinehist(ctxt, 1, "a.c", 0)
+       Linklinehist(ctxt, 3, "a.h", 0)
+       Linklinehist(ctxt, 5, "<pop>", 0)
+       Linklinehist(ctxt, 7, "linedir", 2)
+       Linklinehist(ctxt, 9, "<pop>", 0)
+       Linklinehist(ctxt, 11, "b.c", 0)
+       Linklinehist(ctxt, 13, "<pop>", 0)
+
+       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)
+               }
+       }
+}