aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Denis Vlasenko <vda.linux@googlemail.com>2008-04-28 00:25:22 +0000
committerGravatar Denis Vlasenko <vda.linux@googlemail.com>2008-04-28 00:25:22 +0000
commite4ed64067e7de0607cfb23b95a542e29a84bf1fa (patch)
tree43baa202b5a72a3fadc3cd9cd5e2a814ba9f389b
parente6520f05328c38333284df5f42b9c2bfb7c4fec9 (diff)
downloadbusybox-e4ed64067e7de0607cfb23b95a542e29a84bf1fa.tar.gz
busybox-e4ed64067e7de0607cfb23b95a542e29a84bf1fa.tar.bz2
date: better version of previous commit; + fix testsuite
to have it checked
-rw-r--r--coreutils/date.c6
-rw-r--r--testsuite/date/date-works-135
2 files changed, 22 insertions, 19 deletions
diff --git a/coreutils/date.c b/coreutils/date.c
index 2c61aa646..5b0f60f1a 100644
--- a/coreutils/date.c
+++ b/coreutils/date.c
@@ -79,9 +79,11 @@ int date_main(int argc ATTRIBUTE_UNUSED, char **argv)
if (!(opt & (DATE_OPT_SET | DATE_OPT_DATE))) {
opt |= DATE_OPT_SET;
date_str = argv[0]; /* can be NULL */
- } else if (argv[0]) {
- bb_show_usage();
+ if (date_str)
+ argv++;
}
+ if (*argv)
+ bb_show_usage();
/* Now we have parsed all the information except the date format
which depends on whether the clock is being set or read */
diff --git a/testsuite/date/date-works-1 b/testsuite/date/date-works-1
index 11d8b2b7c..e318944da 100644
--- a/testsuite/date/date-works-1
+++ b/testsuite/date/date-works-1
@@ -11,27 +11,29 @@ host_date=/bin/date
# 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"
+# TODO: (1) compare with strings, not "host date"
+# (2) implement d/m[/y] hh:mm[:ss] fmt in date applet
+#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 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'`
+#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 '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
+# Avoiding 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`
@@ -122,7 +124,6 @@ s=${s#0}
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
+# This should error out (by showing usage text). Testing for that
+dt=`busybox date -d 012311332000.30 %+c 2>&1 | head -n 1`
+test x"${dt#BusyBox * multi-call binary}" = x