1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
package analyze
import (
"testing"
"time"
"github.com/dundee/gdu/v5/internal/testdir"
"github.com/stretchr/testify/assert"
)
func TestSequentialAnalyzerSetFollowSymlinks(t *testing.T) {
analyzer := CreateSeqAnalyzer()
analyzer.SetFollowSymlinks(true)
assert.True(t, analyzer.followSymlinks)
analyzer.SetFollowSymlinks(false)
assert.False(t, analyzer.followSymlinks)
}
func TestSequentialAnalyzerSetShowAnnexedSize(t *testing.T) {
analyzer := CreateSeqAnalyzer()
analyzer.SetShowAnnexedSize(true)
assert.True(t, analyzer.gitAnnexedSize)
analyzer.SetShowAnnexedSize(false)
assert.False(t, analyzer.gitAnnexedSize)
}
func TestSequentialAnalyzerUpdateProgress(t *testing.T) {
analyzer := CreateSeqAnalyzer()
// Start the progress updater
go analyzer.updateProgress()
// Send some progress updates
analyzer.progressChan <- struct {
CurrentItemName string
ItemCount int64
TotalSize int64
}{
CurrentItemName: "test",
ItemCount: 5,
TotalSize: 100,
}
// Wait a bit for the progress to be processed
time.Sleep(10 * time.Millisecond)
// Send done signal
analyzer.progressDoneChan <- struct{}{}
// Wait for the updater to finish
time.Sleep(10 * time.Millisecond)
}
func TestSequentialAnalyzerUpdateProgressWithDefaultCase(t *testing.T) {
analyzer := CreateSeqAnalyzer()
// Start the progress updater
go analyzer.updateProgress()
// Send some progress updates
analyzer.progressChan <- struct {
CurrentItemName string
ItemCount int64
TotalSize int64
}{
CurrentItemName: "test",
ItemCount: 5,
TotalSize: 100,
}
// Wait a bit for the progress to be processed
time.Sleep(10 * time.Millisecond)
// Send another progress update to trigger the default case
analyzer.progressChan <- struct {
CurrentItemName string
ItemCount int64
TotalSize int64
}{
CurrentItemName: "test2",
ItemCount: 3,
TotalSize: 50,
}
// Wait a bit for the progress to be processed
time.Sleep(10 * time.Millisecond)
// Send done signal
analyzer.progressDoneChan <- struct{}{}
// Wait for the updater to finish
time.Sleep(10 * time.Millisecond)
}
func TestSequentialAnalyzerAnalyzeDirWithIgnoreDir(t *testing.T) {
fin := testdir.CreateTestDir()
defer fin()
analyzer := CreateSeqAnalyzer()
dir := analyzer.AnalyzeDir(
"test_dir", func(name, _ string) bool { return name == "nested" }, func(_ string) bool { return false },
).(*Dir)
analyzer.GetDone().Wait()
assert.NotNil(t, dir)
assert.Equal(t, "test_dir", dir.Name)
// Should have fewer items since nested directory was ignored
assert.Less(t, dir.ItemCount, int64(5))
}
|