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.
+2020-09-20 Pedro Alves <pedro@palves.net>
+
+ * gdb.base/testenv.exp (find_env): Bail out if printing 'envp[$i]'
+ fails.
+
2020-09-19 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.fortran/array-slices.exp: Update expected results.
-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]} {