Merge pull request #1039 from go-redis/fix/ttl-1

Handle -1 in DurationCmd
This commit is contained in:
Vladimir Mihailenco 2019-05-31 13:45:52 +03:00 committed by GitHub
commit c6b800e266
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 3 deletions

View File

@ -1,7 +1,7 @@
all: testdeps
go test ./...
go test ./... -short -race
go test ./... -run=NONE -bench=.
go test ./... -run=NONE -bench=. -benchmem
env GOOS=linux GOARCH=386 go test ./...
go vet
go get github.com/gordonklaus/ineffassign

View File

@ -439,7 +439,14 @@ func (cmd *DurationCmd) readReply(rd *proto.Reader) error {
if cmd.err != nil {
return cmd.err
}
cmd.val = time.Duration(n) * cmd.precision
switch n {
// -2 if the key does not exist
// -1 if the key exists but has no associated expire
case -2, -1:
cmd.val = time.Duration(n)
default:
cmd.val = time.Duration(n) * cmd.precision
}
return nil
}

View File

@ -374,7 +374,11 @@ var _ = Describe("Commands", func() {
ttl = client.TTL("key")
Expect(ttl.Err()).NotTo(HaveOccurred())
Expect(ttl.Val() < 0).To(Equal(true))
Expect(ttl.Val()).To(Equal(time.Duration(-1)))
ttl = client.TTL("nonexistent_key")
Expect(ttl.Err()).NotTo(HaveOccurred())
Expect(ttl.Val()).To(Equal(time.Duration(-2)))
})
It("should ExpireAt", func() {