1d28973611
The infrastructure will also be used by the upcoming OpenNofollow tests.
48 lines
844 B
Go
48 lines
844 B
Go
package syscallcompat
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
var tmpDir string
|
|
var tmpDirFd int
|
|
|
|
func TestMain(m *testing.M) {
|
|
origWd, err := os.Getwd()
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
os.Exit(1)
|
|
}
|
|
parent := "/tmp/gocryptfs-test-parent"
|
|
err = os.MkdirAll(parent, 0700)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
os.Exit(1)
|
|
}
|
|
tmpDir, err = ioutil.TempDir(parent, "syscallcompat")
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
os.Exit(1)
|
|
}
|
|
dirf, err := os.Open(tmpDir)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
os.Exit(1)
|
|
}
|
|
defer dirf.Close()
|
|
tmpDirFd = int(dirf.Fd())
|
|
// Run the tests
|
|
r := m.Run()
|
|
// Check that we are in the same directory again (the emulated syscalls
|
|
// use Fchdir a lot)
|
|
cwd, _ := os.Getwd()
|
|
if cwd != origWd {
|
|
fmt.Printf("working dir has changed from %q to %q", origWd, cwd)
|
|
os.Exit(1)
|
|
}
|
|
os.Exit(r)
|
|
}
|