confwatcher: add additional tests

This commit is contained in:
aler9 2021-01-13 21:47:23 +01:00 committed by Alessandro Ros
parent 8e97f4ff61
commit 205284829d
2 changed files with 47 additions and 17 deletions

View file

@ -83,7 +83,7 @@ outer:
eventPath, _ := filepath.Abs(event.Name)
if currentWatchedPath == "" {
// Watched file was removed wait for write event to trigger reload
// watched file was removed; wait for write event to trigger reload
previousWatchedPath = ""
} else if currentWatchedPath != previousWatchedPath ||
(eventPath == currentWatchedPath &&

View file

@ -29,7 +29,7 @@ func TestNoFile(t *testing.T) {
require.Error(t, err)
}
func TestFileWrite(t *testing.T) {
func TestWrite(t *testing.T) {
fpath, err := writeTempFile([]byte("{}"))
require.NoError(t, err)
@ -54,7 +54,7 @@ func TestFileWrite(t *testing.T) {
}
}
func TestFileWriteMultipleTimes(t *testing.T) {
func TestWriteMultipleTimes(t *testing.T) {
fpath, err := writeTempFile([]byte("{}"))
require.NoError(t, err)
@ -97,7 +97,7 @@ func TestFileWriteMultipleTimes(t *testing.T) {
}
}
/*func TestFileDeleteCreate(t *testing.T) {
func TestDeleteCreate(t *testing.T) {
fpath, err := writeTempFile([]byte("{}"))
require.NoError(t, err)
@ -105,22 +105,52 @@ func TestFileWriteMultipleTimes(t *testing.T) {
require.NoError(t, err)
defer w.Close()
os.Remove(fpath)
time.Sleep(10 * time.Millisecond)
os.Remove(fpath)
time.Sleep(10 * time.Millisecond)
func() {
f, err := os.Create(fpath)
require.NoError(t, err)
defer f.Close()
func() {
f, err := os.Create(fpath)
require.NoError(t, err)
defer f.Close()
_, err = f.Write([]byte("{}"))
require.NoError(t, err)
}()
_, err = f.Write([]byte("{}"))
require.NoError(t, err)
}()
select {
case <-w.Watch():
//case <-time.After(500 * time.Millisecond):
// t.Errorf("timed out")
// return
case <-time.After(500 * time.Millisecond):
t.Errorf("timed out")
return
}
}*/
}
func TestSymlinkDeleteCreate(t *testing.T) {
fpath, err := writeTempFile([]byte("{}"))
require.NoError(t, err)
err = os.Symlink(fpath, fpath+"-sym")
require.NoError(t, err)
w, err := New(fpath + "-sym")
require.NoError(t, err)
defer w.Close()
os.Remove(fpath)
func() {
f, err := os.Create(fpath)
require.NoError(t, err)
defer f.Close()
_, err = f.Write([]byte("{}"))
require.NoError(t, err)
}()
select {
case <-w.Watch():
case <-time.After(500 * time.Millisecond):
t.Errorf("timed out")
return
}
}