mirror of
https://github.com/sheumann/hush.git
synced 2025-01-14 12:30:40 +00:00
test: fix "test !" and "test abc -a !". closes bug 465
function old new delta nexpr 826 840 +14 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
fff73641e4
commit
d23f64eba7
@ -627,7 +627,14 @@ static number_t nexpr(enum token n)
|
|||||||
|
|
||||||
nest_msg(">nexpr(%s)\n", TOKSTR[n]);
|
nest_msg(">nexpr(%s)\n", TOKSTR[n]);
|
||||||
if (n == UNOT) {
|
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);
|
unnest_msg("<nexpr:%lld\n", res);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
@ -798,7 +805,7 @@ int test_main(int argc, char **argv)
|
|||||||
check_operator(argv[1]);
|
check_operator(argv[1]);
|
||||||
if (last_operator->op_type == BINOP) {
|
if (last_operator->op_type == BINOP) {
|
||||||
/* "test [!] arg1 <binary_op> arg2" */
|
/* "test [!] arg1 <binary_op> arg2" */
|
||||||
args = &argv[0];
|
args = argv;
|
||||||
res = (binop() == 0);
|
res = (binop() == 0);
|
||||||
goto ret;
|
goto ret;
|
||||||
}
|
}
|
||||||
@ -811,7 +818,7 @@ int test_main(int argc, char **argv)
|
|||||||
argv--;
|
argv--;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
args = &argv[0];
|
args = argv;
|
||||||
res = !oexpr(check_operator(*args));
|
res = !oexpr(check_operator(*args));
|
||||||
|
|
||||||
if (*args != NULL && *++args != NULL) {
|
if (*args != NULL && *++args != NULL) {
|
||||||
|
@ -21,6 +21,11 @@ testing "test '': should be false (1)" \
|
|||||||
"1\n" \
|
"1\n" \
|
||||||
"" ""
|
"" ""
|
||||||
|
|
||||||
|
testing "test !: should be true (0)" \
|
||||||
|
"busybox test !; echo \$?" \
|
||||||
|
"0\n" \
|
||||||
|
"" ""
|
||||||
|
|
||||||
testing "test a: should be true (0)" \
|
testing "test a: should be true (0)" \
|
||||||
"busybox test a; echo \$?" \
|
"busybox test a; echo \$?" \
|
||||||
"0\n" \
|
"0\n" \
|
||||||
@ -51,6 +56,11 @@ testing "test -lt = -gt: should be false (1)" \
|
|||||||
"1\n" \
|
"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)" \
|
testing "test -f = a -o b: should be true (0)" \
|
||||||
"busybox test -f = a -o b; echo \$?" \
|
"busybox test -f = a -o b; echo \$?" \
|
||||||
"0\n" \
|
"0\n" \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user