Check file exists before completion tests

Doug told me that there are some regressions in gdb.base/completion.exp.
They are caused by my recent change, and can be reproduced via:

$ make check-parallel TESTS=gdb.base/completion.exp
FAIL: gdb.base/completion.exp: complete target core ./gdb.base/completion
FAIL: gdb.base/completion.exp: complete target tfile ./gdb.base/completion
FAIL: gdb.base/completion.exp: complete target exec ./gdb.base/completion

Current tests assume that gdb.base/completion exists but that is wrong
in a parallel run, because binary file and object files are placed
in outputs/gdb.base/completion/.

This patch is to check file exists on two candidate directories,
"gdb.base" and "outputs/gdb.base/completion/", and run tests with files
existed in either of them.

gdb/testsuite:

2014-04-11  Yao Qi  <yao@codesourcery.com>

	* gdb.base/completion.exp: Check file exists before running tests
	on file completion.
This commit is contained in:
Yao Qi 2014-04-02 12:44:22 +08:00
parent 1511baeca9
commit 322f9c2100
2 changed files with 17 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2014-04-11 Yao Qi <yao@codesourcery.com>
* gdb.base/completion.exp: Check file exists before running tests
on file completion.
2014-04-10 Pedro Alves <palves@redhat.com>
* gdb.base/cond-eval-mode.c: New file.

View File

@ -105,9 +105,18 @@ gdb_test_multiple "target ctf" "" {
}
}
foreach target_name ${targets} {
gdb_test "complete target ${target_name} ./gdb.base/completion" \
"target ${target_name} \\./gdb.base/completion.*\\./gdb.base/completion0\\.o.*\\./gdb.base/completion1\\.o.*"
# Test artifacts are put in different locations depending on test
# is a parallel run or not. Firstly check file exists, and then
# do the test on file completion.
foreach dir1 [ list "./gdb.base" "./outputs/gdb.base/completion" ] {
if [remote_file host exists ${dir1}/completion] {
foreach target_name ${targets} {
gdb_test "complete target ${target_name} ${dir1}/completion" \
"target ${target_name} ${dir1}/completion.*${dir1}/completion0\\.o.*${dir1}/completion1\\.o.*"
}
break
}
}
#