[git commit] randomconfig fixes

Denys Vlasenko vda.linux at googlemail.com
Tue Aug 9 22:51:29 UTC 2011


commit: http://git.busybox.net/busybox/commit/?id=b47b3ce1bd651c689fae3cac2760f43f453e2b6e
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 archival/tar.c              |    2 +-
 coreutils/ls.c              |    4 ++--
 libbb/getopt32.c            |    6 +++++-
 testsuite/date/date-R-works |   15 ++++++++++++++-
 testsuite/ls.tests          |    3 ++-
 testsuite/mount.tests       |    2 ++
 testsuite/od.tests          |    4 ++--
 testsuite/tar.tests         |    4 ++++
 8 files changed, 32 insertions(+), 8 deletions(-)

diff --git a/archival/tar.c b/archival/tar.c
index 3e90d46..375e838 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -924,7 +924,7 @@ int tar_main(int argc UNUSED_PARAM, char **argv)
 	/* Prepend '-' to the first argument if required */
 	opt_complementary = "--:" // first arg is options
 		"tt:vv:" // count -t,-v
-		"X::T::" // cumulative lists
+		IF_FEATURE_TAR_FROM("X::T::") // cumulative lists
 #if ENABLE_FEATURE_TAR_LONG_OPTIONS && ENABLE_FEATURE_TAR_FROM
 		"\xff::" // cumulative lists for --exclude
 #endif
diff --git a/coreutils/ls.c b/coreutils/ls.c
index f11eb43..d5b25ee 100644
--- a/coreutils/ls.c
+++ b/coreutils/ls.c
@@ -1111,7 +1111,7 @@ int ls_main(int argc UNUSED_PARAM, char **argv)
 	IF_FEATURE_LS_COLOR(applet_long_options = ls_longopts;)
 	opt_complementary =
 		/* -e implies -l */
-		"el"
+		IF_FEATURE_LS_TIMESTAMPS("el")
 		/* http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ls.html:
 		 * in some pairs of opts, only last one takes effect:
 		 */
@@ -1121,7 +1121,7 @@ int ls_main(int argc UNUSED_PARAM, char **argv)
 		":C-xl:x-Cl:l-xC" /* bycols/bylines/long */
 		":C-1:1-C" /* bycols/oneline */
 		":x-1:1-x" /* bylines/oneline (not in SuS, but in GNU coreutils 8.4) */
-		":c-u:u-c" /* mtime/atime */
+		IF_FEATURE_LS_TIMESTAMPS(":c-u:u-c") /* mtime/atime */
 		/* -w NUM: */
 		IF_FEATURE_AUTOWIDTH(":w+");
 	opt = getopt32(argv, ls_options
diff --git a/libbb/getopt32.c b/libbb/getopt32.c
index c7c4079..d0e83d8 100644
--- a/libbb/getopt32.c
+++ b/libbb/getopt32.c
@@ -467,13 +467,17 @@ getopt32(char **argv, const char *applet_opts, ...)
 		}
 		for (on_off = complementary; on_off->opt_char; on_off++)
 			if (on_off->opt_char == *s)
-				break;
+				goto found_opt;
+		/* Without this, diagnostic of such bugs is not easy */
+		bb_error_msg_and_die("NO OPT %c!", *s);
+ found_opt:
 		if (c == ':' && s[2] == ':') {
 			on_off->param_type = PARAM_LIST;
 			continue;
 		}
 		if (c == '+' && (s[2] == ':' || s[2] == '\0')) {
 			on_off->param_type = PARAM_INT;
+			s++;
 			continue;
 		}
 		if (c == ':' || c == '\0') {
diff --git a/testsuite/date/date-R-works b/testsuite/date/date-R-works
index d056344..12f9b96 100644
--- a/testsuite/date/date-R-works
+++ b/testsuite/date/date-R-works
@@ -5,4 +5,17 @@ while test x"$dt" = x"$dt1"; do
     dt="`date -R`"
 done
 
-test x"$dt" = x"`busybox date -R`"
+bdt=`busybox date -R`
+bdt=`busybox date -R`
+bdt=`busybox date -R`
+bdt=`busybox date -R`
+bdt=`busybox date -R`
+
+# Wtih !FEATURE_DATE_NANO, that is, with time()
+# instead of clock_gettime(), seconds transition
+# may not happen at _exactly_ the same moment,
+# but can be delayed. Several busybox date -R
+# invocations above are meant to deal with this.
+# (two were enough for me, but I added more just in case).
+
+test x"$dt" = x"$bdt"
diff --git a/testsuite/ls.tests b/testsuite/ls.tests
index e228465..9309d36 100755
--- a/testsuite/ls.tests
+++ b/testsuite/ls.tests
@@ -256,7 +256,8 @@ mkdir ls.testdir || exit 1
 
 # testing "test name" "command" "expected result" "file input" "stdin"
 
-testing "ls symlink_to_dir" \
+test x"$CONFIG_FEATURE_LS_SORTFILES" = x"y" \
+&& testing "ls symlink_to_dir" \
 "touch ls.testdir/A ls.testdir/B; ln -s ls.testdir ls.link; ls ls.link; ls -1 ls.link/; ls -1 ls.link; rm -f ls.link" \
 "A\nB\nA\nB\nA\nB\n" \
 "" ""
diff --git a/testsuite/mount.tests b/testsuite/mount.tests
index 58eeb2e..9ddd587 100755
--- a/testsuite/mount.tests
+++ b/testsuite/mount.tests
@@ -46,6 +46,7 @@ rm mount.image1m
 
 
 # Bug: mount.shared1 directory shows no files (has to show files a and b)
+optional FEATURE_LS_RECURSIVE
 testing "mount bind+rshared" "\
 mkdir -p mount.dir mount.shared1 mount.shared2
 touch mount.dir/a mount.dir/b
@@ -80,5 +81,6 @@ a
 b
 " \
 	"" ""
+SKIP=
 
 exit $FAILCOUNT
diff --git a/testsuite/od.tests b/testsuite/od.tests
index fa47b47..7a9da3e 100755
--- a/testsuite/od.tests
+++ b/testsuite/od.tests
@@ -16,7 +16,7 @@ testing "od -b" \
 	"" "HELLO"
 SKIP=
 
-optional DESKTOP
+optional DESKTOP LONG_OPTS
 testing "od -b --traditional" \
 	"od -b --traditional" \
 "\
@@ -26,7 +26,7 @@ testing "od -b --traditional" \
 	"" "HELLO"
 SKIP=
 
-optional DESKTOP
+optional DESKTOP LONG_OPTS
 testing "od -b --traditional FILE" \
 	"od -b --traditional input" \
 "\
diff --git a/testsuite/tar.tests b/testsuite/tar.tests
index 534135d..39ece5f 100755
--- a/testsuite/tar.tests
+++ b/testsuite/tar.tests
@@ -156,6 +156,7 @@ SKIP=
 
 # Had a bug where on extract autodetect first "switched off" -z
 # and then failed to recognize .tgz extension
+optional FEATURE_TAR_CREATE FEATURE_SEAMLESS_GZ
 testing "tar extract tgz" "\
 dd count=1 bs=1M if=/dev/zero of=F0 2>/dev/null
 tar -czf F0.tgz F0
@@ -167,8 +168,10 @@ F0
 Ok
 " \
 "" ""
+SKIP=
 
 # On extract, everything up to and including last ".." component is stripped
+optional FEATURE_TAR_CREATE
 testing "tar strips /../ on extract" "\
 rm -rf input_* test.tar 2>/dev/null
 mkdir input_dir
@@ -184,6 +187,7 @@ input_dir/file
 Ok
 " \
 "" ""
+SKIP=
 
 
 cd .. && rm -rf tar.tempdir || exit 1
-- 
1.7.3.4



More information about the busybox-cvs mailing list