Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Christian Groessler <chris@groessler.org>
To: Tom Tromey <tromey@redhat.com>
Cc: Sergio Durigan Junior <sergiodj@redhat.com>,
	gdb@sourceware.org,        gdb-patches@sourceware.org
Subject: Re: [patch]: testsuite: run bash instead of sh when using brace expansion
Date: Fri, 17 May 2013 22:57:00 -0000	[thread overview]
Message-ID: <5196B5CA.1000704@groessler.org> (raw)
In-Reply-To: <87a9ntr1xl.fsf@fleche.redhat.com>

Hi Tom,

On 05/17/13 18:44, Tom Tromey wrote:

> You can do something like:
>
> set dirs {}
> foreach l {/ldir ""} {
>    foreach r {/rdir ""} {
>      ... more foreaches here ...
>        lappend dirs [join [list $l $r $...]]
>    }
> }
...

> We have 'lreverse' in new Tcl, plus a compatibility proc in future.exp.
...

> foreach is more idiomatic.


Thanks for the tips.


Here's an updated patch:


2013-05-18  Christian Groessler <chris@groessler.org>

        * gdb.dwarf2/dw2-dir-file-name.exp: Don't use brace expansion,
        since it's not supported in all shells.



Index: gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp,v
retrieving revision 1.4
diff -u -p -r1.4 dw2-dir-file-name.exp
--- gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp      15 Mar 2013 
01:41:28 -0000      1.4
+++ gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp      17 May 2013 
22:47:20 -0000
@@ -322,10 +322,35 @@ if { [gdb_compile "${asmsrcfile} ${srcdi
      return -1
  }

-remote_exec host "sh -c \"rm -f 
${srcabsdir}{/rdir,}{/xdir,}{/compdir,}{/ldir,}{/fdir,}/${srctmpfile}\""
-remote_exec host "sh -c \"rmdir 
${srcabsdir}{/rdir,}{/xdir,}{/compdir,}{/ldir,}{/fdir,}\""
-remote_exec host "sh -c \"mkdir 
${srcabsdir}{,/rdir}{,/xdir}{,/compdir}{,/ldir}{,/fdir}\""
-remote_exec host "sh -c \"for d in 
${srcabsdir}{,/rdir}{,/xdir}{,/compdir}{,/ldir}{,/fdir};do cp 
${srcdir}/${subdir}/${srcfile} \\\$d/${srctmpfile}; done\""
+set dirs {}
+foreach r {"" /rdir} {
+  foreach x {"" /xdir} {
+      foreach comp {"" /compdir} {
+         foreach l {"" /ldir} {
+             foreach f {"" /fdir} {
+                 lappend dirs [join [list $r$x$comp$l$f]]
+             }
+         }
+      }
+  }
+}
+
+proc pathexpand {prefix dirlst suffix} {
+    set retlst {}
+    foreach dir $dirlst {
+       lappend retlst "$prefix$dir$suffix"
+    }
+    return $retlst
+}
+
+set filelist [pathexpand $srcabsdir $dirs "/$srctmpfile"]
+set dircreatelist [pathexpand $srcabsdir $dirs ""]
+set dirremovelist [pathexpand $srcabsdir [lreverse $dirs] ""]
+
+remote_exec host "sh -c \"rm -f $filelist\""
+remote_exec host "sh -c \"rmdir $dirremovelist\""
+remote_exec host "sh -c \"mkdir $dircreatelist\""
+remote_exec host "sh -c \"for d in $dircreatelist; do cp 
${srcdir}/${subdir}/${srcfile} \\\$d/${srctmpfile}; done\""

  clean_restart ${testfile}



Ok to install?

regards,
chris



  reply	other threads:[~2013-05-17 22:57 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <51936596.8010205@groessler.org>
     [not found] ` <m3hai3kes8.fsf@redhat.com>
2013-05-17  7:45   ` Christian Groessler
2013-05-17  8:13     ` Joel Brobecker
2013-05-17 16:44     ` Tom Tromey
2013-05-17 22:57       ` Christian Groessler [this message]
2013-05-20 15:16         ` Tom Tromey
2013-05-21  7:27           ` Christian Groessler

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=5196B5CA.1000704@groessler.org \
    --to=chris@groessler.org \
    --cc=gdb-patches@sourceware.org \
    --cc=gdb@sourceware.org \
    --cc=sergiodj@redhat.com \
    --cc=tromey@redhat.com \
    /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: link
Be 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