From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11524 invoked by alias); 25 Apr 2018 17:02:06 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: List-Unsubscribe: X-Seq: 42722 Received: (qmail 23289 invoked by uid 1010); 25 Apr 2018 17:02:06 -0000 X-Qmail-Scanner-Diagnostics: from mailout2.w1.samsung.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(210.118.77.12):SA:0(-6.9/5.0):. Processed in 2.719156 secs); 25 Apr 2018 17:02:06 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, SPF_HELO_PASS,SPF_PASS,T_DKIMWL_WL_HIGH,T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20180425170158euoutp027a4675baaccf6374af3030af925911cf~ovHzslCu51430414304euoutp02D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1524675718; bh=ISevOIdfsmeLfyxshxMpmTPDG6MOPZ9VplzMFCtIMhA=; h=Date:From:To:Subject:In-Reply-To:References:From; b=QpKcSd1dYDvxoRsWTBUg2Fw00QITKdZh9Puvg1+Ig8qljq/zOTsYZyZEMjWnMGoLM MD87NZg84N/jqtLqn9Az4jf5e+Dmr0adzl/DoKawHGYJ1bTHSHFXVTA/aYrLLU6o// WN+m73GUDpLY/Bp9HTGd+24RmwiE2eCL5Qy8w8/8= X-AuditID: cbfec7f5-b45ff700000028a9-48-5ae0b48557fe Date: Wed, 25 Apr 2018 18:01:55 +0100 From: Peter Stephenson To: Zsh hackers' list Subject: Re: PATCH: fg and bg tests Message-ID: <20180425180155.13597f28@camnpupstephen.cam.scsc.local> In-Reply-To: <20180425155647.3e897139@camnpupstephen.cam.scsc.local> Organization: SCSC X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrHIsWRmVeSWpSXmKPExsWy7djPc7qtWx5EGazoEbA42PyQyYHRY9XB D0wBjFFcNimpOZllqUX6dglcGf/PHmUuWCFf0dHRwdzA2CTRxcjJISFgIrFo6QbGLkYuDiGB FYwS7YtOskA4fUwS2x5MYoVwepkk/u+YzATTcqjzOlTLckaJ5r972OGqduy8BeWcYZQ42rga qv8Co8Ts/7dYQfpZBFQlVt6eBWazCRhKTN00mxHEFhHQlvj0+TQbiC0soCyx4cw2sBpeAWeJ WSdegu3mFHCR+LrhKFA9Bwe/gJDEhWZbiJPsJY7uOckEUS4ocXLmExYQm1lAXmL72znMEDWf 2SSWT3KFsF0kVrevh3pHWOLV8S3sELaMxOnJPeAAkBBoZpRYe/8+G0Sih1Fi1uJQCNtaou/2 RbAbmAU0Jdbv0ocI20p8XtvFBhKWEOCTuPFWEOIEPolJ26YzQ4R5JTrahCCq1SR2NG1lnMCo MgvJ0bOQHD0LYf4CRuZVjOKppcW56anFxnmp5XrFibnFpXnpesn5uZsYgang9L/jX3cw7vuT dIhRgINRiYf3x7wHUUKsiWXFlbmHGCU4mJVEeCN6gUK8KYmVValF+fFFpTmpxYcYpTlYlMR5 4zTqooQE0hNLUrNTUwtSi2CyTBycUg2MjAEVTK8+vyrfLrlBgo9Xs8bDIODC2VLfwnVP3Vd8 fRAg8D5C+UDT0y3Wr47090zel5vP+Ka79uSsf2EnNSet0PINm5OpESv010j8Plvy3KMCpY23 tjAVfn/OduLK7VLFJ9/+8DjY3VQpfXx306XQ2fVcj5/+rNh9RmmddfedW749ebNUvs63VWIp zkg01GIuKk4EAI1H/BsBAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeLIzCtJLcpLzFFi42I5/e/4Xd2WLQ+iDPo/SFocbH7I5MDoserg B6YAxig9m6L80pJUhYz84hJbpWhDCyM9Q0sLPSMTSz1DY/NYKyNTJX07m5TUnMyy1CJ9uwS9 jP9njzIXrJCv6OjoYG5gbJLoYuTkkBAwkTjUeZ2xi5GLQ0hgKaPE3Wfv2SESMhKfrnyEsoUl /lzrYgOxhQS6mSTWnzOFaDgD1HDuACuEc4FR4syujcwgVSwCqhIrb89iBbHZBAwlpm6azQhi iwhoS3z6fBpskrCAssSGM9vAangFnCVmnXjJBGJzCrhIfN1wFOqkS0wSKx+/AHI4OPgFhCQu NNtCXGQvcXTPSSaIXkGJkzOfsIDYzAI6EidWHWOGsOUltr+dwzyBUXgWkrJZSMpmISlbwMi8 ilEktbQ4Nz232EivODG3uDQvXS85P3cTIzAqth37uWUHY9e74EOMAhyMSjy8P+Y9iBJiTSwr rsw9xCjBwawkwhvRCxTiTUmsrEotyo8vKs1JLT7EaAoMjInMUqLJ+cCIzSuJNzQ1NLewNDQ3 Njc2s1AS5z1vUBklJJCeWJKanZpakFoE08fEwSnVwBgjce2ubpJ/VMTiXV7rfG89vdGe/maF qIU278dr/6cKxTHyrmXprfHbPUNir84jvY6ENyn69oWPf/E93a572WzrPe0Nh7hP3uv78ul2 4YZzn//kJ2XaXsrz+ajnd/Cf+z7rOXzvPCdp2VuYdX/MmHS1/t+Gooup13pFN4v/YtxyP3jb 673765uVWIozEg21mIuKEwHtKQ7yoAIAAA== X-CMS-MailID: 20180425170156eucas1p19987814bf5e541b0983be386be2dc148 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-MTR: 20180425170156eucas1p19987814bf5e541b0983be386be2dc148 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20180425090941eucas1p187cf5d07341d2041c15e9947962f3bd9 X-RootMTR: 20180425090941eucas1p187cf5d07341d2041c15e9947962f3bd9 References: <20180424135944.64e73c62@camnpupstephen.cam.scsc.local> <20180425100940.31816d28@camnpupstephen.cam.scsc.local> <20180425155647.3e897139@camnpupstephen.cam.scsc.local> On Wed, 25 Apr 2018 15:56:47 +0100 Peter Stephenson wrote: > I'm unlikely to find a simpler command that does direct user > interaction and I'm not going to be doing remote debugging. dc is even less verbose (and at least in the GNU version a bit more helpful if there is an error) and it's even easier to change the internal state and report, but still has the minimum level of user interaction I need. So let's try that. I assume everyone has dc but in any case it's easy to check that and skip tests if necessary. If I get "This doesn't work on my system" reports on this I think it will be time to back the tests off and give up on them as not portable. Yet more fixes for pattern comparison failures. pws diff --git a/Test/W02jobs.ztst b/Test/W02jobs.ztst index 1ec0b8e..6d5a41f 100644 --- a/Test/W02jobs.ztst +++ b/Test/W02jobs.ztst @@ -192,52 +192,46 @@ *>\[1] ? kill*sleep* zpty_start - zpty_input $'ed 2>/dev/null\n=\n' + zpty_input $'dc 2>/dev/null\n1\np\n' zpty_line - zpty_input $'a\nstuff1\n.\nw tmpfile\nq\n' + zpty_input $'1\n+\np\nq\n' zpty_stop - cat tmpfile - rm -f tmpfile 0:Sanity check of "ed" as foreground process -*>0 -*>stuff1 -F:This test checks we can run the simple editor "ed" as a way of testing +*>1 +*>2 +F:This test checks we can run the simple calculator dc as a way of testing F:user interaction for later job control tests . The test itself is F:trivial; its failure may simply indicate our test methodology does not F:work on this system. zpty_start - zpty_input $'ed 2>/dev/null\n=\n' + zpty_input $'dc 2>/dev/null\n1\np\n' zpty_line zpty_input $'\C-z' zpty_input 'fg' - zpty_input $'a\nstuff2\n.\nw tmpfile\nq\n' + zpty_input $'1\n+\np\nq\n' zpty_stop - cat tmpfile - rm -f tmpfile 0:Basic fg with subsequent user interaction -*>0 -*>zsh:*(stopped|suspended)*ed* -*>*continued*ed* -*>stuff2 +*>1 +*>zsh:*(stopped|suspended)*dc* +*>*continued*dc* +*>2 zpty_start - zpty_input $'ed 2>/dev/null\n=\n' + zpty_input $'dc 2>/dev/null\n1\np\n' zpty_line zpty_input $'\C-z' zpty_input 'bg' zpty_input 'fg' - zpty_input $'a\nstuff3\n.\nw tmpfile\nq\n' + zpty_input $'1\n+\np\nq\n' zpty_stop - cat tmpfile - rm -f tmpfile 0:bg and fg with user input -*>0 -*>zsh:*(stopped|suspended)*ed* -*>*continued*ed* -*>*(stopped|suspended)*ed* -*>*continued*ed* -*>stuff3 +*>1 +*>zsh:*(stopped|suspended)*dc* +*>*continued*dc* +*>*(stopped|suspended)*dc* +*>*continued*dc* +*>2 %clean diff --git a/Test/ztst.zsh b/Test/ztst.zsh index 1a6a0b5..d835e0e 100755 --- a/Test/ztst.zsh +++ b/Test/ztst.zsh @@ -315,26 +315,25 @@ ZTST_diff() { if (( diff_pat )); then local -a diff_lines1 diff_lines2 - integer failed i l n + integer failed i l local p - diff_lines1=("${(f)$(<$argv[-2])}") - diff_lines2=("${(f)$(<$argv[-1])}") + diff_lines1=("${(f@)$(<$argv[-2])}") + diff_lines2=("${(f@)$(<$argv[-1])}") if (( ${#diff_lines1} != ${#diff_lines2} )); then failed=1 + print -r "Pattern match filead, line mismatch (${#diff_lines1}/${#diff_lines2}):" else for (( i = 1; i <= ${#diff_lines1}; i++ )); do if [[ ${diff_lines2[i]} != ${~diff_lines1[i]} ]]; then failed=1 + print -r "Pattern match failed, line $i:" break fi done fi if (( failed )); then - print -r "Pattern match failed, line $i:" - n=${#diff_lines1} - (( ${#diff_lines2} > $n )) && n=${#diff_lines2} - for (( l = 1; l <= n; ++l )); do + for (( l = 1; l <= ${#diff_lines1}; ++l )); do if (( l == i )); then p="-" else @@ -342,7 +341,7 @@ ZTST_diff() { fi print -r -- "$p<${diff_lines1[l]}" done - for (( l = 1; l <= n; ++l )); do + for (( l = 1; l <= ${#diff_lines2}; ++l )); do if (( l == i )); then p="+" else