1
0
mirror of https://github.com/golang/go synced 2024-11-25 22:07:58 -07:00

add test of invariant in findVar

R=rsc
DELTA=23  (23 added, 0 deleted, 0 changed)
OCL=32592
CL=32595
This commit is contained in:
Rob Pike 2009-07-31 12:52:03 -07:00
parent 783986c64b
commit 9f2f8eadb6

View File

@ -28,6 +28,7 @@ type S struct {
integer int;
raw string;
innerT T;
innerPointerT *T;
data []T;
pdata []*T;
empty []*T;
@ -341,3 +342,25 @@ func TestCustomDelims(t *testing.T) {
}
}
}
// Test that a variable evaluates to the field itself and does not further indirection
func TestVarIndirection(t *testing.T) {
s := new(S);
// initialized by hand for clarity.
s.innerPointerT = &t1;
var buf bytes.Buffer;
input := "{.section @}{innerPointerT}{.end}";
tmpl, err := Parse(input, nil);
if err != nil {
t.Fatal("unexpected parse error:", err);
}
err = tmpl.Execute(s, &buf);
if err != nil {
t.Fatal("unexpected execute error:", err)
}
expect := fmt.Sprintf("%v", &t1); // output should be hex address of t1
if string(buf.Data()) != expect {
t.Errorf("for %q: expected %q got %q", input, expect, string(buf.Data()));
}
}