clientv3/integration: test fetching entire keyspace
@@ -381,6 +381,36 @@ func TestKVRange(t *testing.T) {
{Key: []byte("fop"), Value: nil, CreateRevision: 9, ModRevision: 9, Version: 1},
},
},
+ // fetch entire keyspace using WithFromKey
+ {
+ "\x00", "",
+ 0,
+ []clientv3.OpOption{clientv3.WithFromKey(), clientv3.WithSort(clientv3.SortByKey, clientv3.SortAscend)},
+
+ []*mvccpb.KeyValue{
+ {Key: []byte("a"), Value: nil, CreateRevision: 2, ModRevision: 2, Version: 1},
+ {Key: []byte("b"), Value: nil, CreateRevision: 3, ModRevision: 3, Version: 1},
+ {Key: []byte("c"), Value: nil, CreateRevision: 4, ModRevision: 6, Version: 3},
+ {Key: []byte("foo"), Value: nil, CreateRevision: 7, ModRevision: 7, Version: 1},
+ {Key: []byte("foo/abc"), Value: nil, CreateRevision: 8, ModRevision: 8, Version: 1},
+ {Key: []byte("fop"), Value: nil, CreateRevision: 9, ModRevision: 9, Version: 1},
+ },
+ },
+ // fetch entire keyspace using WithPrefix
+ {
+ "", "",
+ 0,
+ []clientv3.OpOption{clientv3.WithPrefix(), clientv3.WithSort(clientv3.SortByKey, clientv3.SortAscend)},
+
+ []*mvccpb.KeyValue{
+ {Key: []byte("a"), Value: nil, CreateRevision: 2, ModRevision: 2, Version: 1},
+ {Key: []byte("b"), Value: nil, CreateRevision: 3, ModRevision: 3, Version: 1},
+ {Key: []byte("c"), Value: nil, CreateRevision: 4, ModRevision: 6, Version: 3},
+ {Key: []byte("foo"), Value: nil, CreateRevision: 7, ModRevision: 7, Version: 1},
+ {Key: []byte("foo/abc"), Value: nil, CreateRevision: 8, ModRevision: 8, Version: 1},
+ {Key: []byte("fop"), Value: nil, CreateRevision: 9, ModRevision: 9, Version: 1},
+ },
+ },
}
for i, tt := range tests {
