Commit 9f2f8ead authored by Rob Pike's avatar Rob Pike

add test of invariant in findVar

R=rsc
DELTA=23  (23 added, 0 deleted, 0 changed)
OCL=32592
CL=32595
parent 783986c6
......@@ -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()));
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment