Skip to content

Commit

Permalink
fix regression in serial console handling (bnc#870514)
Browse files Browse the repository at this point in the history
  • Loading branch information
jreidinger committed Apr 18, 2016
1 parent c4fb838 commit d0266c8
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
11 changes: 6 additions & 5 deletions src/lib/bootloader/serial_console.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,13 @@ class SerialConsole
# @return [Bootloader::SerialConsole,nil] returns nil if none found,
# otherwise instance of SerialConsole
def self.load_from_kernel_args(kernel_params)
console_parameter = kernel_params.parameter("console")
return nil unless console_parameter
console_parameters = kernel_params.parameter("console")
return nil unless console_parameters

console_parameter = Array(console_parameter)
serial_console = console_parameter.find { |p| p =~ /ttyS/ || p =~ /ttyAMA/ }
return nil unless serial_console
console_parameters = Array(console_parameters)
# use only the last parameter (bnc#870514)
serial_console = console_parameters.last
return nil if serial_console !~ /ttyS/ && serial_console !~ /ttyAMA/

unit = serial_console[KERNEL_PARAM_REGEXP, 2]
return nil if unit.empty?
Expand Down
7 changes: 7 additions & 0 deletions test/serial_console_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@
expect(described_class.load_from_kernel_args(kernel_args)).to eq nil
end

# covers bug #870514
it "returns nil if serial console configuration is not the last one" do
kernel_args = double("KernelArgs", :parameter => ["ttyS1", "tty1"])

expect(described_class.load_from_kernel_args(kernel_args)).to eq nil
end

it "loads configuration if found" do
kernel_args = double("KernelArgs", :parameter => "ttyS1,4800n8")
expected_grub_config = "serial --unit=1 --speed=4800 --parity=no --word=8"
Expand Down

0 comments on commit d0266c8

Please sign in to comment.