1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
package integration_tests
// Mount example filesystems and check that the file "status.txt" is there
import (
"io/ioutil"
"os"
"path/filepath"
"testing"
)
const statusTxtContent = "It works!\n"
// checkStatusTxt - read file "filename" and verify that it contains
// "It works!\n"
func checkExampleContent(t *testing.T, dir string) {
// Check regular file
statusFile := filepath.Join(dir, "status.txt")
contentBytes, err := ioutil.ReadFile(statusFile)
if err != nil {
t.Fatal(err)
}
content := string(contentBytes)
if content != statusTxtContent {
t.Errorf("Unexpected content: %s\n", content)
}
// Check relative symlink
symlink := filepath.Join(dir, "rel")
target, err := os.Readlink(symlink)
if err != nil {
t.Fatal(err)
}
if target != "status.txt" {
t.Errorf("Unexpected link target: %s\n", target)
}
// Check absolute symlink
symlink = filepath.Join(dir, "abs")
target, err = os.Readlink(symlink)
if err != nil {
t.Fatal(err)
}
if target != "/a/b/c/d" {
t.Errorf("Unexpected link target: %s\n", target)
}
}
// Test example_filesystems/v0.4
// with password mount and -masterkey mount
func TestExampleFsV04(t *testing.T) {
pDir := tmpDir + "TestExampleFsV04/"
cDir := "example_filesystems/v0.4"
err := os.Mkdir(pDir, 0777)
if err != nil {
t.Fatal(err)
}
mount(cDir, pDir, "-extpass", "echo test")
checkExampleContent(t, pDir)
unmount(pDir)
mount(cDir, pDir, "-masterkey", "74676e34-0b47c145-00dac61a-17a92316-"+
"bb57044c-e205b71f-65f4fdca-7cabd4b3", "-diriv=false", "-emenames=false")
checkExampleContent(t, pDir)
unmount(pDir)
err = os.Remove(pDir)
if err != nil {
t.Error(err)
}
}
// Test example_filesystems/v0.5
// with password mount and -masterkey mount
func TestExampleFsV05(t *testing.T) {
pDir := tmpDir + "TestExampleFsV05/"
cDir := "example_filesystems/v0.5"
err := os.Mkdir(pDir, 0777)
if err != nil {
t.Fatal(err)
}
mount(cDir, pDir, "-extpass", "echo test")
checkExampleContent(t, pDir)
unmount(pDir)
mount(cDir, pDir, "-masterkey", "199eae55-36bff4af-83b9a3a2-4fa16f65-"+
"1549ccdb-2d08d1f0-b1b26965-1b61f896", "-emenames=false")
checkExampleContent(t, pDir)
unmount(pDir)
err = os.Remove(pDir)
if err != nil {
t.Error(err)
}
}
// Test example_filesystems/v0.6
// with password mount and -masterkey mount
func TestExampleFsV06(t *testing.T) {
pDir := tmpDir + "TestExampleFsV06/"
cDir := "example_filesystems/v0.6"
err := os.Mkdir(pDir, 0777)
if err != nil {
t.Fatal(err)
}
mount(cDir, pDir, "-extpass", "echo test")
checkExampleContent(t, pDir)
unmount(pDir)
mount(cDir, pDir, "-masterkey", "7bc8deb0-5fc894ef-a093da43-61561a81-"+
"0e8dee83-fdc056a4-937c37dd-9df5c520")
checkExampleContent(t, pDir)
unmount(pDir)
err = os.Remove(pDir)
if err != nil {
t.Error(err)
}
}
// Test example_filesystems/v0.6
// with password mount and -masterkey mount
func TestExampleFsV06PlaintextNames(t *testing.T) {
pDir := tmpDir + "TestExampleFsV06PlaintextNames/"
cDir := "example_filesystems/v0.6-plaintextnames"
err := os.Mkdir(pDir, 0777)
if err != nil {
t.Fatal(err)
}
mount(cDir, pDir, "-extpass", "echo test")
checkExampleContent(t, pDir)
unmount(pDir)
mount(cDir, pDir, "-masterkey", "f4690202-595e4593-64c4f7e0-4dddd7d1-"+
"303147f9-0ca8aea2-966341a7-52ea8ae9", "-plaintextnames")
checkExampleContent(t, pDir)
unmount(pDir)
err = os.Remove(pDir)
if err != nil {
t.Error(err)
}
}
|