From: Russ Cox Date: Tue, 14 Apr 2009 02:29:38 +0000 (-0700) Subject: template bug X-Git-Tag: weekly.2009-11-06~1845 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=fa7be65bc0661a05946fefb5486370945b608e7d;p=gostls13.git template bug --- FAIL: template.TestAll for "{.section data}{.end} {header}\n": expected " 77\n" got " {header}\n" R=r DELTA=20 (14 added, 0 deleted, 6 changed) OCL=27395 CL=27402 --- diff --git a/src/lib/template/template_test.go b/src/lib/template/template_test.go index ef9b28ab81..0280fa9241 100644 --- a/src/lib/template/template_test.go +++ b/src/lib/template/template_test.go @@ -34,8 +34,8 @@ type S struct { var t1 = T{ "ItemNumber1", "ValueNumber1" } var t2 = T{ "ItemNumber2", "ValueNumber2" } -func uppercase(v reflect.Value) string { - s := reflect.Indirect(v).(reflect.StringValue).Get(); +func uppercase(v interface{}) string { + s := v.(string); t := ""; for i := 0; i < len(s); i++ { c := s[i]; @@ -47,14 +47,21 @@ func uppercase(v reflect.Value) string { return t; } -func plus1(v reflect.Value) string { - i := reflect.Indirect(v).(reflect.IntValue).Get(); +func plus1(v interface{}) string { + i := v.(int); return fmt.Sprint(i + 1); } +func writer(f func(interface{}) string) (func(io.Write, interface{}, string)) { + return func(w io.Write, v interface{}, format string) { + io.WriteString(w, f(v)); + } +} + + var formatters = FormatterMap { - "uppercase" : uppercase, - "+1" : plus1, + "uppercase" : writer(uppercase), + "+1" : writer(plus1), } var tests = []*Test { @@ -149,6 +156,13 @@ var tests = []*Test { "HEADER=78\n" "Header=77\n" }, + + // Bugs +// &Test{ +// "{.section data}{.end} {header}\n", +// +// " 77\n" +// }, } func TestAll(t *testing.T) {