blob: c76dd888aaa62a8f6e80655acb2677124fae7e15 [file] [log] [blame] [edit]
package bootparam
import "testing"
func TestConsoles(t *testing.T) {
cases := []struct {
name string
cmdline string
consoles []string
}{
{"Empty", "", []string{}},
{"None", "notconsole=test", []string{}},
{"Single", "asdf=ttyS1 console=ttyS0,115200", []string{"ttyS0"}},
{"MultipleSame", "console=ttyS0 noop console=ttyS0", []string{"ttyS0"}},
{"MultipleDiff", "console=tty27 console=ttyACM0", []string{"tty27", "ttyACM0"}},
{"WithDev", "console=/dev/ttyXYZ0", []string{"ttyXYZ0"}},
{"BrokenBadDev", "console=/etc/passwd", []string{}},
{"BrokenNoValue", "console=", []string{}},
}
for _, c := range cases {
t.Run(c.name, func(t *testing.T) {
p, _, err := Unmarshal(c.cmdline)
if err != nil {
t.Fatalf("Failed to parse cmdline %q: %v", c.cmdline, err)
}
consoles := p.Consoles()
wantConsoles := make(map[string]bool)
for _, con := range c.consoles {
wantConsoles[con] = true
}
for con := range wantConsoles {
if !consoles[con] {
t.Errorf("Expected console %s to be returned but it wasn't", con)
}
}
for con := range consoles {
if !wantConsoles[con] {
t.Errorf("Didn't expect console %s to be returned but it was", con)
}
}
})
}
}