star/gdu/pkg/analyze/dir_linux_test.go

66 lines
1.4 KiB
Go
Raw Normal View History

2025-04-26 19:33:14 +08:00
//go:build linux
// +build linux
package analyze
import (
"os"
"testing"
"b612.me/apps/b612/gdu/internal/testdir"
"b612.me/apps/b612/gdu/pkg/fs"
"github.com/stretchr/testify/assert"
)
func TestErr(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)
}()
analyzer := CreateAnalyzer()
dir := analyzer.AnalyzeDir(
"test_dir", func(_, _ string) bool { return false }, false,
).(*Dir)
analyzer.GetDone().Wait()
dir.UpdateStats(make(fs.HardLinkedItems))
assert.Equal(t, "test_dir", dir.GetName())
assert.Equal(t, 2, dir.ItemCount)
assert.Equal(t, '.', dir.GetFlag())
assert.Equal(t, "nested", dir.Files[0].GetName())
assert.Equal(t, '!', dir.Files[0].GetFlag())
}
func TestSeqErr(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)
}()
analyzer := CreateSeqAnalyzer()
dir := analyzer.AnalyzeDir(
"test_dir", func(_, _ string) bool { return false }, false,
).(*Dir)
analyzer.GetDone().Wait()
dir.UpdateStats(make(fs.HardLinkedItems))
assert.Equal(t, "test_dir", dir.GetName())
assert.Equal(t, 2, dir.ItemCount)
assert.Equal(t, '.', dir.GetFlag())
assert.Equal(t, "nested", dir.Files[0].GetName())
assert.Equal(t, '!', dir.Files[0].GetFlag())
}