Commit 535ea85d authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ktest updates from Steven Rostedt:

 - Fix minconfig test to unset the config and not relying on
   olddefconfig to do it, as some configs are set to default y

 - Fix reading grub2 menus for handling submenus

 - Add new ${shell <cmd>} to execute shell commands that will be useful
   for setting variables like: HOSTNAME := ${shell hostname}

* tag 'ktest-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest:
  ktest.pl: Add shell commands to variables
  kest.pl: Fix grub2 menu handling for rebooting
  ktest.pl minconfig: Unset configs instead of just removing them
parents e2ed78d5 88a51b4f
Loading
Loading
Loading
Loading
+25 −7
Original line number Diff line number Diff line
@@ -802,7 +802,14 @@ sub process_variables {
	my $end = $3;
	# append beginning of value to retval
	$retval = "$retval$begin";
	if (defined($variable{$var})) {
	if ($var =~ s/^shell\s+//) {
	    $retval = `$var`;
	    if ($?) {
		doprint "WARNING: $var returned an error\n";
	    } else {
		chomp $retval;
	    }
	} elsif (defined($variable{$var})) {
	    $retval = "$retval$variable{$var}";
	} elsif (defined($remove_undef) && $remove_undef) {
	    # for if statements, any variable that is not defined,
@@ -1963,7 +1970,7 @@ sub run_scp_mod {

sub _get_grub_index {

    my ($command, $target, $skip) = @_;
    my ($command, $target, $skip, $submenu) = @_;

    return if (defined($grub_number) && defined($last_grub_menu) &&
	$last_grub_menu eq $grub_menu && defined($last_machine) &&
@@ -1980,11 +1987,16 @@ sub _get_grub_index {

    my $found = 0;

    my $submenu_number = 0;

    while (<IN>) {
	if (/$target/) {
	    $grub_number++;
	    $found = 1;
	    last;
	} elsif (defined($submenu) && /$submenu/) {
		$submenu_number++;
		$grub_number = -1;
	} elsif (/$skip/) {
	    $grub_number++;
	}
@@ -1993,6 +2005,9 @@ sub _get_grub_index {

    dodie "Could not find '$grub_menu' through $command on $machine"
	if (!$found);
    if ($submenu_number > 0) {
	$grub_number = "$submenu_number>$grub_number";
    }
    doprint "$grub_number\n";
    $last_grub_menu = $grub_menu;
    $last_machine = $machine;
@@ -2003,6 +2018,7 @@ sub get_grub_index {
    my $command;
    my $target;
    my $skip;
    my $submenu;
    my $grub_menu_qt;

    if ($reboot_type !~ /^grub/) {
@@ -2017,8 +2033,9 @@ sub get_grub_index {
	$skip = '^\s*title\s';
    } elsif ($reboot_type eq "grub2") {
	$command = "cat $grub_file";
	$target = '^menuentry.*' . $grub_menu_qt;
	$skip = '^menuentry\s|^submenu\s';
	$target = '^\s*menuentry.*' . $grub_menu_qt;
	$skip = '^\s*menuentry';
	$submenu = '^\s*submenu\s';
    } elsif ($reboot_type eq "grub2bls") {
	$command = $grub_bls_get;
	$target = '^title=.*' . $grub_menu_qt;
@@ -2027,7 +2044,7 @@ sub get_grub_index {
	return;
    }

    _get_grub_index($command, $target, $skip);
    _get_grub_index($command, $target, $skip, $submenu);
}

sub wait_for_input {
@@ -2090,7 +2107,7 @@ sub reboot_to {
    if ($reboot_type eq "grub") {
	run_ssh "'(echo \"savedefault --default=$grub_number --once\" | grub --batch)'";
    } elsif (($reboot_type eq "grub2") or ($reboot_type eq "grub2bls")) {
	run_ssh "$grub_reboot $grub_number";
	run_ssh "$grub_reboot \"'$grub_number'\"";
    } elsif ($reboot_type eq "syslinux") {
	run_ssh "$syslinux --once \\\"$syslinux_label\\\" $syslinux_path";
    } elsif (defined $reboot_script) {
@@ -3768,9 +3785,10 @@ sub test_this_config {
    # .config to make sure it is missing the config that
    # we had before
    my %configs = %min_configs;
    delete $configs{$config};
    $configs{$config} = "# $config is not set";
    make_new_config ((values %configs), (values %keep_configs));
    make_oldconfig;
    delete $configs{$config};
    undef %configs;
    assign_configs \%configs, $output_config;

+8 −0
Original line number Diff line number Diff line
@@ -259,6 +259,14 @@
# If PATH is not a config variable, then the ${PATH} in
# the MAKE_CMD option will be evaluated by the shell when
# the MAKE_CMD option is passed into shell processing.
#
# Shell commands can also be inserted with the ${shell <command>}
# expression. Note, this is case sensitive, thus ${SHELL <command>}
# will not work.
#
# HOSTNAME := ${shell hostname}
# DEFAULTS IF "${HOSTNAME}" == "frodo"
#

#### Using options in other options ####
#