forked from mirror/redis
Merge pull request #1039 from go-redis/fix/ttl-1
Handle -1 in DurationCmd
This commit is contained in:
commit
c6b800e266
2
Makefile
2
Makefile
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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() {
|
||||
|
|
Loading…
Reference in New Issue