diff options
Diffstat (limited to 'tools/testing')
| -rwxr-xr-x | tools/testing/ktest/ktest.pl | 14 | ||||
| -rw-r--r-- | tools/testing/selftests/efivarfs/efivarfs.sh | 59 | 
2 files changed, 71 insertions, 2 deletions
diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl index 4e67d52eb3a..0d7fd8b5154 100755 --- a/tools/testing/ktest/ktest.pl +++ b/tools/testing/ktest/ktest.pl @@ -73,6 +73,7 @@ my $ktest_config;  my $version;  my $have_version = 0;  my $machine; +my $last_machine;  my $ssh_user;  my $tmpdir;  my $builddir; @@ -108,6 +109,7 @@ my $scp_to_target;  my $scp_to_target_install;  my $power_off;  my $grub_menu; +my $last_grub_menu;  my $grub_file;  my $grub_number;  my $grub_reboot; @@ -1538,7 +1540,9 @@ sub run_scp_mod {  sub get_grub2_index { -    return if (defined($grub_number)); +    return if (defined($grub_number) && defined($last_grub_menu) && +	       $last_grub_menu eq $grub_menu && defined($last_machine) && +	       $last_machine eq $machine);      doprint "Find grub2 menu ... ";      $grub_number = -1; @@ -1565,6 +1569,8 @@ sub get_grub2_index {      die "Could not find '$grub_menu' in $grub_file on $machine"  	if (!$found);      doprint "$grub_number\n"; +    $last_grub_menu = $grub_menu; +    $last_machine = $machine;  }  sub get_grub_index { @@ -1577,7 +1583,9 @@ sub get_grub_index {      if ($reboot_type ne "grub") {  	return;      } -    return if (defined($grub_number)); +    return if (defined($grub_number) && defined($last_grub_menu) && +	       $last_grub_menu eq $grub_menu && defined($last_machine) && +	       $last_machine eq $machine);      doprint "Find grub menu ... ";      $grub_number = -1; @@ -1604,6 +1612,8 @@ sub get_grub_index {      die "Could not find '$grub_menu' in /boot/grub/menu on $machine"  	if (!$found);      doprint "$grub_number\n"; +    $last_grub_menu = $grub_menu; +    $last_machine = $machine;  }  sub wait_for_input diff --git a/tools/testing/selftests/efivarfs/efivarfs.sh b/tools/testing/selftests/efivarfs/efivarfs.sh index 880cdd5dc63..77edcdcc016 100644 --- a/tools/testing/selftests/efivarfs/efivarfs.sh +++ b/tools/testing/selftests/efivarfs/efivarfs.sh @@ -125,6 +125,63 @@ test_open_unlink()  	./open-unlink $file  } +# test that we can create a range of filenames +test_valid_filenames() +{ +	local attrs='\x07\x00\x00\x00' +	local ret=0 + +	local file_list="abc dump-type0-11-1-1362436005 1234 -" +	for f in $file_list; do +		local file=$efivarfs_mount/$f-$test_guid + +		printf "$attrs\x00" > $file + +		if [ ! -e $file ]; then +			echo "$file could not be created" >&2 +			ret=1 +		else +			rm $file +		fi +	done + +	exit $ret +} + +test_invalid_filenames() +{ +	local attrs='\x07\x00\x00\x00' +	local ret=0 + +	local file_list=" +		-1234-1234-1234-123456789abc +		foo +		foo-bar +		-foo- +		foo-barbazba-foob-foob-foob-foobarbazfoo +		foo------------------------------------- +		-12345678-1234-1234-1234-123456789abc +		a-12345678=1234-1234-1234-123456789abc +		a-12345678-1234=1234-1234-123456789abc +		a-12345678-1234-1234=1234-123456789abc +		a-12345678-1234-1234-1234=123456789abc +		1112345678-1234-1234-1234-123456789abc" + +	for f in $file_list; do +		local file=$efivarfs_mount/$f + +		printf "$attrs\x00" 2>/dev/null > $file + +		if [ -e $file ]; then +			echo "Creating $file should have failed" >&2 +			rm $file +			ret=1 +		fi +	done + +	exit $ret +} +  check_prereqs  rc=0 @@ -135,5 +192,7 @@ run_test test_create_read  run_test test_delete  run_test test_zero_size_delete  run_test test_open_unlink +run_test test_valid_filenames +run_test test_invalid_filenames  exit $rc  |