Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: PATCH: ztrftime: Pass everything unhandled to the system strftime()
On Thu, 9 Jul 2015 11:17:56 +0100
Peter Stephenson <p.stephenson@xxxxxxxxxxx> wrote:
> On Thu, 9 Jul 2015 11:58:07 +0200
> Mikael Magnusson <mikachu@xxxxxxxxx> wrote:
> > This seems to work, I've added tests, and a comment.
>
> OK, the printing "skipped" trick looks like it should cover all bases.
> Still, it ought to be possible to make it redundant within the test
> framework...
e.g.
pws
diff --git a/Test/A01grammar.ztst b/Test/A01grammar.ztst
index 8221735..82d9c8c 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 02fa4d4..e9a596a 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 a3b4e8c..a7ef983 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 74111f6..ce89a83 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:
Messages sorted by:
Reverse Date,
Date,
Thread,
Author