[gdb/testsuite] Detect trailing ^C/^D in command

Detect a trailing ^C/^D in the command argument of gdb_test_multiple, and
error out.

Tested on x86_64-linux.
This commit is contained in:
Tom de Vries 2022-10-10 16:24:38 +02:00
parent ed6cd15957
commit c52ce60356
2 changed files with 32 additions and 6 deletions

View File

@ -19,10 +19,32 @@ clean_restart
# Check that a command with trailing newline triggers an error.
set results [catch {
gdb_test "pwd\n" ".*" "cmd with trailing newline"
} output]
with_test_prefix "cmd with trailing newline" {
set results [catch {
gdb_test "pwd\n" ".*" "pwd"
} output]
gdb_assert { $results == 1 }
set expected_error_msg "Invalid trailing newline in \"pwd\n\" command"
gdb_assert { [string equal $output $expected_error_msg] }
gdb_assert { $results == 1 }
set expected_error_msg "Invalid trailing newline in \"pwd\n\" command"
gdb_assert { [string equal $output $expected_error_msg] }
}
with_test_prefix "cmd with trailing control code" {
foreach_with_prefix control_code {^C ^D} {
switch $control_code {
^C {
set cmd "\003"
}
^D {
set cmd "\004"
}
}
set results [catch {
gdb_test $cmd ".*" "control code"
} output]
gdb_assert { $results == 1 }
set expected_error_msg "Invalid trailing control code in \"$cmd\" command"
gdb_assert { [string equal $output $expected_error_msg] }
}
}

View File

@ -1003,6 +1003,10 @@ proc gdb_test_multiple { command message args } {
error "Invalid trailing newline in \"$command\" command"
}
if [string match "*\[\003\004\]" $command] {
error "Invalid trailing control code in \"$command\" command"
}
if [string match "*\[\r\n\]*" $message] {
error "Invalid newline in \"$message\" test"
}