67 lines
1.8 KiB
Go
67 lines
1.8 KiB
Go
package widgetparse
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"codeberg.org/SquidSE/ClusterCanvas/service/internal/settings"
|
|
)
|
|
|
|
func TestParseFreeM(t *testing.T) {
|
|
stdout := ` total used free shared buff/cache available
|
|
Mem: 16014 4521 2341 412 9151 11012
|
|
Swap: 8191 0 8191
|
|
`
|
|
data, err := ParseFreeM(stdout)
|
|
if err != nil {
|
|
t.Fatalf("ParseFreeM: %v", err)
|
|
}
|
|
if data.Total != 16014 || data.Used != 4521 || data.Free != 2341 {
|
|
t.Fatalf("core fields = %+v", data)
|
|
}
|
|
if data.Shared != 412 || data.BuffCache != 9151 || data.Available != 11012 {
|
|
t.Fatalf("extra fields = %+v", data)
|
|
}
|
|
}
|
|
|
|
func TestParseDfHPrefersMount(t *testing.T) {
|
|
stdout := `Filesystem Size Used Avail Use% Mounted on
|
|
/dev/sda1 100G 40G 55G 42% /
|
|
/dev/sdb1 200G 10G 180G 6% /data
|
|
`
|
|
data, err := ParseDfH(stdout, "/data")
|
|
if err != nil {
|
|
t.Fatalf("ParseDfH: %v", err)
|
|
}
|
|
if data.MountedOn != "/data" || data.Size != "200G" || data.Used != "10G" {
|
|
t.Fatalf("row = %+v", data)
|
|
}
|
|
if data.SizeMiB != 200*1024 || data.UsedMiB != 10*1024 {
|
|
t.Fatalf("mib = %+v", data)
|
|
}
|
|
}
|
|
|
|
func TestParseDfHFirstRow(t *testing.T) {
|
|
stdout := `Filesystem Size Used Avail Use% Mounted on
|
|
tmpfs 1.6G 0 1.6G 0% /run
|
|
/dev/sda1 100G 40G 55G 42% /
|
|
`
|
|
data, err := ParseDfH(stdout, "")
|
|
if err != nil {
|
|
t.Fatalf("ParseDfH: %v", err)
|
|
}
|
|
if data.MountedOn != "/run" {
|
|
t.Fatalf("expected first row, got %+v", data)
|
|
}
|
|
}
|
|
|
|
func TestParseStdoutMemory(t *testing.T) {
|
|
stdout := "Mem: 100 40 20 1 39 50\n"
|
|
memory, disk, err := ParseStdout(settings.ActionWidgetTypeMemory, stdout, "")
|
|
if err != nil {
|
|
t.Fatalf("ParseStdout: %v", err)
|
|
}
|
|
if memory == nil || disk != nil || memory.Total != 100 {
|
|
t.Fatalf("memory=%v disk=%v", memory, disk)
|
|
}
|
|
}
|