70 lines
1.4 KiB
Go
70 lines
1.4 KiB
Go
|
package remove
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
|
||
|
"b612.me/apps/b612/gdu/internal/testdir"
|
||
|
"b612.me/apps/b612/gdu/pkg/analyze"
|
||
|
"b612.me/apps/b612/gdu/pkg/fs"
|
||
|
)
|
||
|
|
||
|
func TestRemoveFileParallel(t *testing.T) {
|
||
|
dir := &analyze.Dir{
|
||
|
File: &analyze.File{
|
||
|
Name: "xxx",
|
||
|
Size: 5,
|
||
|
Usage: 12,
|
||
|
},
|
||
|
ItemCount: 3,
|
||
|
BasePath: ".",
|
||
|
}
|
||
|
|
||
|
subdir := &analyze.Dir{
|
||
|
File: &analyze.File{
|
||
|
Name: "yyy",
|
||
|
Size: 4,
|
||
|
Usage: 8,
|
||
|
Parent: dir,
|
||
|
},
|
||
|
ItemCount: 2,
|
||
|
}
|
||
|
file := &analyze.File{
|
||
|
Name: "zzz",
|
||
|
Size: 3,
|
||
|
Usage: 4,
|
||
|
Parent: subdir,
|
||
|
}
|
||
|
dir.Files = fs.Files{subdir}
|
||
|
subdir.Files = fs.Files{file}
|
||
|
|
||
|
err := ItemFromDirParallel(subdir, file)
|
||
|
assert.Nil(t, err)
|
||
|
|
||
|
assert.Equal(t, 0, len(subdir.Files))
|
||
|
assert.Equal(t, 1, subdir.ItemCount)
|
||
|
assert.Equal(t, int64(1), subdir.Size)
|
||
|
assert.Equal(t, int64(4), subdir.Usage)
|
||
|
assert.Equal(t, 1, len(dir.Files))
|
||
|
assert.Equal(t, 2, dir.ItemCount)
|
||
|
assert.Equal(t, int64(2), dir.Size)
|
||
|
}
|
||
|
|
||
|
func TestRemoveDirParallel(t *testing.T) {
|
||
|
fin := testdir.CreateTestDir()
|
||
|
defer fin()
|
||
|
|
||
|
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.Nil(t, err)
|
||
|
}
|