@cryptotaxi247 / kubo / commits / c18ec9824

add test for deletes

License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>

Jeromy committed Jan 25, 2017 at 12:20 UTC c18ec9824eadbc6ea8ad4e9804868430fb644710
1 file changed +60
filestore/filestore_test.go
+60
@@ -102,3 +102,63 @@ func TestBasicFilestore(t *testing.T) {
102 }
103 }
104 }
105 +
106 +func randomFileAdd(t *testing.T, fs *Filestore, dir string, size int) (string, []*cid.Cid) {
107 + buf := make([]byte, size)
108 + rand.Read(buf)
109 +
110 + fname, err := makeFile(dir, buf)
111 + if err != nil {
112 + t.Fatal(err)
113 + }
114 +
115 + var out []*cid.Cid
116 + for i := 0; i < size/10; i++ {
117 + n := &posinfo.FilestoreNode{
118 + PosInfo: &posinfo.PosInfo{
119 + FullPath: fname,
120 + Offset: uint64(i * 10),
121 + },
122 + Node: dag.NewRawNode(buf[i*10 : (i+1)*10]),
123 + }
124 + err := fs.Put(n)
125 + if err != nil {
126 + t.Fatal(err)
127 + }
128 + out = append(out, n.Cid())
129 + }
130 +
131 + return fname, out
132 +}
133 +
134 +func TestDeletes(t *testing.T) {
135 + dir, fs := newTestFilestore(t)
136 + _, cids := randomFileAdd(t, fs, dir, 100)
137 + todelete := cids[:4]
138 + for _, c := range todelete {
139 + err := fs.DeleteBlock(c)
140 + if err != nil {
141 + t.Fatal(err)
142 + }
143 + }
144 +
145 + deleted := make(map[string]bool)
146 + for _, c := range todelete {
147 + _, err := fs.Get(c)
148 + if err != blockstore.ErrNotFound {
149 + t.Fatal("expected blockstore not found error")
150 + }
151 + deleted[c.KeyString()] = true
152 + }
153 +
154 + keys, err := fs.AllKeysChan(context.Background())
155 + if err != nil {
156 + t.Fatal(err)
157 + }
158 +
159 + for c := range keys {
160 + if deleted[c.KeyString()] {
161 + t.Fatal("shouldnt have reference to this key anymore")
162 + }
163 + }
164 +}