| 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) | 
 | 				} | 
 | 			} | 
 | 		}) | 
 | 	} | 
 | } |