68 lines
1.3 KiB
Go
68 lines
1.3 KiB
Go
//go:build linux
|
|
// +build linux
|
|
|
|
package remove
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
"b612.me/apps/b612/gdu/internal/testdir"
|
|
"b612.me/apps/b612/gdu/pkg/analyze"
|
|
"b612.me/apps/b612/gdu/pkg/fs"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestItemFromDirParallelWithErr(t *testing.T) {
|
|
fin := testdir.CreateTestDir()
|
|
defer fin()
|
|
|
|
err := os.Chmod("test_dir/nested", 0)
|
|
assert.Nil(t, err)
|
|
defer func() {
|
|
err = os.Chmod("test_dir/nested", 0o755)
|
|
assert.Nil(t, err)
|
|
}()
|
|
|
|
dir := &analyze.Dir{
|
|
File: &analyze.File{
|
|
Name: "test_dir",
|
|
},
|
|
BasePath: ".",
|
|
}
|
|
|
|
subdir := &analyze.Dir{
|
|
File: &analyze.File{
|
|
Name: "nested",
|
|
Parent: dir,
|
|
},
|
|
}
|
|
|
|
err = ItemFromDirParallel(dir, subdir)
|
|
assert.Contains(t, err.Error(), "permission denied")
|
|
}
|
|
|
|
func TestItemFromDirParallelWithErr2(t *testing.T) {
|
|
fin := testdir.CreateTestDir()
|
|
defer fin()
|
|
|
|
err := os.Chmod("test_dir/nested/subnested", 0)
|
|
assert.Nil(t, err)
|
|
defer func() {
|
|
err = os.Chmod("test_dir/nested/subnested", 0o755)
|
|
assert.Nil(t, err)
|
|
}()
|
|
|
|
analyzer := analyze.CreateAnalyzer()
|
|
dir := analyzer.AnalyzeDir(
|
|
"test_dir", func(_, _ string) bool { return false }, false,
|
|
).(*analyze.Dir)
|
|
analyzer.GetDone().Wait()
|
|
dir.UpdateStats(make(fs.HardLinkedItems))
|
|
|
|
subdir := dir.Files[0].(*analyze.Dir)
|
|
|
|
err = ItemFromDirParallel(dir, subdir)
|
|
assert.Contains(t, err.Error(), "permission denied")
|
|
}
|