aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coreutils/cal.c5
-rwxr-xr-xtestsuite/cal.tests39
-rwxr-xr-xtestsuite/runtest5
3 files changed, 46 insertions, 3 deletions
diff --git a/coreutils/cal.c b/coreutils/cal.c
index 207fa967b..79fe074f8 100644
--- a/coreutils/cal.c
+++ b/coreutils/cal.c
@@ -113,7 +113,10 @@ int cal_main(int argc UNUSED_PARAM, char **argv)
if (argv[2]) {
bb_show_usage();
}
- month = xatou_range(*argv++, 1, 12);
+ if (!(flags & 2)) { /* no -y */
+ month = xatou_range(*argv, 1, 12);
+ }
+ argv++;
}
year = xatou_range(*argv, 1, 9999);
}
diff --git a/testsuite/cal.tests b/testsuite/cal.tests
new file mode 100755
index 000000000..36be2b4b5
--- /dev/null
+++ b/testsuite/cal.tests
@@ -0,0 +1,39 @@
+#!/bin/sh
+# Copyright 2010 by Denys Vlasenko
+# Licensed under GPL v2, see file LICENSE for details.
+
+. ./testing.sh
+
+test -f "$bindir/.config" && . "$bindir/.config"
+
+# testing "test name" "command" "expected result" "file input" "stdin"
+
+testing "cal 2000" "cal 1 2000" "\
+ January 2000
+Su Mo Tu We Th Fr Sa
+ 1
+ 2 3 4 5 6 7 8
+ 9 10 11 12 13 14 15
+16 17 18 19 20 21 22
+23 24 25 26 27 28 29
+30 31
+" "" ""
+
+test x"$CONFIG_LOCALE_SUPPORT" = x"y" \
+&& test x"$CONFIG_FEATURE_ASSUME_UNICODE" = x"y" \
+&& test x"$CONFIG_LAST_SUPPORTED_WCHAR" = x"0" \
+&& test x"$CONFIG_UNICODE_WIDE_WCHARS" = x"y" \
+&& test x"$CONFIG_STATIC" != x"y" \
+&& test x"$CONFIG_CROSS_COMPILER_PREFIX" = x"" \
+&& testing "unicode cal 2000" "LANG=zh_TW.utf8 cal 1 2000" "\
+ 一月 2000
+日 一 二 三 四 五 六
+ 1
+ 2 3 4 5 6 7 8
+ 9 10 11 12 13 14 15
+16 17 18 19 20 21 22
+23 24 25 26 27 28 29
+30 31
+" "" ""
+
+exit $FAILCOUNT
diff --git a/testsuite/runtest b/testsuite/runtest
index 10563d7b2..5c185c5fb 100755
--- a/testsuite/runtest
+++ b/testsuite/runtest
@@ -78,9 +78,10 @@ run_oldstyle_applet_tests()
lcwd=$(pwd)
-[ x"$tsdir" != x ] || tsdir="$lcwd"
-[ x"$bindir" != x ] || bindir="${lcwd%/*}" # one directory up from $lcwd
+[ x"$tsdir" != x"" ] || tsdir="$lcwd"
+[ x"$bindir" != x"" ] || bindir="${lcwd%/*}" # one directory up from $lcwd
PATH="$bindir:$PATH"
+export bindir # some tests need to look at $bindir/.config
if [ x"$VERBOSE" = x ]; then
export VERBOSE=