Signed-off-by: Matheus Sampaio Queiroga <srherobrine20@gmail.com>
49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
//go:build windows || darwin || freebsd || netbsd || openbsd
|
|
|
|
package overlayfs
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestOverlayfs(t *testing.T) {
|
|
rootTemp := t.TempDir()
|
|
overlayMount := &Overlayfs{
|
|
Target: filepath.Join(rootTemp, "root"),
|
|
Upper: filepath.Join(rootTemp, "up"),
|
|
Workdir: filepath.Join(rootTemp, "work"),
|
|
Lower: []string{
|
|
filepath.Join(rootTemp, "low1"),
|
|
filepath.Join(rootTemp, "low2"),
|
|
filepath.Join(rootTemp, "low3"),
|
|
filepath.Join(rootTemp, "low4"),
|
|
},
|
|
}
|
|
|
|
for _, folderPath := range append(overlayMount.Lower, overlayMount.Target, overlayMount.Upper, overlayMount.Workdir) {
|
|
if err := os.Mkdir(folderPath, 0777); err != nil {
|
|
t.Skipf("skiping, cannot make folders: %q", err.Error())
|
|
return
|
|
}
|
|
}
|
|
|
|
t.Logf("mount cgofuse+overlayfs in %q\n", overlayMount.Target)
|
|
err := overlayMount.Mount()
|
|
if err != nil {
|
|
t.Errorf("cannot mount cgofuse+overlayfs: %s", err)
|
|
return // Stop test
|
|
}
|
|
|
|
if err = overlayMount.Unmount(); err != nil {
|
|
t.Errorf("unmount overlayfs: %q", err.Error())
|
|
return
|
|
}
|
|
|
|
if err = overlayMount.Unmount(); err == nil {
|
|
t.Errorf("second unmount overlayfs required return error")
|
|
return
|
|
}
|
|
}
|