2016-09-25 15:05:09 +02:00
|
|
|
package reverse_test
|
|
|
|
|
|
|
|
import (
|
2016-09-25 15:32:46 +02:00
|
|
|
"bytes"
|
2016-09-25 15:05:09 +02:00
|
|
|
"os"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/rfjakob/gocryptfs/tests/test_helpers"
|
|
|
|
)
|
|
|
|
|
2016-11-10 23:32:51 +01:00
|
|
|
var x240 = string(bytes.Repeat([]byte("x"), 240))
|
2016-10-08 20:57:38 +02:00
|
|
|
var plaintextnames bool
|
2016-09-25 15:05:09 +02:00
|
|
|
|
2017-02-16 21:20:29 +01:00
|
|
|
// dirA is a normal directory
|
|
|
|
var dirA string
|
|
|
|
|
|
|
|
// dirB is the reverse mount backed by dirA
|
|
|
|
var dirB string
|
|
|
|
|
|
|
|
// dirC is a forward mount backed by dirB
|
|
|
|
var dirC string
|
|
|
|
|
|
|
|
// Create directory "dirA", mount it reverse to "dirB", mount it forward
|
|
|
|
// to "dirC".
|
2016-09-25 15:05:09 +02:00
|
|
|
func TestMain(m *testing.M) {
|
2016-10-08 20:57:38 +02:00
|
|
|
var r int
|
|
|
|
for _, plaintextnames = range []bool{false, true} {
|
|
|
|
argsA := []string{"-reverse"}
|
|
|
|
if plaintextnames {
|
|
|
|
argsA = append(argsA, "-plaintextnames")
|
|
|
|
}
|
|
|
|
dirA = test_helpers.InitFS(nil, argsA...)
|
|
|
|
dirB = test_helpers.TmpDir + "/b"
|
|
|
|
dirC = test_helpers.TmpDir + "/c"
|
|
|
|
if err := os.Mkdir(dirB, 0700); err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
if err := os.Mkdir(dirC, 0700); err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
test_helpers.MountOrExit(dirA, dirB, "-reverse", "-extpass", "echo test")
|
|
|
|
test_helpers.MountOrExit(dirB, dirC, "-extpass", "echo test")
|
|
|
|
r = m.Run()
|
|
|
|
test_helpers.UnmountPanic(dirC)
|
|
|
|
test_helpers.UnmountPanic(dirB)
|
|
|
|
|
|
|
|
os.RemoveAll(dirA)
|
|
|
|
os.RemoveAll(dirB)
|
|
|
|
os.RemoveAll(dirC)
|
|
|
|
|
|
|
|
if r != 0 {
|
|
|
|
os.Exit(r)
|
|
|
|
}
|
2016-09-25 15:05:09 +02:00
|
|
|
}
|
|
|
|
os.Exit(r)
|
|
|
|
}
|