Use UTF-8 char U+0000 as terminate charactor.
Allow setting range end as `NULL`, see also #50. Signed-off-by: Tao He <sighingnow@gmail.com>
This commit is contained in:
parent
52d757f14a
commit
cee938fb0a
|
|
@ -50,6 +50,7 @@ std::string etcdv3::detail::string_plus_one(std::string const &value) {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// see: noPrefixEnd in etcd
|
// see: noPrefixEnd in etcd, however c++ doesn't allows '\0' inside a string, thus we use
|
||||||
return {"\0"};
|
// the UTF-8 char U+0000 (i.e., "\xC0\x80").
|
||||||
|
return {"\xC0\x80"};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -231,10 +231,11 @@ TEST_CASE("list by range")
|
||||||
etcd::Client etcd("http://127.0.0.1:2379");
|
etcd::Client etcd("http://127.0.0.1:2379");
|
||||||
CHECK(0 == etcd.ls("/test/new_dir").get().keys().size());
|
CHECK(0 == etcd.ls("/test/new_dir").get().keys().size());
|
||||||
|
|
||||||
|
etcd.set("/test/new_dir/key0", "value0").wait();
|
||||||
etcd.set("/test/new_dir/key1", "value1").wait();
|
etcd.set("/test/new_dir/key1", "value1").wait();
|
||||||
etcd.set("/test/new_dir/key2", "value1").wait();
|
etcd.set("/test/new_dir/key2", "value2").wait();
|
||||||
etcd.set("/test/new_dir/key3", "value1").wait();
|
etcd.set("/test/new_dir/key3", "value3").wait();
|
||||||
etcd.set("/test/new_dir/key4", "value1").wait();
|
etcd.set("/test/new_dir/key4", "value4").wait();
|
||||||
|
|
||||||
etcd::Response resp1 = etcd.ls("/test/new_dir/key1", "/test/new_dir/key3").get();
|
etcd::Response resp1 = etcd.ls("/test/new_dir/key1", "/test/new_dir/key3").get();
|
||||||
REQUIRE(resp1.is_ok());
|
REQUIRE(resp1.is_ok());
|
||||||
|
|
@ -248,6 +249,12 @@ TEST_CASE("list by range")
|
||||||
REQUIRE(3 == resp2.keys().size());
|
REQUIRE(3 == resp2.keys().size());
|
||||||
REQUIRE(3 == resp2.values().size());
|
REQUIRE(3 == resp2.values().size());
|
||||||
|
|
||||||
|
etcd::Response resp3 = etcd.ls("/test/new_dir/key1", {"\xC0\x80"}).get();
|
||||||
|
REQUIRE(resp3.is_ok());
|
||||||
|
CHECK("get" == resp3.action());
|
||||||
|
REQUIRE(4 == resp3.keys().size());
|
||||||
|
REQUIRE(4 == resp3.values().size());
|
||||||
|
|
||||||
CHECK(0 == etcd.ls("/test/new_dir/key1").get().error_code());
|
CHECK(0 == etcd.ls("/test/new_dir/key1").get().error_code());
|
||||||
|
|
||||||
CHECK(etcd.rmdir("/test/new_dir", true).get().is_ok());
|
CHECK(etcd.rmdir("/test/new_dir", true).get().is_ok());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue