| package agent | |
| import "testing" | |
| func TestParseHexOrDecByte(t *testing.T) { | |
| tests := []struct { | |
| in string | |
| want uint8 | |
| ok bool | |
| }{ | |
| {"0x01", 1, true}, | |
| {"0X0b", 11, true}, | |
| {"01", 1, true}, | |
| {" 3 ", 3, true}, | |
| {"", 0, false}, | |
| {"0x", 0, false}, | |
| {"nope", 0, false}, | |
| } | |
| for _, tt := range tests { | |
| got, ok := parseHexOrDecByte(tt.in) | |
| if ok != tt.ok || got != tt.want { | |
| t.Fatalf("parseHexOrDecByte(%q) = (%d,%v), want (%d,%v)", tt.in, got, ok, tt.want, tt.ok) | |
| } | |
| } | |
| } | |
| func TestParseHexBytePair(t *testing.T) { | |
| a, b, ok := parseHexBytePair("0x01 0x02\n") | |
| if !ok || a != 1 || b != 2 { | |
| t.Fatalf("parseHexBytePair hex = (%d,%d,%v), want (1,2,true)", a, b, ok) | |
| } | |
| a, b, ok = parseHexBytePair("01 02") | |
| if !ok || a != 1 || b != 2 { | |
| t.Fatalf("parseHexBytePair dec = (%d,%d,%v), want (1,2,true)", a, b, ok) | |
| } | |
| _, _, ok = parseHexBytePair("0x01") | |
| if ok { | |
| t.Fatalf("parseHexBytePair short input ok=true, want false") | |
| } | |
| } | |
| func TestEmmcSmartStatus(t *testing.T) { | |
| if got := emmcSmartStatus(0x01); got != "PASSED" { | |
| t.Fatalf("emmcSmartStatus(0x01) = %q, want PASSED", got) | |
| } | |
| if got := emmcSmartStatus(0x02); got != "WARNING" { | |
| t.Fatalf("emmcSmartStatus(0x02) = %q, want WARNING", got) | |
| } | |
| if got := emmcSmartStatus(0x03); got != "FAILED" { | |
| t.Fatalf("emmcSmartStatus(0x03) = %q, want FAILED", got) | |
| } | |
| if got := emmcSmartStatus(0x00); got != "UNKNOWN" { | |
| t.Fatalf("emmcSmartStatus(0x00) = %q, want UNKNOWN", got) | |
| } | |
| } | |
| func TestIsEmmcBlockName(t *testing.T) { | |
| cases := []struct { | |
| name string | |
| ok bool | |
| }{ | |
| {"mmcblk0", true}, | |
| {"mmcblk1", true}, | |
| {"mmcblk10", true}, | |
| {"mmcblk0p1", false}, | |
| {"sda", false}, | |
| {"mmcblk", false}, | |
| {"mmcblkA", false}, | |
| } | |
| for _, c := range cases { | |
| if got := isEmmcBlockName(c.name); got != c.ok { | |
| t.Fatalf("isEmmcBlockName(%q) = %v, want %v", c.name, got, c.ok) | |
| } | |
| } | |
| } | |