mirror of
https://github.com/gopasspw/gopass.git
synced 2026-02-01 17:37:29 +00:00
* [chore] Migrate to golangci-lint v2 Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Fix more lint issues Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Fix more lint issue Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Fix more lint issues Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Add more package comments. Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Fix golangci-lint config and the remaining checks Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Use Go 1.24 Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Fix container builds Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * Fix more failing tests Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * Fix test failure Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * Fix another len assertion Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * Move location tests Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Fix most remaining lint issues Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Only run XDG specific tests on linux Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Attempt to address on source of flaky failures Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> --------- Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
88 lines
1.4 KiB
Go
88 lines
1.4 KiB
Go
package cache
|
|
|
|
import (
|
|
"strconv"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func nowFunc(ns int) func() time.Time {
|
|
return func() time.Time {
|
|
return time.Date(2000, 1, 1, 1, 1, 1, ns, time.UTC)
|
|
}
|
|
}
|
|
|
|
func TestTTL(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
c := &InMemTTL[string, string]{
|
|
ttl: 4,
|
|
maxTTL: 5,
|
|
}
|
|
|
|
c.now = nowFunc(0)
|
|
|
|
val, found := c.Get("foo")
|
|
assert.Empty(t, val)
|
|
assert.False(t, found)
|
|
|
|
c.Set("foo", "bar")
|
|
val, found = c.Get("foo")
|
|
assert.Equal(t, "bar", val)
|
|
assert.True(t, found)
|
|
|
|
c.now = nowFunc(4)
|
|
|
|
val, found = c.Get("foo")
|
|
assert.Equal(t, "bar", val)
|
|
assert.True(t, found)
|
|
|
|
c.now = nowFunc(6)
|
|
|
|
val, found = c.Get("foo")
|
|
assert.Empty(t, val)
|
|
assert.False(t, found)
|
|
|
|
c.Set("bar", "baz")
|
|
val, found = c.Get("bar")
|
|
assert.Equal(t, "baz", val)
|
|
assert.True(t, found)
|
|
|
|
c.Remove("bar")
|
|
val, found = c.Get("bar")
|
|
assert.Empty(t, val)
|
|
assert.False(t, found)
|
|
|
|
c.Set("foo", "bar")
|
|
c.Set("bar", "baz")
|
|
val, found = c.Get("bar")
|
|
assert.Equal(t, "baz", val)
|
|
assert.True(t, found)
|
|
|
|
c.Purge()
|
|
val, found = c.Get("bar")
|
|
assert.Empty(t, val)
|
|
assert.False(t, found)
|
|
}
|
|
|
|
func TestPar(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
c := NewInMemTTL[int, int](time.Minute, time.Minute)
|
|
c.now = nowFunc(0)
|
|
|
|
for i := range 32 {
|
|
for range 32 {
|
|
t.Run("set"+strconv.Itoa(i), func(t *testing.T) {
|
|
t.Parallel()
|
|
c.Set(i, i)
|
|
iv, found := c.Get(i)
|
|
assert.True(t, found)
|
|
assert.Equal(t, i, iv)
|
|
})
|
|
}
|
|
}
|
|
}
|