blob: 4c0b9fa75f7940d162c5ce3cfd2a2b1d6a794092 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
#!/bin/sh
TEST_FILES=`ls *.htt`
TOTAL_TESTS=`echo $TEST_FILES | wc -w`
# Server parameters file
CONFIG_FILE='__CONFIG'
LOGFILE='errors.log'
# Clear log file
:>$LOGFILE
# Should we stop at the first error? (yes | no)
STOP_AT_ERRORS=no
# httest error code for 'Connection refused'
CONN_REFUSED=111
# Enable colors in output :) (yes | no)
WITH_COLOR=yes
# httest command
HTTEST_CMD='httest'
NTEST=1
TESTS_FAILED=0
TESTS_OK=0
TESTS_AVOIDED=0
CHECKLOGS=0
if [ "$1" = "-l" ]; then
CHECKLOGS=1
TOTAL_TESTS=`expr $TOTAL_TESTS \* 2`
fi
for test_file in $TEST_FILES; do
# echo -ne "[TEST $NTEST/$TOTAL_TESTS]\t""case: $test_file\t\t"
printf "[%3d/%d] %-32s " $NTEST $TOTAL_TESTS "$test_file"
OUTPUT=`$HTTEST_CMD "$test_file" 2>&1`
ERRCODE=$?
case $ERRCODE in
0)
TESTS_OK=$((TESTS_OK+1))
[ $WITH_COLOR = yes ] && echo -n "[1;32m"
echo -n "=> [OK]"
[ $WITH_COLOR = yes ] && echo -n "[m"
;;
$CONN_REFUSED)
echo
echo "Connection refused... (Is monkey running?)" >&2
exit $CONN_REFUSED
;;
*)
TESTS_FAILED=$((TESTS_FAILED+1))
[ $WITH_COLOR = yes ] && echo -n "[1;31m"
echo -n "=> [FAILED]"
[ $WITH_COLOR = yes ] && echo -n "[m"
perl -e 'print "-" x 78, "\n"' >>"$LOGFILE"
echo "$OUTPUT" >>"$LOGFILE"
perl -e 'print "-" x 78, "\n"' >>"$LOGFILE"
[ $STOP_AT_ERRORS = yes ] && exit 1
esac
# Check for logfiles rules
NTEST=$((NTEST+1))
if [ $CHECKLOGS = 0 ]; then
echo
continue
fi
echo
test_file=`echo $test_file | sed 's/\.htt/\.log/g'`
printf "[%3d/%d] %-32s " $NTEST $TOTAL_TESTS "$test_file"
if [ ! -e "log_rules/$test_file" ]; then
ERRCODE=2
else
# We need to sleep for a while as Monkey needs to flush
# the logs, that happens every 3 seconds
sleep 2
CHECKLOG=`./checklog -l log_rules/$test_file`
ERRCODE=$?
fi
case $ERRCODE in
0)
[ $WITH_COLOR = yes ] && echo -n "[1;32m"
echo "=> [OK]"
[ $WITH_COLOR = yes ] && echo -n "[m"
TESTS_OK=$((TESTS_OK+1))
;;
1)
[ $WITH_COLOR = yes ] && echo -n "[1;31m"
echo "=> [FAILED]"
echo $CHECKLOG
[ $WITH_COLOR = yes ] && echo -n "[m"
TESTS_FAILED=$((TESTS_FAILED+1))
[ $STOP_AT_ERRORS = yes ] && exit 1
;;
2) [ $WITH_COLOR = yes ] && echo -n "[1;33m"
echo "=> [NO RULES]"
[ $WITH_COLOR = yes ] && echo -n "[m"
TESTS_AVOIDED=$((TESTS_AVOIDED+1))
;;
esac
NTEST=$((NTEST+1))
done
echo -e "\n$TESTS_OK test(s) succeeded, $TESTS_FAILED test(s) failed, $TESTS_AVOIDED test(s) avoided."
|