sh: Split off some special behavior into separate regress tests.
[dragonfly.git] / tools / regression / bin / sh / builtins / builtin1.0
1 # $FreeBSD: src/tools/regression/bin/sh/builtins/builtin1.0,v 1.1 2010/01/03 15:01:38 jilles Exp $
2
3 failures=0
4
5 check() {
6         if ! eval "[ $* ]"; then
7                 echo "Failed: $*"
8                 : $((failures += 1))
9         fi
10 }
11
12 builtin : || echo "Bad return code at $LINENO"
13 builtin true || echo "Bad return code at $LINENO"
14 builtin ls 2>/dev/null && echo "Bad return code at $LINENO"
15 check '"$(builtin pwd)" = "$(pwd)"'
16 check '-z "$(builtin :)"'
17 check '-z "$(builtin true)"'
18 check '-z "$( (builtin nosuchtool) 2>/dev/null)"'
19 check '-z "$(builtin nosuchtool 2>/dev/null)"'
20 check '-z "$(builtin nosuchtool 2>/dev/null; :)"'
21 check '-z "$( (builtin ls) 2>/dev/null)"'
22 check '-z "$(builtin ls 2>/dev/null)"'
23 check '-z "$(builtin ls 2>/dev/null; :)"'
24 check '-n "$( (builtin nosuchtool) 2>&1)"'
25 check '-n "$(builtin nosuchtool 2>&1)"'
26 check '-n "$(builtin nosuchtool 2>&1; :)"'
27 check '-n "$( (builtin ls) 2>&1)"'
28 check '-n "$(builtin ls 2>&1)"'
29 check '-n "$(builtin ls 2>&1; :)"'
30
31 exit $((failures > 0))