public inbox for gdb-cvs@sourceware.org help / color / mirror / Atom feed
From: Simon Marchi <simark@sourceware.org> To: gdb-cvs@sourceware.org Subject: [binutils-gdb] gdb/testsuite: use with_cwd where possible Date: Wed, 27 Apr 2022 00:19:08 +0000 (GMT) [thread overview] Message-ID: <20220427001908.C604E3858C83@sourceware.org> (raw) https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=019a5c62974523a3331911130c66350ef0a6f3c4 commit 019a5c62974523a3331911130c66350ef0a6f3c4 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Fri Apr 22 09:16:59 2022 -0400 gdb/testsuite: use with_cwd where possible I learned about with_cwd today. I spotted a few spots that could use it, to make the code more robust. Change-Id: Ia23664cb827f25e79d31948e0c006a8dc61c33e1 Diff: --- 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 34a16af1491..0c58a1ab6b7 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 a264dc75322..f9faca87423 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 efa8d63b1d4..b3890244997 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 efd7f17d5cf..dafc5e4d8fd 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 21d4831688f..fff1c1f8717 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 d73172de596..120c399acf2 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 609f290d8fb..67b779f5896 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 67581c89008..25f8193c974 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"
reply other threads:[~2022-04-27 0:19 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220427001908.C604E3858C83@sourceware.org \ --to=simark@sourceware.org \ --cc=gdb-cvs@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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).