Added code to handle DragonFly tags in expected results files.
[dragonfly.git] / usr.bin / make / tests / env.sh
1 #!/bin/sh
2
3 # $DragonFly: src/usr.bin/make/tests/Attic/env.sh,v 1.2 2005/02/01 11:19:37 okumoto Exp $
4
5 MAKE=/usr/bin/make
6
7 std_action() {
8         if [ -d $1 ]; then
9                 chmod +x $d/test.sh
10                 (cd $d; ./test.sh $2)
11         else
12                 echo Test directory $1 missing in `pwd`
13         fi
14 }
15
16 #
17 # We can't check a file into cvs without a DragonFly RCS Id tag, so
18 # we need to remove it before we compare. 
19 #
20 hack_cmp() {
21         if [ -f $1 ]; then
22                 cat $1 |\
23                         sed -e '1d' |\
24                         diff -q - $2 \
25                         1> /dev/null 2> /dev/null
26                 return $?
27         else
28                 return 1        # FAIL
29         fi
30 }
31
32 #
33 # We can't check a file into cvs without a DragonFly RCS Id tag, so
34 # we need to remove it before we compare. 
35 #
36 hack_diff() {
37         echo diff $1 $2
38         if [ -f $1 ]; then
39                 cat $1 |\
40                         sed -e '1d' |\
41                         diff - $2
42                 return $?
43         else
44                 return 1        # FAIL
45         fi
46 }
47
48 std_compare() {
49         hack_cmp expected.stdout stdout || FAIL="stdout "$FAIL
50         hack_cmp expected.stderr stderr || FAIL="stderr "$FAIL
51         hack_cmp expected.status status || FAIL="status "$FAIL
52
53         if [ -z "$FAIL" ]; then
54                 :
55         else
56                 echo "Test failed ( $FAIL) `pwd`"
57         fi
58 }
59
60 std_diff() {
61         $0 test
62         echo "------------------------"
63         echo "- `pwd`"
64         echo "------------------------"
65         hack_diff expected.stdout stdout
66         hack_diff expected.stderr stderr
67         hack_diff expected.status status
68 }
69
70 std_update() {
71         $0 test
72         [ -f expected.stdout ] || echo '$'DragonFly'$' > expected.stdout
73         [ -f expected.stderr ] || echo '$'DragonFly'$' > expected.stderr
74         [ -f expected.status ] || echo '$'DragonFly'$' > expected.status
75         sed -e '2,$d' < expected.stdout > new.expected.stdout
76         sed -e '2,$d' < expected.stderr > new.expected.stderr
77         sed -e '2,$d' < expected.status > new.expected.status
78         cat stdout >> new.expected.stdout
79         cat stderr >> new.expected.stderr
80         cat status >> new.expected.status
81         mv new.expected.stdout expected.stdout
82         mv new.expected.stderr expected.stderr
83         mv new.expected.status expected.status
84 }
85
86 std_clean() {
87         rm -f Makefile
88         rm -f stdout
89         rm -f stderr
90         rm -f status
91 }
92
93 std_run() {
94         $0 test
95         $0 compare
96         $0 clean
97 }
98