From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14547 invoked by alias); 17 May 2013 22:57:28 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 14532 invoked by uid 89); 17 May 2013 22:57:28 -0000 X-Spam-SWARE-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,MAY_BE_FORGED,RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Spam-User: qpsmtpd, 2 recipients Received: from vigilia.groessler.org (HELO vigilia.groessler.org) (178.63.177.85) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Fri, 17 May 2013 22:57:26 +0000 Received: from [10.23.1.38] (gaga.groessler.org [212.168.189.235] (may be forged)) by vigilia.groessler.org (8.14.6/8.14.6) with ESMTP id r4HMveUw027992 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO); Sat, 18 May 2013 00:57:41 +0200 (CEST) Message-ID: <5196B5CA.1000704@groessler.org> Date: Fri, 17 May 2013 22:57:00 -0000 From: Christian Groessler User-Agent: Mozilla/5.0 (X11; Linux i686; rv:10.0.12) Gecko/20130116 Icedove/10.0.12 MIME-Version: 1.0 To: Tom Tromey CC: Sergio Durigan Junior , gdb@sourceware.org, gdb-patches@sourceware.org Subject: Re: [patch]: testsuite: run bash instead of sh when using brace expansion References: <51936596.8010205@groessler.org> <5195E023.10203@groessler.org> <87a9ntr1xl.fsf@fleche.redhat.com> In-Reply-To: <87a9ntr1xl.fsf@fleche.redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2013-05/txt/msg00705.txt.bz2 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 * 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