mirror of
https://git.proxmox.com/git/pve-installer
synced 2025-04-28 14:46:25 +00:00
63 lines
1.4 KiB
Perl
Executable File
63 lines
1.4 KiB
Perl
Executable File
#!/usr/bin/env perl
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Test::More;
|
|
use Test::MockModule qw(strict);
|
|
|
|
use Proxmox::Install::RunEnv;
|
|
use Proxmox::Install::Config qw(parse_kernel_cmdline);
|
|
|
|
my $proxmox_install_runenv = Test::MockModule->new('Proxmox::Install::RunEnv');
|
|
my $proxmox_install_isoenv = Test::MockModule->new('Proxmox::Install::ISOEnv');
|
|
|
|
$proxmox_install_isoenv->redefine(
|
|
get => sub {
|
|
my ($k) = @_;
|
|
return { product => 'pve' } if !defined($k);
|
|
die "iso environment key $k not mocked!\n";
|
|
},
|
|
);
|
|
|
|
my sub mock_kernel_cmdline {
|
|
my ($cmdline) = @_;
|
|
|
|
$proxmox_install_runenv->redefine(
|
|
get => sub {
|
|
my ($k) = @_;
|
|
return $cmdline if $k eq 'kernel_cmdline';
|
|
die "iso environment key $k not mocked!\n";
|
|
},
|
|
);
|
|
}
|
|
|
|
sub is_parsed {
|
|
my ($cmdline, $expected) = @_;
|
|
|
|
mock_kernel_cmdline($cmdline);
|
|
my $cfg = Proxmox::Install::Config::parse_kernel_cmdline({});
|
|
|
|
is($cfg->{target_cmdline}, $expected, "filtered kernel commandline matched expected: ${expected}");
|
|
}
|
|
|
|
is_parsed(
|
|
'BOOT_IMAGE=/vmlinuz-6.8.12-1-pve root=/dev/mapper/pve-root ro quiet',
|
|
''
|
|
);
|
|
|
|
is_parsed(
|
|
'BOOT_IMAGE=/vmlinuz-6.8.12-1-pve root=/dev/mapper/pve-root ro= quiet',
|
|
'ro='
|
|
);
|
|
|
|
is_parsed(
|
|
'a BOOT_IMAGE=/vmlinuz-6.8.12-1-pve b root=/dev/mapper/pve-root c ro d quiet e',
|
|
'a b c d e'
|
|
);
|
|
|
|
is_parsed('proxmox-foo foo=bar proxtui', 'foo=bar');
|
|
is_parsed('proxmox-foo nomodeset quiet', 'nomodeset');
|
|
|
|
done_testing();
|