|
@@ -104,6 +104,32 @@ func testWithClient(t *testing.T, c *Client) {
|
|
|
t.Errorf("get(foo) Flags = %v, want 123", it.Flags)
|
|
t.Errorf("get(foo) Flags = %v, want 123", it.Flags)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // Get and set a unicode key
|
|
|
|
|
+ quxKey := "Hello_世界"
|
|
|
|
|
+ qux := &Item{Key: quxKey, Value: []byte("hello world")}
|
|
|
|
|
+ err = c.Set(qux)
|
|
|
|
|
+ checkErr(err, "first set(Hello_世界): %v", err)
|
|
|
|
|
+ it, err = c.Get(quxKey)
|
|
|
|
|
+ checkErr(err, "get(Hello_世界): %v", err)
|
|
|
|
|
+ if it.Key != quxKey {
|
|
|
|
|
+ t.Errorf("get(Hello_世界) Key = %q, want Hello_世界", it.Key)
|
|
|
|
|
+ }
|
|
|
|
|
+ if string(it.Value) != "hello world" {
|
|
|
|
|
+ t.Errorf("get(Hello_世界) Value = %q, want hello world", string(it.Value))
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Set malformed keys
|
|
|
|
|
+ malFormed := &Item{Key: "foo bar", Value: []byte("foobarval")}
|
|
|
|
|
+ err = c.Set(malFormed)
|
|
|
|
|
+ if err != ErrMalformedKey {
|
|
|
|
|
+ t.Errorf("set(foo bar) should return ErrMalformedKey instead of %v", err)
|
|
|
|
|
+ }
|
|
|
|
|
+ malFormed = &Item{Key: "foo" + string(0x7f), Value: []byte("foobarval")}
|
|
|
|
|
+ err = c.Set(malFormed)
|
|
|
|
|
+ if err != ErrMalformedKey {
|
|
|
|
|
+ t.Errorf("set(foo<0x7f>) should return ErrMalformedKey instead of %v", err)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// Add
|
|
// Add
|
|
|
bar := &Item{Key: "bar", Value: []byte("barval")}
|
|
bar := &Item{Key: "bar", Value: []byte("barval")}
|
|
|
err = c.Add(bar)
|
|
err = c.Add(bar)
|