freebsd-skq/tools/regression/bin/sh/expansion/arith1.0
jilles 5633dfdd79 sh: arith: Return only 0 and 1 from && and ||.
This agrees with C, POSIX and other shells.
2009-12-30 15:59:40 +00:00

31 lines
431 B
Plaintext

# $FreeBSD$
failures=0
check() {
if [ $(($1)) != $2 ]; then
failures=$((failures+1))
echo "For $1, expected $2 actual $(($1))"
fi
}
check "0&&0" 0
check "1&&0" 0
check "0&&1" 0
check "1&&1" 1
check "2&&2" 1
check "1&&2" 1
check "1<<40&&1<<40" 1
check "1<<40&&4" 1
check "0||0" 0
check "1||0" 1
check "0||1" 1
check "1||1" 1
check "2||2" 1
check "1||2" 1
check "1<<40||1<<40" 1
check "1<<40||4" 1
exit $((failures != 0))