package disk import ( "fmt" "runtime" "testing" ) func TestDisk_usage(t *testing.T) { path := "/" if runtime.GOOS == "windows" { path = "C:" } v, err := Usage(path) if err != nil { t.Errorf("error %v", err) } if v.Path != path { t.Errorf("error %v", err) } } func TestDisk_partitions(t *testing.T) { ret, err := Partitions(false) if err != nil || len(ret) == 0 { t.Errorf("error %v", err) } empty := PartitionStat{} if len(ret) == 0 { t.Errorf("ret is empty") } for _, disk := range ret { if disk == empty { t.Errorf("Could not get device info %v", disk) } } } func TestDisk_io_counters(t *testing.T) { ret, err := IOCounters() if err != nil { t.Errorf("error %v", err) } if len(ret) == 0 { t.Errorf("ret is empty") } empty := IOCountersStat{} for part, io := range ret { if io == empty { t.Errorf("io_counter error %v, %v", part, io) } } } func TestDiskUsageStat_String(t *testing.T) { v := UsageStat{ Path: "/", Total: 1000, Free: 2000, Used: 3000, UsedPercent: 50.1, InodesTotal: 4000, InodesUsed: 5000, InodesFree: 6000, InodesUsedPercent: 49.1, Fstype: "ext4", } e := `{"path":"/","fstype":"ext4","total":1000,"free":2000,"used":3000,"usedPercent":50.1,"inodesTotal":4000,"inodesUsed":5000,"inodesFree":6000,"inodesUsedPercent":49.1}` if e != fmt.Sprintf("%v", v) { t.Errorf("DiskUsageStat string is invalid: %v", v) } } func TestDiskPartitionStat_String(t *testing.T) { v := PartitionStat{ Device: "sd01", Mountpoint: "/", Fstype: "ext4", Opts: "ro", } e := `{"device":"sd01","mountpoint":"/","fstype":"ext4","opts":"ro"}` if e != fmt.Sprintf("%v", v) { t.Errorf("DiskUsageStat string is invalid: %v", v) } } func TestDiskIOCountersStat_String(t *testing.T) { v := IOCountersStat{ Name: "sd01", ReadCount: 100, WriteCount: 200, ReadBytes: 300, WriteBytes: 400, SerialNumber: "SERIAL", } e := `{"readCount":100,"mergedReadCount":0,"writeCount":200,"mergedWriteCount":0,"readBytes":300,"writeBytes":400,"readTime":0,"writeTime":0,"iopsInProgress":0,"ioTime":0,"weightedIO":0,"name":"sd01","serialNumber":"SERIAL"}` if e != fmt.Sprintf("%v", v) { t.Errorf("DiskUsageStat string is invalid: %v", v) } }