Browse Source

confwatcher: add additional tests

pull/190/head
aler9 6 years ago committed by Alessandro Ros
parent
commit
205284829d
  1. 2
      internal/confwatcher/confwatcher.go
  2. 62
      internal/confwatcher/confwatcher_test.go

2
internal/confwatcher/confwatcher.go

@ -83,7 +83,7 @@ outer:
eventPath, _ := filepath.Abs(event.Name) eventPath, _ := filepath.Abs(event.Name)
if currentWatchedPath == "" { 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 = "" previousWatchedPath = ""
} else if currentWatchedPath != previousWatchedPath || } else if currentWatchedPath != previousWatchedPath ||
(eventPath == currentWatchedPath && (eventPath == currentWatchedPath &&

62
internal/confwatcher/confwatcher_test.go

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

Loading…
Cancel
Save