pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/pid/pid_linux_test.go (about) 1 //go:build linux || freebsd 2 // +build linux freebsd 3 4 package pid 5 6 // ////////////////////////////////////////////////////////////////////////////////// // 7 // // 8 // Copyright (c) 2022 ESSENTIAL KAOS // 9 // Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0> // 10 // // 11 // ////////////////////////////////////////////////////////////////////////////////// // 12 13 import ( 14 "fmt" 15 "io/ioutil" 16 "os" 17 "time" 18 19 . "pkg.re/essentialkaos/check.v1" 20 ) 21 22 // ////////////////////////////////////////////////////////////////////////////////// // 23 24 func (s *PidSuite) TestIsWorks(c *C) { 25 Dir = s.Dir 26 27 err := Create("test") 28 29 c.Assert(err, IsNil) 30 c.Assert(IsWorks("test"), Equals, true) 31 32 Remove("test") 33 34 c.Assert(IsWorks("test"), Equals, false) 35 36 // Write fake pid to pid file 37 ioutil.WriteFile(s.Dir+"/test.pid", []byte("69999\n"), 0644) 38 39 c.Assert(IsWorks("test"), Equals, false) 40 41 procfsDir = c.MkDir() 42 err = os.Mkdir(procfsDir+"/69999", 0755) 43 44 if err != nil { 45 c.Fatal(fmt.Sprintf("Can't create directory %s", procfsDir+"/69999")) 46 } 47 48 time.Sleep(2 * time.Second) 49 50 err = os.Mkdir(procfsDir+"/1", 0755) 51 52 if err != nil { 53 c.Fatal(fmt.Sprintf("Can't create directory %s", procfsDir+"/1")) 54 } 55 56 c.Assert(IsWorks("test"), Equals, false) 57 } 58 59 func (s *PidSuite) TestIsProcessWorks(c *C) { 60 c.Assert(IsProcessWorks(os.Getpid()), Equals, true) 61 c.Assert(IsProcessWorks(999999), Equals, false) 62 }