Re: [patch]: testsuite: run bash instead of sh when using brace expansion

Christian Groessler <[email protected]>
Newsgroups gmane.comp.gdb.patches,gmane.comp.gdb.devel
Message-ID <[email protected]>
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 <[email protected]>

        * 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.