mirror of
https://github.com/golang/go
synced 2024-11-14 07:30: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;
|
integer int;
|
||||||
raw string;
|
raw string;
|
||||||
innerT T;
|
innerT T;
|
||||||
|
innerPointerT *T;
|
||||||
data []T;
|
data []T;
|
||||||
pdata []*T;
|
pdata []*T;
|
||||||
empty []*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