summaryrefslogtreecommitdiff
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.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: