summaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.base/testenv.exp
diff options
context:
space:
mode:
authorPedro Alves <pedro@palves.net>2020-09-20 15:58:09 +0100
committerPedro Alves <pedro@palves.net>2020-09-20 15:58:09 +0100
commitdbc49e9ffa4c95413f38e31dae652329fd22dda2 (patch)
tree70fcb264ac3d340ddfb693ce0bb8fbcd7e403408 /gdb/testsuite/gdb.base/testenv.exp
parent851257b5fc3a21659cfb2504c03001535756cf4a (diff)
downloadbinutils-gdb-dbc49e9ffa4c95413f38e31dae652329fd22dda2.tar.gz
Robustify gdb.base/testenv.exp:find_env
If printing 'envp[$i]' in find_env fails, the testcase goes into an infinite loop: Running /home/pedro/rocm/gdb/build/gdb/testsuite/../../../src/gdb/testsuite/gdb.base/testenv.exp ... FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[0] ? envp[0] : "" FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[1] ? envp[1] : "" FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[2] ? envp[2] : "" FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[3] ? envp[3] : "" ... FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[2519] ? envp[2519] : "" FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[2520] ? envp[2520] : "" FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[2521] ? envp[2521] : "" .. FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[5128] ? envp[5128] : "" FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[5129] ? envp[5129] : "" FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[5130] ? envp[5130] : "" ... Fix that by bailing out of the loop on failure. gdb/testsuite/ChangeLog: * gdb.base/testenv.exp (find_env): Bail out if printing 'envp[$i]' fails.
Diffstat (limited to 'gdb/testsuite/gdb.base/testenv.exp')
-rw-r--r--gdb/testsuite/gdb.base/testenv.exp6
1 files changed, 6 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/testenv.exp b/gdb/testsuite/gdb.base/testenv.exp
index 1599b72c27b..4dea043472c 100644
--- a/gdb/testsuite/gdb.base/testenv.exp
+++ b/gdb/testsuite/gdb.base/testenv.exp
@@ -68,6 +68,12 @@ proc find_env {varname} {
-re "var: \(\[^\r\n\]*\)\r\n$gdb_prompt $" {
set var $expect_out(1,string)
}
+ -re "$gdb_prompt $" {
+ # If this fails, bail out, otherwise we get stuck in
+ # an infinite loop. The caller will end up emiting a
+ # FAIL.
+ return "<fail>"
+ }
}
if {[string match "$varname=*" $var]} {