...
1 package redis
2
3 import (
4 "flag"
5 "os"
6 "testing"
7 "time"
8
9 "github.com/docker/distribution/registry/storage/cache/cachecheck"
10 "github.com/garyburd/redigo/redis"
11 )
12
13 var redisAddr string
14
15 func init() {
16 flag.StringVar(&redisAddr, "test.registry.storage.cache.redis.addr", "", "configure the address of a test instance of redis")
17 }
18
19
20
21 func TestRedisBlobDescriptorCacheProvider(t *testing.T) {
22 if redisAddr == "" {
23
24 redisAddr = os.Getenv("TEST_REGISTRY_STORAGE_CACHE_REDIS_ADDR")
25 }
26
27 if redisAddr == "" {
28
29 t.Skip("please set -test.registry.storage.cache.redis.addr to test layer info cache against redis")
30 }
31
32 pool := &redis.Pool{
33 Dial: func() (redis.Conn, error) {
34 return redis.Dial("tcp", redisAddr)
35 },
36 MaxIdle: 1,
37 MaxActive: 2,
38 TestOnBorrow: func(c redis.Conn, t time.Time) error {
39 _, err := c.Do("PING")
40 return err
41 },
42 Wait: false,
43 }
44
45
46 conn := pool.Get()
47 if _, err := conn.Do("FLUSHDB"); err != nil {
48 t.Fatalf("unexpected error flushing redis db: %v", err)
49 }
50 conn.Close()
51
52 cachecheck.CheckBlobDescriptorCache(t, NewRedisBlobDescriptorCacheProvider(pool))
53 }
54
View as plain text