diff options
| author | Jakob Unterwurzacher | 2025-08-03 16:02:35 +0200 | 
|---|---|---|
| committer | Jakob Unterwurzacher | 2025-08-03 21:25:24 +0200 | 
| commit | 2a5862ade9efe849ea1486b37ab672ec9a0a7e8d (patch) | |
| tree | 7e41d6517f5f72b7ad1cefbff50432fe9fe4f9b7 /tests/root_test | |
| parent | ae23a04951780377a7d7ede6af476eaee9efa49e (diff) | |
tests: root_test: move btrfs test to new file
Diffstat (limited to 'tests/root_test')
| -rw-r--r-- | tests/root_test/btrfs_test.go | 65 | ||||
| -rw-r--r-- | tests/root_test/root_test.go | 52 | 
2 files changed, 65 insertions, 52 deletions
| diff --git a/tests/root_test/btrfs_test.go b/tests/root_test/btrfs_test.go new file mode 100644 index 0000000..4f2527a --- /dev/null +++ b/tests/root_test/btrfs_test.go @@ -0,0 +1,65 @@ +package root_test + +import ( +	"os" +	"os/exec" +	"path/filepath" +	"syscall" +	"testing" + +	"github.com/rfjakob/gocryptfs/v2/internal/syscallcompat" + +	"github.com/rfjakob/gocryptfs/v2/tests/test_helpers" +) + +// TestBtrfsQuirks needs root permissions because it creates a loop disk +func TestBtrfsQuirks(t *testing.T) { +	if os.Getuid() != 0 { +		t.Skip("must run as root") +	} + +	img := filepath.Join(test_helpers.TmpDir, t.Name()+".img") +	f, err := os.Create(img) +	if err != nil { +		t.Fatal(err) +	} +	defer f.Close() +	// minimum size for each btrfs device is 114294784 +	err = f.Truncate(200 * 1024 * 1024) +	if err != nil { +		t.Fatal(err) +	} + +	// Format as Btrfs +	_, err = exec.LookPath("mkfs.btrfs") +	if err != nil { +		t.Skip("mkfs.btrfs not found, skipping test") +	} +	cmd := exec.Command("mkfs.btrfs", img) +	out, err := cmd.CombinedOutput() +	if err != nil { +		t.Logf("%q", cmd.Args) +		t.Log(string(out)) +		t.Fatal(err) +	} + +	// Mount +	mnt := img + ".mnt" +	err = os.Mkdir(mnt, 0600) +	if err != nil { +		t.Fatal(err) +	} +	cmd = exec.Command("mount", img, mnt) +	out, err = cmd.CombinedOutput() +	if err != nil { +		t.Log(string(out)) +		t.Fatal(err) +	} +	defer syscall.Unlink(img) +	defer syscall.Unmount(mnt, 0) + +	quirk := syscallcompat.DetectQuirks(mnt) +	if quirk != syscallcompat.QuirkBrokenFalloc { +		t.Errorf("wrong quirk: %v", quirk) +	} +} diff --git a/tests/root_test/root_test.go b/tests/root_test/root_test.go index 42b3694..c531ebb 100644 --- a/tests/root_test/root_test.go +++ b/tests/root_test/root_test.go @@ -300,58 +300,6 @@ func TestAcl(t *testing.T) {  	}  } -// TestBtrfsQuirks needs root permissions because it creates a loop disk -func TestBtrfsQuirks(t *testing.T) { -	if os.Getuid() != 0 { -		t.Skip("must run as root") -	} - -	img := filepath.Join(test_helpers.TmpDir, t.Name()+".img") -	f, err := os.Create(img) -	if err != nil { -		t.Fatal(err) -	} -	defer f.Close() -	// minimum size for each btrfs device is 114294784 -	err = f.Truncate(200 * 1024 * 1024) -	if err != nil { -		t.Fatal(err) -	} - -	// Format as Btrfs -	_, err = exec.LookPath("mkfs.btrfs") -	if err != nil { -		t.Skip("mkfs.btrfs not found, skipping test") -	} -	cmd := exec.Command("mkfs.btrfs", img) -	out, err := cmd.CombinedOutput() -	if err != nil { -		t.Logf("%q", cmd.Args) -		t.Log(string(out)) -		t.Fatal(err) -	} - -	// Mount -	mnt := img + ".mnt" -	err = os.Mkdir(mnt, 0600) -	if err != nil { -		t.Fatal(err) -	} -	cmd = exec.Command("mount", img, mnt) -	out, err = cmd.CombinedOutput() -	if err != nil { -		t.Log(string(out)) -		t.Fatal(err) -	} -	defer syscall.Unlink(img) -	defer syscall.Unmount(mnt, 0) - -	quirk := syscallcompat.DetectQuirks(mnt) -	if quirk != syscallcompat.QuirkBrokenFalloc { -		t.Errorf("wrong quirk: %v", quirk) -	} -} -  func TestOverlay(t *testing.T) {  	if os.Getuid() != 0 {  		t.Skip("must run as root") | 
