From 9152ff3b46a167e2ad7a1fb8a8cef313b45b456b Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Fri, 10 Jul 2015 14:47:19 +0100 Subject: 35760: Add ZTST_skip to test system --- Test/A01grammar.ztst | 13 ++++++++++++ Test/C02cond.ztst | 9 +++------ Test/V09datetime.ztst | 56 ++++++++++++++++++++++++++++----------------------- Test/ztst.zsh | 11 ++++++++++ 4 files changed, 58 insertions(+), 31 deletions(-) (limited to 'Test') 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: -- cgit 1.4.1