stat_test.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package analytic
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func TestGetDiskStat(t *testing.T) {
  7. diskStat, err := GetDiskStat()
  8. // Test that the function doesn't return an error
  9. assert.NoError(t, err)
  10. // Test that partitions are populated
  11. assert.NotEmpty(t, diskStat.Partitions)
  12. // Test that overall stats are calculated
  13. assert.NotEmpty(t, diskStat.Total)
  14. assert.NotEmpty(t, diskStat.Used)
  15. assert.GreaterOrEqual(t, diskStat.Percentage, 0.0)
  16. assert.LessOrEqual(t, diskStat.Percentage, 100.0)
  17. // Test each partition has required fields
  18. for _, partition := range diskStat.Partitions {
  19. assert.NotEmpty(t, partition.Mountpoint)
  20. assert.NotEmpty(t, partition.Device)
  21. assert.NotEmpty(t, partition.Fstype)
  22. assert.NotEmpty(t, partition.Total)
  23. assert.NotEmpty(t, partition.Used)
  24. assert.NotEmpty(t, partition.Free)
  25. assert.GreaterOrEqual(t, partition.Percentage, 0.0)
  26. assert.LessOrEqual(t, partition.Percentage, 100.0)
  27. }
  28. }
  29. func TestIsVirtualFilesystem(t *testing.T) {
  30. // Test virtual filesystems
  31. assert.True(t, isVirtualFilesystem("proc"))
  32. assert.True(t, isVirtualFilesystem("sysfs"))
  33. assert.True(t, isVirtualFilesystem("tmpfs"))
  34. assert.True(t, isVirtualFilesystem("devpts"))
  35. // Test real filesystems
  36. assert.False(t, isVirtualFilesystem("ext4"))
  37. assert.False(t, isVirtualFilesystem("xfs"))
  38. assert.False(t, isVirtualFilesystem("ntfs"))
  39. assert.False(t, isVirtualFilesystem("fat32"))
  40. }