|
|
@ -30,31 +30,31 @@ func eq(v1, v2 value) bool {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (test valueTest) run(t *testing.T) {
|
|
|
|
func (test valueTest) run(t *testing.T) {
|
|
|
|
v, err := readValue(strings.NewReader(test.in + "\r\n"))
|
|
|
|
v, err := readValue(strings.NewReader(test.in))
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
t.Errorf("valueTest error: %v", err)
|
|
|
|
t.Errorf("valueTest error: %v", err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if !eq(v, test.out) {
|
|
|
|
if !eq(v, test.out) {
|
|
|
|
t.Errorf("expected %v, got %v", test.out, v)
|
|
|
|
t.Errorf("expected %q, got %q", test.out, v)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var valueTests = []valueTest{
|
|
|
|
var valueTests = []valueTest{
|
|
|
|
{"+hello", String("hello")},
|
|
|
|
{"+hello\r\n", String("hello")},
|
|
|
|
{"+one two", String("one two")}, // intermediate space
|
|
|
|
{"+one two\r\n", String("one two")}, // intermediate space
|
|
|
|
{"+one two ", String("one two ")}, // trailing space
|
|
|
|
{"+one two \r\n", String("one two ")}, // trailing space
|
|
|
|
{"+ one two", String(" one two")}, // leading space
|
|
|
|
{"+ one two\r\n", String(" one two")}, // leading space
|
|
|
|
|
|
|
|
|
|
|
|
{"-hello", Error("hello")},
|
|
|
|
{"-hello\r\n", Error("hello")},
|
|
|
|
{"-one two", Error("one two")}, // intermediate space
|
|
|
|
{"-one two\r\n", Error("one two")}, // intermediate space
|
|
|
|
{"-one two ", Error("one two ")}, // trailing space
|
|
|
|
{"-one two \r\n", Error("one two ")}, // trailing space
|
|
|
|
{"- one two", Error(" one two")}, // leading space
|
|
|
|
{"- one two\r\n", Error(" one two")}, // leading space
|
|
|
|
|
|
|
|
|
|
|
|
{"$-1\r\n", nil},
|
|
|
|
{"$-1\r\n", nil},
|
|
|
|
// {"$0\r\n\r\n", BulkString("")}, // is this even a thing?
|
|
|
|
{"$0\r\n\r\n", BulkString("")}, // is this even a thing?
|
|
|
|
// {"$1\r\nx\r\n", BulkString("x")},
|
|
|
|
{"$1\r\nx\r\n", BulkString("x")},
|
|
|
|
// {"$4\r\netsy\r\n", BulkString("etsy")},
|
|
|
|
{"$4\r\netsy\r\n", BulkString("etsy")},
|
|
|
|
// {"$12\r\nSaskatchewan\r\n", BulkString("Saskatchewan")},
|
|
|
|
{"$12\r\nSaskatchewan\r\n", BulkString("Saskatchewan")},
|
|
|
|
|
|
|
|
|
|
|
|
// {":0", Integer(0)},
|
|
|
|
// {":0", Integer(0)},
|
|
|
|
// {":1", Integer(1)},
|
|
|
|
// {":1", Integer(1)},
|
|
|
@ -64,15 +64,15 @@ var valueTests = []valueTest{
|
|
|
|
// {":9223372036854775807", Integer(9223372036854775807)}, // int64 max
|
|
|
|
// {":9223372036854775807", Integer(9223372036854775807)}, // int64 max
|
|
|
|
// {":-9223372036854775808", Integer(-9223372036854775808)}, // int64 min
|
|
|
|
// {":-9223372036854775808", Integer(-9223372036854775808)}, // int64 min
|
|
|
|
|
|
|
|
|
|
|
|
// {"+hello\r\n+extra\r\n", String("hello")},
|
|
|
|
{"+hello\r\n+extra\r\n", String("hello")},
|
|
|
|
// {"+one two\r\n+extra\r\n", String("one two")}, // intermediate space
|
|
|
|
{"+one two\r\n+extra\r\n", String("one two")}, // intermediate space
|
|
|
|
// {"+one two \r\n+extra\r\n", String("one two ")}, // trailing space
|
|
|
|
{"+one two \r\n+extra\r\n", String("one two ")}, // trailing space
|
|
|
|
// {"+ one two\r\n+extra\r\n", String(" one two")}, // leading space
|
|
|
|
{"+ one two\r\n+extra\r\n", String(" one two")}, // leading space
|
|
|
|
|
|
|
|
|
|
|
|
// {"-hello\r\n+extra\r\n", Error("hello")},
|
|
|
|
{"-hello\r\n+extra\r\n", Error("hello")},
|
|
|
|
// {"-one two\r\n+extra\r\n", Error("one two")}, // intermediate space
|
|
|
|
{"-one two\r\n+extra\r\n", Error("one two")}, // intermediate space
|
|
|
|
// {"-one two \r\n+extra\r\n", Error("one two ")}, // trailing space
|
|
|
|
{"-one two \r\n+extra\r\n", Error("one two ")}, // trailing space
|
|
|
|
// {"- one two\r\n+extra\r\n", Error(" one two")}, // leading space
|
|
|
|
{"- one two\r\n+extra\r\n", Error(" one two")}, // leading space
|
|
|
|
|
|
|
|
|
|
|
|
// {":0\r\n+extra\r\n", Integer(0)},
|
|
|
|
// {":0\r\n+extra\r\n", Integer(0)},
|
|
|
|
// {":1\r\n+extra\r\n", Integer(1)},
|
|
|
|
// {":1\r\n+extra\r\n", Integer(1)},
|
|
|
@ -82,7 +82,7 @@ var valueTests = []valueTest{
|
|
|
|
// {":9223372036854775807\r\n+extra\r\n", Integer(9223372036854775807)}, // int64 max
|
|
|
|
// {":9223372036854775807\r\n+extra\r\n", Integer(9223372036854775807)}, // int64 max
|
|
|
|
// {":-9223372036854775808\r\n+extra\r\n", Integer(-9223372036854775808)}, // int64 min
|
|
|
|
// {":-9223372036854775808\r\n+extra\r\n", Integer(-9223372036854775808)}, // int64 min
|
|
|
|
|
|
|
|
|
|
|
|
// {"*-1\r\n", nil}, // nil array
|
|
|
|
{"*-1\r\n", nil}, // nil array
|
|
|
|
// {"*0\r\n", Array{}}, // is this a thing? I have no idea.
|
|
|
|
// {"*0\r\n", Array{}}, // is this a thing? I have no idea.
|
|
|
|
// {"*1\r\n+hello\r\n", Array{String("hello")}},
|
|
|
|
// {"*1\r\n+hello\r\n", Array{String("hello")}},
|
|
|
|
// {"*2\r\n+one\r\n+two", Array{String("one"), String("two")}},
|
|
|
|
// {"*2\r\n+one\r\n+two", Array{String("one"), String("two")}},
|
|
|
|