Browse Source

busybox: 1.14.2 test fix

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Peter Korsgaard 16 năm trước cách đây
mục cha
commit
214da03d14
1 tập tin đã thay đổi với 64 bổ sung0 xóa
  1. 64 0
      package/busybox/busybox-1.14.2-test.patch

+ 64 - 0
package/busybox/busybox-1.14.2-test.patch

@@ -0,0 +1,64 @@
+diff -urpN busybox-1.14.2/coreutils/test.c busybox-1.14.2-test/coreutils/test.c
+--- busybox-1.14.2/coreutils/test.c	2009-07-05 22:59:28.000000000 +0200
++++ busybox-1.14.2-test/coreutils/test.c	2009-07-17 01:46:28.000000000 +0200
+@@ -571,7 +571,14 @@ static number_t nexpr(enum token n)
+ 
+ 	nest_msg(">nexpr(%s)\n", TOKSTR[n]);
+ 	if (n == UNOT) {
+-		res = !nexpr(check_operator(*++args));
++		n = check_operator(*++args);
++		if (n == EOI) {
++			/* special case: [ ! ], [ a -a ! ] are valid */
++			/* IOW, "! ARG" may miss ARG */
++			unnest_msg("<nexpr:1 (!EOI)\n");
++			return 1;
++		}
++		res = !nexpr(n);
+ 		unnest_msg("<nexpr:%lld\n", res);
+ 		return res;
+ 	}
+@@ -742,7 +749,7 @@ int test_main(int argc, char **argv)
+ 		check_operator(argv[1]);
+ 		if (last_operator->op_type == BINOP) {
+ 			/* "test [!] arg1 <binary_op> arg2" */
+-			args = &argv[0];
++			args = argv;
+ 			res = (binop() == 0);
+ 			goto ret;
+ 		}
+@@ -755,7 +762,7 @@ int test_main(int argc, char **argv)
+ 		argv--;
+ 	}
+ #endif
+-	args = &argv[0];
++	args = argv;
+ 	res = !oexpr(check_operator(*args));
+ 
+ 	if (*args != NULL && *++args != NULL) {
+diff -urpN busybox-1.14.2/testsuite/test.tests busybox-1.14.2-test/testsuite/test.tests
+--- busybox-1.14.2/testsuite/test.tests	2009-07-05 22:59:22.000000000 +0200
++++ busybox-1.14.2-test/testsuite/test.tests	2009-07-17 01:46:28.000000000 +0200
+@@ -21,6 +21,11 @@ testing "test '': should be false (1)" \
+ 	"1\n" \
+ 	"" ""
+ 
++testing "test !: should be true (0)" \
++	"busybox test !; echo \$?" \
++	"0\n" \
++	"" ""
++
+ testing "test a: should be true (0)" \
+ 	"busybox test a; echo \$?" \
+ 	"0\n" \
+@@ -51,6 +56,11 @@ testing "test -lt = -gt: should be false
+ 	"1\n" \
+ 	"" ""
+ 
++testing "test a -a !: should be true (0)" \
++	"busybox test a -a !; echo \$?" \
++	"0\n" \
++	"" ""
++
+ testing "test -f = a -o b: should be true (0)" \
+ 	"busybox test -f = a -o b; echo \$?" \
+ 	"0\n" \