diff --git a/testsuite/date/date-works b/testsuite/date/date-works index f726bab3a..0802e887f 100644 --- a/testsuite/date/date-works +++ b/testsuite/date/date-works @@ -4,20 +4,20 @@ dt=`echo "$dt" | sed 's/^[^ ][^ ][^ ] [^ ][^ ][^ ] [ 0123][0-9] [012][0-9]:[0-5] test x"$dt" = x"OK" dt=`busybox date -d 1:2` -dt=`echo "$dt" | cut -b1-19` -test x"$dt" = x"Fri Apr 25 01:02:00" +dt=`echo "$dt" | cut -b12-19` +test x"$dt" = x"01:02:00" dt=`busybox date -d 1:2:3` -dt=`echo "$dt" | cut -b1-19` -test x"$dt" = x"Fri Apr 25 01:02:03" +dt=`echo "$dt" | cut -b12-19` +test x"$dt" = x"01:02:03" dt=`busybox date -d 1.2-3:4` -dt=`echo "$dt" | cut -b1-19` -test x"$dt" = x"Wed Jan 2 03:04:00" +dt=`echo "$dt" | cut -b5-19` +test x"$dt" = x"Jan 2 03:04:00" dt=`busybox date -d 1.2-3:4:5` -dt=`echo "$dt" | cut -b1-19` -test x"$dt" = x"Wed Jan 2 03:04:05" +dt=`echo "$dt" | cut -b5-19` +test x"$dt" = x"Jan 2 03:04:05" dt=`busybox date -d 1999.1.2-3:4` dt=`echo "$dt" | cut -b1-19` @@ -32,8 +32,8 @@ dt=`echo "$dt" | cut -b1-19` test x"$dt" = x"Sat Jan 2 03:04:05" dt=`busybox date -d 01231133` -dt=`echo "$dt" | cut -b1-19` -test x"$dt" = x"Wed Jan 23 11:33:00" +dt=`echo "$dt" | cut -b5-19` +test x"$dt" = x"Jan 23 11:33:00" dt=`busybox date -d 012311332000` dt=`echo "$dt" | cut -b1-19` diff --git a/testsuite/date/date-works-1 b/testsuite/date/date-works-1 new file mode 100644 index 000000000..11d8b2b7c --- /dev/null +++ b/testsuite/date/date-works-1 @@ -0,0 +1,128 @@ +dt=`busybox date -d 1:2 +%T` +test x"$dt" = x"01:02:00" + +dt=`busybox date -d 1:2:3 +%T` +test x"$dt" = x"01:02:03" + +host_date=/bin/date + +# date (GNU coreutils) 6.10 reports: +# date: invalid date '1.2-3:4' +# busybox 1.11.0.svn date reports: +# date: invalid date '1/2 3:4' + +hdt=`$host_date -d '1/2 3:4'` +dt=`busybox date -d 1.2-3:4` +test x"$hdt" = x"$dt" + +hdt=`$host_date -d '1/2 3:4:5'` +dt=`busybox date -d 1.2-3:4:5` +test x"$hdt" = x"$dt" + +hdt=`$host_date -d '1/2/1999 3:4'` +dt=`busybox date -d 1999.1.2-3:4` +test x"$hdt" = x"$dt" + +hdt=`$host_date -d '1/2/1999 3:4:5'` +dt=`busybox date -d 1999.1.2-3:4:5` +test x"$hdt" = x"$dt" + +hdt=`$host_date -d '1999-1-2 3:4:5'` +dt=`busybox date -d '1999-1-2 3:4:5'` +test x"$hdt" = x"$dt" + +# Avoid using week day in this evaluation, as it's mostly different every year +# date (GNU coreutils) 6.10 reports: +# date: invalid date '01231133' +dt=`busybox date -d 01231133 +%c` +dt=`echo "$dt" | cut -b5-19` +test x"$dt" = x"Jan 23 11:33:00" + +# date (GNU coreutils) 6.10 reports: +# date: invalid date '012311332000' +dt=`busybox date -d 012311332000 +%c` +test x"$dt" = x"Sun Jan 23 11:33:00 2000" + +# date (GNU coreutils) 6.10 reports: +# date: invalid date '012311332000' +dt=`busybox date -d 012311332000.30 +%c` +test x"$dt" = x"Sun Jan 23 11:33:30 2000" + +lcbbd="LC_ALL=C busybox date" +wd=$(eval $lcbbd +%a) # weekday name +mn=$(eval $lcbbd +%b) # month name +dm=$(eval $lcbbd +%e) # day of month, space padded +h=$(eval $lcbbd +%H) # hour, zero padded +m=$(eval $lcbbd +%M) # minute, zero padded +s=$(eval $lcbbd +%S) # second, zero padded +z=$(eval $lcbbd -u +%Z) # time zone abbreviation +y=$(eval $lcbbd +%Y) # year + +res=OK +case $wd in + Sun) + ;; + Mon) + ;; + Tue) + ;; + Wed) + ;; + Thu) + ;; + Fri) + ;; + Sat) + ;; + *) + res=BAD + ;; +esac + +case $mn in + Jan) + ;; + Feb) + ;; + Mar) + ;; + Apr) + ;; + May) + ;; + Jun) + ;; + Jul) + ;; + Aug) + ;; + Sep) + ;; + Oct) + ;; + Nov) + ;; + Dec) + ;; + *) + res=BAD + ;; +esac + +dm=${dm# *} +[ $dm -ge 1 ] && [ $dm -le 31 ] || res=BAD +h=${h#0} +[ $h -ge 0 ] && [ $h -le 23 ] || res=BAD +m=${m#0} +[ $m -ge 0 ] && [ $m -le 59 ] || res=BAD +s=${s#0} +[ $s -ge 0 ] && [ $s -le 59 ] || res=BAD +[ $z = UTC ] || res=BAD +[ $y -ge 1970 ] || res=BAD + +test x"$res" = xOK + +if dt=`busybox date -d 012311332000.30 %+c`; then + echo "Expected this to fail with: \"date: invalid date '%+c'\"" >&2 + exit 1 +fi