* [PATCH] gdb/testsuite: use with_cwd where possible
@ 2022-04-22 13:16 Simon Marchi
2022-04-26 17:56 ` Tom Tromey
0 siblings, 1 reply; 3+ messages in thread
From: Simon Marchi @ 2022-04-22 13:16 UTC (permalink / raw)
To: gdb-patches
I learned about with_cwd today. I spotted a few spots that could use
it, to make the code more robust.
Change-Id: Ia23664cb827f25e79d31948e0c006a8dc61c33e1
---
gdb/testsuite/gdb.base/completion.exp | 7 ++--
gdb/testsuite/gdb.base/fullname.exp | 12 +++---
gdb/testsuite/gdb.base/fullpath-expand.exp | 14 +++----
gdb/testsuite/gdb.base/settings.exp | 8 ++--
gdb/testsuite/gdb.base/source-dir.exp | 41 +++++++++----------
gdb/testsuite/gdb.linespec/break-ask.exp | 23 ++++++-----
gdb/testsuite/gdb.linespec/macro-relative.exp | 13 +++---
gdb/testsuite/lib/ada.exp | 8 ++--
8 files changed, 59 insertions(+), 67 deletions(-)
diff --git a/gdb/testsuite/gdb.base/completion.exp b/gdb/testsuite/gdb.base/completion.exp
index 34a16af14916..0c58a1ab6b7e 100644
--- a/gdb/testsuite/gdb.base/completion.exp
+++ b/gdb/testsuite/gdb.base/completion.exp
@@ -675,10 +675,9 @@ gdb_test "complete whatis &values\[0\]->z" \
# ${srcdir} may be a relative path. We want to make sure we end up
# in the right directory - so make sure we know where it is.
-set mydir [pwd]
-cd ${srcdir}
-set fullsrcdir [pwd]
-cd ${mydir}
+with_cwd $srcdir {
+ set fullsrcdir [pwd]
+}
# If the directory name contains a '+' we must escape it, adding a backslash.
# If not, the test below will fail because it will interpret the '+' as a
diff --git a/gdb/testsuite/gdb.base/fullname.exp b/gdb/testsuite/gdb.base/fullname.exp
index a264dc753227..f9faca87423b 100644
--- a/gdb/testsuite/gdb.base/fullname.exp
+++ b/gdb/testsuite/gdb.base/fullname.exp
@@ -99,14 +99,12 @@ if { [gdb_breakpoint [standard_output_file tmp-${srcfile}]:${line} {no-message}]
# Build the test executable using relative paths not relative to the directory
# we'll run GDB from.
-set save_pwd [pwd]
-cd [standard_output_file {}]
-if { [gdb_compile [standard_output_file tmp-${srcfile}] "${testfile}" \
- executable {debug}] != "" } {
- cd $save_pwd
- return -1
+with_cwd [standard_output_file {}] {
+ if { [gdb_compile [standard_output_file tmp-${srcfile}] "${testfile}" \
+ executable {debug}] != "" } {
+ return -1
+ }
}
-cd $save_pwd
gdb_exit
gdb_start
diff --git a/gdb/testsuite/gdb.base/fullpath-expand.exp b/gdb/testsuite/gdb.base/fullpath-expand.exp
index efa8d63b1d44..b38902449978 100644
--- a/gdb/testsuite/gdb.base/fullpath-expand.exp
+++ b/gdb/testsuite/gdb.base/fullpath-expand.exp
@@ -25,13 +25,13 @@ if { [file pathtype $objdir] != "absolute" } {
return -1
}
-set saved_pwd [pwd]
-cd $srcdir
-set err [gdb_compile "${subdir}/${srcfile} ${subdir}/${srcfile2}" $binfile executable {debug}]
-cd $saved_pwd
-if { $err != "" } {
- untested "${srcfile} or ${srcfile2} compilation failed"
- return -1
+with_cwd $srcdir {
+ set err [gdb_compile "${subdir}/${srcfile} ${subdir}/${srcfile2}" $binfile executable {debug}]
+
+ if { $err != "" } {
+ untested "${srcfile} or ${srcfile2} compilation failed"
+ return -1
+ }
}
set result [catch "exec realpath ${srcdir}/${subdir}/${srcfile2}" realsrcfile2]
diff --git a/gdb/testsuite/gdb.base/settings.exp b/gdb/testsuite/gdb.base/settings.exp
index efd7f17d5cf4..dafc5e4d8fdb 100644
--- a/gdb/testsuite/gdb.base/settings.exp
+++ b/gdb/testsuite/gdb.base/settings.exp
@@ -585,11 +585,9 @@ proc test-string {variant} {
# ${srcdir} may be a relative path. We want to make sure we
# end up in the right directory - so make sure we know where
# it is.
- global srcdir
- set mydir [pwd]
- cd ${srcdir}
- set fullsrcdir [pwd]
- cd ${mydir}
+ with_cwd $::srcdir {
+ set fullsrcdir [pwd]
+ }
gdb_test "cd ${fullsrcdir}" \
"Working directory [string_to_regexp ${fullsrcdir}].*" \
diff --git a/gdb/testsuite/gdb.base/source-dir.exp b/gdb/testsuite/gdb.base/source-dir.exp
index 21d4831688f4..fff1c1f8717d 100644
--- a/gdb/testsuite/gdb.base/source-dir.exp
+++ b/gdb/testsuite/gdb.base/source-dir.exp
@@ -87,31 +87,28 @@ proc test_truncated_comp_dir {} {
return
}
- set original_dir [pwd]
set working_dir [standard_output_file ""]
- cd ${working_dir}
-
- set strip_dir [file normalize "${working_dir}/../.."]
-
- set new_srcfile [standard_output_file ${srcfile}]
- set fd [open "$new_srcfile" w]
- puts $fd "int
- main ()
- {
- return 0;
- }"
- close $fd
-
- set options \
- "debug additional_flags=-fdebug-prefix-map=${strip_dir}="
- if { [gdb_compile "${srcfile}" "${binfile}" \
- executable ${options}] != "" } {
- untested "failed to compile"
- return -1
+ with_cwd $working_dir {
+ set strip_dir [file normalize "${working_dir}/../.."]
+
+ set new_srcfile [standard_output_file ${srcfile}]
+ set fd [open "$new_srcfile" w]
+ puts $fd "int
+ main ()
+ {
+ return 0;
+ }"
+ close $fd
+
+ set options \
+ "debug additional_flags=-fdebug-prefix-map=${strip_dir}="
+ if { [gdb_compile "${srcfile}" "${binfile}" \
+ executable ${options}] != "" } {
+ untested "failed to compile"
+ return -1
+ }
}
- cd ${original_dir}
-
clean_restart ${binfile}
if { [ishost *-*-mingw*] } {
diff --git a/gdb/testsuite/gdb.linespec/break-ask.exp b/gdb/testsuite/gdb.linespec/break-ask.exp
index d73172de596c..120c399acf25 100644
--- a/gdb/testsuite/gdb.linespec/break-ask.exp
+++ b/gdb/testsuite/gdb.linespec/break-ask.exp
@@ -28,16 +28,19 @@ if { [file pathtype $objdir] == "relative" } {
untested "objdir $objdir should be absolute"
return
}
-set saved_pwd [pwd]
-cd $srcdir/${subdir}/base/one
-set err1 [gdb_compile "thefile.cc" $objfile1 object $opts]
-cd $saved_pwd
-cd $srcdir/${subdir}/base/two
-set err2 [gdb_compile "thefile.cc" $objfile2 object $opts]
-cd $saved_pwd
-if { $err1 != "" || $err2 != "" } {
- untested "compilation failed"
- return -1
+
+with_cwd $srcdir/${subdir}/base/one {
+ if { [gdb_compile "thefile.cc" $objfile1 object $opts] != "" } {
+ untested "compilation failed"
+ return
+ }
+}
+
+with_cwd $srcdir/${subdir}/base/two {
+ if { [gdb_compile "thefile.cc" $objfile2 object $opts] != "" } {
+ untested "compilation failed"
+ return
+ }
}
if { [gdb_compile "$srcdir/${subdir}/$srcfile $objfile1 $objfile2" \
diff --git a/gdb/testsuite/gdb.linespec/macro-relative.exp b/gdb/testsuite/gdb.linespec/macro-relative.exp
index 609f290d8fbe..67b779f5896d 100644
--- a/gdb/testsuite/gdb.linespec/macro-relative.exp
+++ b/gdb/testsuite/gdb.linespec/macro-relative.exp
@@ -32,13 +32,12 @@ if { [file pathtype $objdir] == "relative" } {
untested "objdir $objdir should be absolute"
return
}
-set saved_pwd [pwd]
-cd $srcdir/${subdir}/base/two
-set err [gdb_compile "../../${srcfile}" "${binfile}" executable $opts]
-cd $saved_pwd
-if { $err != "" } {
- untested "compilation failed"
- return -1
+
+with_cwd $srcdir/${subdir}/base/two {
+ if { [gdb_compile "../../${srcfile}" "${binfile}" executable $opts] != "" } {
+ untested "compilation failed"
+ return
+ }
}
clean_restart ${testfile}
diff --git a/gdb/testsuite/lib/ada.exp b/gdb/testsuite/lib/ada.exp
index 67581c89008e..25f8193c9743 100644
--- a/gdb/testsuite/lib/ada.exp
+++ b/gdb/testsuite/lib/ada.exp
@@ -18,8 +18,6 @@
# BUILDDIR.
proc target_compile_ada_from_dir {builddir source dest type options} {
- set saved_cwd [pwd]
-
global board
set board [target_info name]
set save_multilib_flag [board_info $board multilib_flags]
@@ -39,10 +37,10 @@ proc target_compile_ada_from_dir {builddir source dest type options} {
}
catch {
- cd $builddir
- return [target_compile $source $dest $type $options]
+ with_cwd $builddir {
+ return [target_compile $source $dest $type $options]
+ }
} result options
- cd $saved_cwd
if { $save_multilib_flag != "" } {
unset_board_info "multilib_flags"
base-commit: 6acc36f71dfc60e357496174672103f133f85e97
--
2.35.2
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] gdb/testsuite: use with_cwd where possible
2022-04-22 13:16 [PATCH] gdb/testsuite: use with_cwd where possible Simon Marchi
@ 2022-04-26 17:56 ` Tom Tromey
2022-04-27 0:20 ` Simon Marchi
0 siblings, 1 reply; 3+ messages in thread
From: Tom Tromey @ 2022-04-26 17:56 UTC (permalink / raw)
To: Simon Marchi via Gdb-patches
>>>>> "Simon" == Simon Marchi via Gdb-patches <gdb-patches@sourceware.org> writes:
Simon> I learned about with_cwd today. I spotted a few spots that could use
Simon> it, to make the code more robust.
Looks good.
Tom
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] gdb/testsuite: use with_cwd where possible
2022-04-26 17:56 ` Tom Tromey
@ 2022-04-27 0:20 ` Simon Marchi
0 siblings, 0 replies; 3+ messages in thread
From: Simon Marchi @ 2022-04-27 0:20 UTC (permalink / raw)
To: Tom Tromey, Simon Marchi via Gdb-patches
On 2022-04-26 13:56, Tom Tromey wrote:
>>>>>> "Simon" == Simon Marchi via Gdb-patches <gdb-patches@sourceware.org> writes:
>
> Simon> I learned about with_cwd today. I spotted a few spots that could use
> Simon> it, to make the code more robust.
>
> Looks good.
>
> Tom
Thanks, pushed.
Simon
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-04-27 0:20 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-22 13:16 [PATCH] gdb/testsuite: use with_cwd where possible Simon Marchi
2022-04-26 17:56 ` Tom Tromey
2022-04-27 0:20 ` Simon Marchi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).