FreeBSD doesn't have "bind" mount, but nullfs might be a similar feature.
However nullfs can mount only directories.
Docker-DCO-1.1-Signed-off-by: Kato Kazuyoshi <kato.kazuyoshi@gmail.com> (github: kzys)
| ... | ... |
@@ -31,10 +31,15 @@ func TestMounted(t *testing.T) {
|
| 31 | 31 |
defer os.RemoveAll(tmp) |
| 32 | 32 |
|
| 33 | 33 |
var ( |
| 34 |
- sourcePath = path.Join(tmp, "sourcefile.txt") |
|
| 35 |
- targetPath = path.Join(tmp, "targetfile.txt") |
|
| 34 |
+ sourceDir = path.Join(tmp, "source") |
|
| 35 |
+ targetDir = path.Join(tmp, "target") |
|
| 36 |
+ sourcePath = path.Join(sourceDir, "file.txt") |
|
| 37 |
+ targetPath = path.Join(targetDir, "file.txt") |
|
| 36 | 38 |
) |
| 37 | 39 |
|
| 40 |
+ os.Mkdir(sourceDir, 0777) |
|
| 41 |
+ os.Mkdir(targetDir, 0777) |
|
| 42 |
+ |
|
| 38 | 43 |
f, err := os.Create(sourcePath) |
| 39 | 44 |
if err != nil {
|
| 40 | 45 |
t.Fatal(err) |
| ... | ... |
@@ -48,23 +53,23 @@ func TestMounted(t *testing.T) {
|
| 48 | 48 |
} |
| 49 | 49 |
f.Close() |
| 50 | 50 |
|
| 51 |
- if err := Mount(sourcePath, targetPath, "none", "bind,rw"); err != nil {
|
|
| 51 |
+ if err := Mount(sourceDir, targetDir, "none", "bind,rw"); err != nil {
|
|
| 52 | 52 |
t.Fatal(err) |
| 53 | 53 |
} |
| 54 | 54 |
defer func() {
|
| 55 |
- if err := Unmount(targetPath); err != nil {
|
|
| 55 |
+ if err := Unmount(targetDir); err != nil {
|
|
| 56 | 56 |
t.Fatal(err) |
| 57 | 57 |
} |
| 58 | 58 |
}() |
| 59 | 59 |
|
| 60 |
- mounted, err := Mounted(targetPath) |
|
| 60 |
+ mounted, err := Mounted(targetDir) |
|
| 61 | 61 |
if err != nil {
|
| 62 | 62 |
t.Fatal(err) |
| 63 | 63 |
} |
| 64 | 64 |
if !mounted {
|
| 65 |
- t.Fatalf("Expected %s to be mounted", targetPath)
|
|
| 65 |
+ t.Fatalf("Expected %s to be mounted", targetDir)
|
|
| 66 | 66 |
} |
| 67 |
- if _, err := os.Stat(targetPath); err != nil {
|
|
| 67 |
+ if _, err := os.Stat(targetDir); err != nil {
|
|
| 68 | 68 |
t.Fatal(err) |
| 69 | 69 |
} |
| 70 | 70 |
} |
| ... | ... |
@@ -77,10 +82,15 @@ func TestMountReadonly(t *testing.T) {
|
| 77 | 77 |
defer os.RemoveAll(tmp) |
| 78 | 78 |
|
| 79 | 79 |
var ( |
| 80 |
- sourcePath = path.Join(tmp, "sourcefile.txt") |
|
| 81 |
- targetPath = path.Join(tmp, "targetfile.txt") |
|
| 80 |
+ sourceDir = path.Join(tmp, "source") |
|
| 81 |
+ targetDir = path.Join(tmp, "target") |
|
| 82 |
+ sourcePath = path.Join(sourceDir, "file.txt") |
|
| 83 |
+ targetPath = path.Join(targetDir, "file.txt") |
|
| 82 | 84 |
) |
| 83 | 85 |
|
| 86 |
+ os.Mkdir(sourceDir, 0777) |
|
| 87 |
+ os.Mkdir(targetDir, 0777) |
|
| 88 |
+ |
|
| 84 | 89 |
f, err := os.Create(sourcePath) |
| 85 | 90 |
if err != nil {
|
| 86 | 91 |
t.Fatal(err) |
| ... | ... |
@@ -94,7 +104,7 @@ func TestMountReadonly(t *testing.T) {
|
| 94 | 94 |
} |
| 95 | 95 |
f.Close() |
| 96 | 96 |
|
| 97 |
- if err := Mount(sourcePath, targetPath, "none", "bind,ro"); err != nil {
|
|
| 97 |
+ if err := Mount(sourceDir, targetDir, "none", "bind,ro"); err != nil {
|
|
| 98 | 98 |
t.Fatal(err) |
| 99 | 99 |
} |
| 100 | 100 |
defer func() {
|