mirror of
https://github.com/golang/go
synced 2024-11-13 17:20:22 -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:
parent
783986c64b
commit
9f2f8eadb6
@ -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()));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user