1
0
mirror of https://github.com/golang/go synced 2024-11-25 21:47:59 -07:00

test & fix template used twice

R=r
DELTA=30  (30 added, 0 deleted, 0 changed)
OCL=27470
CL=27474
This commit is contained in:
Russ Cox 2009-04-14 21:25:33 -07:00
parent fa60226073
commit cf8b9ce580
2 changed files with 30 additions and 0 deletions

View File

@ -514,6 +514,7 @@ func (t *Template) Execute(data interface{}, wr io.Write) *os.Error {
val := reflect.NewValue(data);
ch := make(chan *os.Error);
go func() {
t.p = 0;
t.execute(&state{nil, ch, val, wr});
ch <- nil; // clean return;
}();

View File

@ -199,8 +199,37 @@ func TestStringDriverType(t *testing.T) {
}
var b io.ByteBuffer;
err = tmpl.Execute("hello", &b);
if err != nil {
t.Error("unexpected parse error:", err)
}
s := string(b.Data());
if s != "template: hello" {
t.Errorf("failed passing string as data: expected %q got %q", "template: hello", s)
}
}
func TestTwice(t *testing.T) {
tmpl, err, line := Parse("template: {@}", nil);
if err != nil {
t.Error("unexpected parse error:", err)
}
var b io.ByteBuffer;
err = tmpl.Execute("hello", &b);
if err != nil {
t.Error("unexpected parse error:", err)
}
s := string(b.Data());
text := "template: hello";
if s != text {
t.Errorf("failed passing string as data: expected %q got %q", text, s);
}
err = tmpl.Execute("hello", &b);
if err != nil {
t.Error("unexpected parse error:", err)
}
s = string(b.Data());
text += text;
if s != text {
t.Errorf("failed passing string as data: expected %q got %q", text, s);
}
}