zotregistry.io/zot@v1.4.4-0.20231124084042-02a8ed785457/pkg/storage/cache_test.go (about) 1 package storage_test 2 3 import ( 4 "path" 5 "testing" 6 7 . "github.com/smartystreets/goconvey/convey" 8 9 "zotregistry.io/zot/errors" 10 "zotregistry.io/zot/pkg/log" 11 "zotregistry.io/zot/pkg/storage" 12 "zotregistry.io/zot/pkg/storage/cache" 13 ) 14 15 func TestCache(t *testing.T) { 16 Convey("Make a new cache", t, func() { 17 dir := t.TempDir() 18 19 log := log.NewLogger("debug", "") 20 So(log, ShouldNotBeNil) 21 22 _, err := storage.Create("boltdb", "failTypeAssertion", log) 23 So(err, ShouldNotBeNil) 24 25 cacheDriver, _ := storage.Create("boltdb", cache.BoltDBDriverParameters{ 26 RootDir: "/deadBEEF", 27 Name: "cache_test", 28 UseRelPaths: true, 29 }, log) 30 So(cacheDriver, ShouldBeNil) 31 32 cacheDriver, _ = storage.Create("boltdb", cache.BoltDBDriverParameters{ 33 RootDir: dir, 34 Name: "cache_test", 35 UseRelPaths: true, 36 }, log) 37 So(cacheDriver, ShouldNotBeNil) 38 39 So(cacheDriver.UsesRelativePaths(), ShouldBeTrue) 40 41 name := cacheDriver.Name() 42 So(name, ShouldEqual, "boltdb") 43 44 val, err := cacheDriver.GetBlob("key") 45 So(err, ShouldEqual, errors.ErrCacheMiss) 46 So(val, ShouldBeEmpty) 47 48 exists := cacheDriver.HasBlob("key", "value") 49 So(exists, ShouldBeFalse) 50 51 err = cacheDriver.PutBlob("key", path.Join(dir, "value")) 52 So(err, ShouldBeNil) 53 54 err = cacheDriver.PutBlob("key", "value") 55 So(err, ShouldNotBeNil) 56 57 exists = cacheDriver.HasBlob("key", "value") 58 So(exists, ShouldBeTrue) 59 60 val, err = cacheDriver.GetBlob("key") 61 So(err, ShouldBeNil) 62 So(val, ShouldNotBeEmpty) 63 64 err = cacheDriver.DeleteBlob("bogusKey", "bogusValue") 65 So(err, ShouldEqual, errors.ErrCacheMiss) 66 67 err = cacheDriver.DeleteBlob("key", "bogusValue") 68 So(err, ShouldBeNil) 69 70 // try to insert empty path 71 err = cacheDriver.PutBlob("key", "") 72 So(err, ShouldNotBeNil) 73 So(err, ShouldEqual, errors.ErrEmptyValue) 74 }) 75 }