blob: c67e8b704334098f6d5c80a70ea62ed1ac7aa4d0 [file] [log] [blame]
package follow
import (
"os"
"testing"
"time"
)
// TestStatReadPartial tests partial reads with the os.Stat()-based fsReader
func TestStatReadPartial(t *testing.T) {
testFileName := os.TempDir() + "/follow.reader.stat.partial"
// Create the test file.
testfile, err := os.Create(testFileName)
if err != nil {
t.Fatalf("os.Create() failed: %v", err)
}
testfile.Close()
defer os.Remove(testFileName)
// Create the os.Stat()-based fsWatcher.
minSleep := 10 * time.Millisecond
maxSleep := 100 * time.Millisecond
watcher, err := newCustomFSStatWatcher(testFileName, minSleep, maxSleep)
if err != nil {
t.Fatalf("newCustomFSWatcher() failed: %v", err)
}
timeout := 100 * time.Millisecond
if err := testReadPartial(testFileName, watcher, timeout); err != nil {
t.Fatalf("testReadPartial() failed: %v", err)
}
}
// TestStatReadFull tests full reads with the os.Stat()-based fsReader
func TestStatReadFull(t *testing.T) {
testFileName := os.TempDir() + "/follow.reader.stat.full"
// Create the test file.
testfile, err := os.Create(testFileName)
if err != nil {
t.Fatalf("os.Create() failed: %v", err)
}
testfile.Close()
defer os.Remove(testFileName)
// Create the os.Stat()-based fsWatcher.
minSleep := 10 * time.Millisecond
maxSleep := 100 * time.Millisecond
watcher, err := newCustomFSStatWatcher(testFileName, minSleep, maxSleep)
if err != nil {
t.Fatalf("newCustomFSWatcher() failed: %v", err)
}
timeout := 100 * time.Millisecond
if err := testReadFull(testFileName, watcher, timeout); err != nil {
t.Fatalf("testReadFull() failed: %v", err)
}
}
// TestStatClose tests close with the os.Stat()-based fsReader
func TestStatClose(t *testing.T) {
testFileName := os.TempDir() + "/follow.reader.stat.close"
// Create the test file.
testfile, err := os.Create(testFileName)
if err != nil {
t.Fatalf("os.Create() failed: %v", err)
}
testfile.Close()
defer os.Remove(testFileName)
// Create the os.Stat()-based fsWatcher.
minSleep := 10 * time.Millisecond
maxSleep := 100 * time.Millisecond
watcher, err := newCustomFSStatWatcher(testFileName, minSleep, maxSleep)
if err != nil {
t.Fatalf("newCustomFSWatcher() failed: %v", err)
}
timeout := 100 * time.Millisecond
if err := testClose(testFileName, watcher, timeout); err != nil {
t.Fatalf("testClose() failed: %v", err)
}
}