95e8c2599c
pidfile.New() was opening a file in /proc to determine if the owning process still exists. Use syscall.OpenProcess() on Windows instead. Other OSes may also need to be updated here. Signed-off-by: John Starks <jostarks@microsoft.com>
38 lines
749 B
Go
38 lines
749 B
Go
package pidfile
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestNewAndRemove(t *testing.T) {
|
|
dir, err := ioutil.TempDir(os.TempDir(), "test-pidfile")
|
|
if err != nil {
|
|
t.Fatal("Could not create test directory")
|
|
}
|
|
|
|
path := filepath.Join(dir, "testfile")
|
|
file, err := New(path)
|
|
if err != nil {
|
|
t.Fatal("Could not create test file", err)
|
|
}
|
|
|
|
_, err = New(path)
|
|
if err == nil {
|
|
t.Fatal("Test file creation not blocked")
|
|
}
|
|
|
|
if err := file.Remove(); err != nil {
|
|
t.Fatal("Could not delete created test file")
|
|
}
|
|
}
|
|
|
|
func TestRemoveInvalidPath(t *testing.T) {
|
|
file := PIDFile{path: filepath.Join("foo", "bar")}
|
|
|
|
if err := file.Remove(); err == nil {
|
|
t.Fatal("Non-existing file doesn't give an error on delete")
|
|
}
|
|
}
|