Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH: fg and bg tests



On Wed, 25 Apr 2018 15:56:47 +0100
Peter Stephenson <p.stephenson@xxxxxxxxxxx> 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<EOM>" 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



Messages sorted by: Reverse Date, Date, Thread, Author