MCPcopy Index your code
hub / github.com/foxcpp/maddy / TestFileReload_Removed

Function TestFileReload_Removed

internal/table/file_test.go:226–276  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

224}
225
226func TestFileReload_Removed(t *testing.T) {
227 t.Parallel()
228
229 const file = `cat: dog`
230
231 f, err := os.CreateTemp("", "maddy-tests-")
232 if err != nil {
233 t.Fatal(err)
234 }
235 if _, err := f.WriteString(file); err != nil {
236 _ = f.Close()
237 t.Fatal(err)
238 }
239 err = f.Close()
240 if err != nil {
241 t.Fatal(err)
242 }
243
244 mod, err := NewFile(container.New(), "", "")
245 if err != nil {
246 t.Fatal(err)
247 }
248 m := mod.(*File)
249 if err := m.Start(); err != nil {
250 t.Fatal(err)
251 }
252 m.log = testutils.Logger(t, FileModName)
253 defer func(m *File) {
254 err := m.Stop()
255 if err != nil {
256 t.Fatal(err)
257 }
258 }(m)
259
260 if err := mod.Configure([]string{f.Name()}, &config.Map{Block: config.Node{}}); err != nil {
261 t.Fatal(err)
262 }
263
264 err = os.Remove(f.Name())
265 if err != nil {
266 t.Fatal(err)
267 }
268
269 time.Sleep(3 * reloadInterval)
270
271 m.mLck.RLock()
272 defer m.mLck.RUnlock()
273 if m.m["cat"] != nil {
274 t.Fatal("Old m are still loaded")
275 }
276}
277
278func init() {
279 reloadInterval = 10 * time.Millisecond

Callers

nothing calls this directly

Calls 9

ConfigureMethod · 0.95
NewFunction · 0.92
LoggerFunction · 0.92
NewFileFunction · 0.85
CloseMethod · 0.65
StartMethod · 0.65
StopMethod · 0.65
NameMethod · 0.65
RemoveMethod · 0.65

Tested by

no test coverage detected