...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package cache
16
17 import (
18 "testing"
19
20 v1 "github.com/google/go-containerregistry/pkg/v1"
21 "github.com/google/go-containerregistry/pkg/v1/random"
22 )
23
24 func TestReadOnly(t *testing.T) {
25 m := &memcache{map[v1.Hash]v1.Layer{}}
26 ro := ReadOnly(m)
27
28
29 img, err := random.Image(10, 1)
30 if err != nil {
31 t.Fatalf("random.Image: %v", err)
32 }
33 img = Image(img, m)
34 ls, err := img.Layers()
35 if err != nil {
36 t.Fatalf("Layers: %v", err)
37 }
38 if got, want := len(ls), 1; got != want {
39 t.Fatalf("Layers returned %d layers, want %d", got, want)
40 }
41 h, err := ls[0].Digest()
42 if err != nil {
43 t.Fatalf("layer.Digest: %v", err)
44 }
45 m.m[h] = ls[0]
46
47
48 if _, err := m.Get(h); err != nil {
49 t.Fatalf("m.Get: %v", err)
50 }
51 if _, err := ro.Get(h); err != nil {
52 t.Fatalf("ro.Get: %v", err)
53 }
54 ln := len(m.m)
55
56
57 if _, err := ro.Put(ls[0]); err != nil {
58 t.Fatalf("ro.Put: %v", err)
59 }
60 if got, want := len(m.m), ln; got != want {
61 t.Errorf("After Put, got %v entries, want %v", got, want)
62 }
63
64
65 if err := ro.Delete(h); err != nil {
66 t.Fatalf("ro.Delete: %v", err)
67 }
68 if got, want := len(m.m), ln; got != want {
69 t.Errorf("After Delete, got %v entries, want %v", got, want)
70 }
71
72
73 if err := m.Delete(h); err != nil {
74 t.Fatalf("m.Delete: %v", err)
75 }
76 if got, want := len(m.m), 0; got != want {
77 t.Errorf("After RW Delete, got %v entries, want %v", got, want)
78 }
79 }
80
View as plain text