Files
overlayfs/overlayfs_fuse_test.go
Matheus Sampaio Queiroga 380902e7cd
Some checks failed
Golang test / go-test (ubuntu-latest) (push) Successful in 20s
Golang test / go-test (windows-latest) (push) Failing after 20m1s
merge windows to cgofuse module
Signed-off-by: Matheus Sampaio Queiroga <srherobrine20@gmail.com>
2025-07-22 21:59:45 -03:00

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
}
}