about summary refs log tree commit diff
path: root/Test
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2015-07-10 14:47:19 +0100
committerPeter Stephenson <pws@zsh.org>2015-07-10 14:47:19 +0100
commit9152ff3b46a167e2ad7a1fb8a8cef313b45b456b (patch)
tree719b3c74b5c0d405ef138dc3a6ccfb22327e0604 /Test
parent2833299312dc3600849bd82ae7b93f5538cc10bb (diff)
downloadzsh-9152ff3b46a167e2ad7a1fb8a8cef313b45b456b.tar.gz
zsh-9152ff3b46a167e2ad7a1fb8a8cef313b45b456b.tar.xz
zsh-9152ff3b46a167e2ad7a1fb8a8cef313b45b456b.zip
35760: Add ZTST_skip to test system
Diffstat (limited to 'Test')
-rw-r--r--Test/A01grammar.ztst13
-rw-r--r--Test/C02cond.ztst9
-rw-r--r--Test/V09datetime.ztst56
-rwxr-xr-xTest/ztst.zsh11
4 files changed, 58 insertions, 31 deletions
diff --git a/Test/A01grammar.ztst b/Test/A01grammar.ztst
index 8221735b6..59f87fa90 100644
--- a/Test/A01grammar.ztst
+++ b/Test/A01grammar.ztst
@@ -13,6 +13,19 @@
 #
 # Tests for `Simple Commands and Pipelines'
 #
+
+  # Test skipping early to ensure we run the remainder...
+  if [[ -n $ZTST_test_skip ]]; then
+    ZTST_skip="Test system verification for skipping"
+  else
+    print "This is standard output"
+    print "This is standard error" >&2
+    false
+  fi
+1:Test skipping if ZTST_test_skip is set
+>This is standard output
+?This is standard error
+
   echo foo | cat | sed 's/foo/bar/'
 0:Basic pipeline handling
 >bar
diff --git a/Test/C02cond.ztst b/Test/C02cond.ztst
index 02fa4d473..e9a596a22 100644
--- a/Test/C02cond.ztst
+++ b/Test/C02cond.ztst
@@ -151,14 +151,11 @@
   cat $unmodified
   touch $newnewnew
   if [[ $OSTYPE == "cygwin" ]]; then
-    print -u$ZTST_fd "Warning: not testing [[ -N file ]] (not supported on Cygwin)"
-    true
+    ZTST_skip="[[ -N file ]] not supported on Cygwin"
   elif (( isnfs )); then
-    print -u$ZTST_fd "Warning: not testing [[ -N file ]] (not supported with NFS)"
-    true
+    ZTST_skip="[[ -N file ]] not supported with NFS"
   elif test -f /etc/mtab && { grep $(df . 2>/dev/null| tail -n1 | awk '{print $1}') /etc/mtab | grep -q noatime; }; then
-    print -u$ZTST_fd "Warning: not testing [[ -N file ]] (not supported with noatime file system)"
-    true
+    ZTST_skip="[[ -N file ]] not supported with noatime file system"
   else
     [[ -N $newnewnew && ! -N $unmodified ]]
   fi
diff --git a/Test/V09datetime.ztst b/Test/V09datetime.ztst
index a3b4e8c81..a7ef9837c 100644
--- a/Test/V09datetime.ztst
+++ b/Test/V09datetime.ztst
@@ -10,11 +10,9 @@
   TZ=UTC+0
   if [[ "$(strftime %04y 1)" = "0070" ]]; then
     [[ "$(LC_TIME=ja_JP.UTF-8 strftime %OS 1)" = 一 ]] || {
-      print -u $ZTST_fd "Not testing alternate date format extensions (missing ja_JP.UTF-8 locale)"
       skip_japanese=1
     }
   else
-    print -u $ZTST_fd "Skipping strftime extension tests"
     skip_extensions=1
   fi
 
@@ -36,29 +34,37 @@
 >6_6_3_3
 >000000
 
-  [[ $skip_japanese = 1 ]] && repeat 5; do echo skipped; done || (
-  LC_TIME=ja_JP.UTF-8
-  strftime %Ey 1000000000
-  strftime %Oy 1000000000
-  strftime %Ex 1000000000
-  strftime %OS 1000000000
-  strftime %03Ey 650000000
-  )
+  if [[ $skip_japanese = 1 ]]; then
+    ZTST_skip="Japanese UTF-8 locale not supported"
+  else
+    (
+    LC_TIME=ja_JP.UTF-8
+    strftime %Ey 1000000000
+    strftime %Oy 1000000000
+    strftime %Ex 1000000000
+    strftime %OS 1000000000
+    strftime %03Ey 650000000
+    )
+  fi
 0:alternate format extensions
-*>skipped|13
->skipped|一
->skipped|平成13年09月09日
->skipped|四十
->skipped|002
+>13
+>一
+>平成13年09月09日
+>四十
+>002
 
-  [[ $skip_extensions = 1 ]] && repeat 4; do echo skipped; done || (
-  strftime '%#A' 0
-  strftime '%^_10B' 0
-  strftime %03Ey 650000000
-  strftime %-Oe 0
-  )
+  if [[ $skip_extensions = 1 ]]; then
+    ZTST_skip="strftime extensions not supported"
+  else
+    (
+      strftime '%#A' 0
+      strftime '%^_10B' 0
+      strftime %03Ey 650000000
+      strftime %-Oe 0
+    )
+  fi
 0:various extensions
-*>skipped|THURSDAY
->skipped|   JANUARY
->skipped|090
->skipped|1
+>THURSDAY
+>   JANUARY
+>090
+>1
diff --git a/Test/ztst.zsh b/Test/ztst.zsh
index 74111f6cc..ce89a83ce 100755
--- a/Test/ztst.zsh
+++ b/Test/ztst.zsh
@@ -343,6 +343,7 @@ ZTST_diff() {
 ZTST_test() {
   local last match mbegin mend found substlines
   local diff_out diff_err
+  local ZTST_skip
 
   while true; do
     rm -f $ZTST_in $ZTST_out $ZTST_err
@@ -427,6 +428,16 @@ $ZTST_curline"
 
       ZTST_execchunk <$ZTST_in >$ZTST_tout 2>$ZTST_terr
 
+      if [[ -n $ZTST_skip ]]; then
+	ZTST_verbose 0 "Test case skipped: $ZTST_skip"
+	ZTST_skip=
+	if [[ -n $last ]]; then
+	  break
+	else
+	  continue
+	fi
+      fi
+
       # First check we got the right status, if specified.
       if [[ $ZTST_xstatus != - && $ZTST_xstatus != $ZTST_status ]]; then
 	ZTST_testfailed "bad status $ZTST_status, expected $ZTST_xstatus from: