MCPcopy
hub / github.com/git-lfs/git-lfs / TestStoreReduceSize

Function TestStoreReduceSize

tools/kv/keyvaluestore_test.go:141–185  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

139}
140
141func TestStoreReduceSize(t *testing.T) {
142 tmpf, err := os.CreateTemp("", "lfstest3")
143 assert.Nil(t, err)
144 filename := tmpf.Name()
145 defer os.Remove(filename)
146 tmpf.Close()
147
148 kvs, err := NewStore(filename)
149 assert.Nil(t, err)
150
151 kvs.Set("key1", "I woke up in a Soho doorway")
152 kvs.Set("key2", "A policeman knew my name")
153 kvs.Set("key3", "He said 'You can go sleep at home tonight")
154 kvs.Set("key4", "If you can get up and walk away'")
155
156 assert.NotNil(t, kvs.Get("key1"))
157 assert.NotNil(t, kvs.Get("key2"))
158 assert.NotNil(t, kvs.Get("key3"))
159 assert.NotNil(t, kvs.Get("key4"))
160
161 assert.Nil(t, kvs.Save())
162
163 stat1, _ := os.Stat(filename)
164
165 // Remove all but 1 key & save smaller version
166 kvs.Remove("key2")
167 kvs.Remove("key3")
168 kvs.Remove("key4")
169 assert.Nil(t, kvs.Save())
170
171 // Now reload fresh & prove works
172 kvs = nil
173
174 kvs, err = NewStore(filename)
175 assert.Nil(t, err)
176 assert.NotNil(t, kvs.Get("key1"))
177 assert.Nil(t, kvs.Get("key2"))
178 assert.Nil(t, kvs.Get("key3"))
179 assert.Nil(t, kvs.Get("key4"))
180
181 stat2, _ := os.Stat(filename)
182
183 assert.True(t, stat2.Size() < stat1.Size(), "Size should have reduced, was %d now %d", stat1.Size(), stat2.Size())
184
185}

Callers

nothing calls this directly

Calls 8

RemoveMethod · 0.95
SetMethod · 0.95
GetMethod · 0.95
SaveMethod · 0.95
NewStoreFunction · 0.85
SizeMethod · 0.80
NameMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected