/[jscoverage]/trunk/tests/server-bad-requests.sh
ViewVC logotype

Annotation of /trunk/tests/server-bad-requests.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 274 - (hide annotations)
Sat Oct 11 22:37:47 2008 UTC (11 years, 8 months ago) by siliconforks
File MIME type: application/x-sh
File size: 3257 byte(s)
Prevent test from writing output.
1 siliconforks 251 #!/bin/sh
2     # server-bad-requests.sh - test jscoverage-server with bad requests
3     # Copyright (C) 2008 siliconforks.com
4     #
5     # This program is free software; you can redistribute it and/or modify
6     # it under the terms of the GNU General Public License as published by
7     # the Free Software Foundation; either version 2 of the License, or
8     # (at your option) any later version.
9     #
10     # This program is distributed in the hope that it will be useful,
11     # but WITHOUT ANY WARRANTY; without even the implied warranty of
12     # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13     # GNU General Public License for more details.
14     #
15     # You should have received a copy of the GNU General Public License along
16     # with this program; if not, write to the Free Software Foundation, Inc.,
17     # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18    
19     set -e
20    
21     shutdown() {
22     wget -q -O- --post-data= "http://127.0.0.1:${server_port}/jscoverage-shutdown" > /dev/null
23     wait $server_pid
24     }
25    
26     cleanup() {
27     shutdown
28     rm -fr EXPECTED ACTUAL OUT ERR
29     }
30    
31     trap 'cleanup' 0 1 2 3 15
32    
33     export PATH=.:..:$PATH
34    
35     if [ -z "$VALGRIND" ]
36     then
37     delay=0.2
38     else
39     delay=2
40     fi
41    
42     rm -fr EXPECTED ACTUAL OUT ERR
43     $VALGRIND jscoverage-server --port 8000 > /dev/null 2> /dev/null &
44     server_pid=$!
45     server_port=8000
46    
47     sleep $delay
48    
49 siliconforks 274 if `which netcat > /dev/null 2> /dev/null`
50 siliconforks 261 then
51     NETCAT=netcat
52     elif which nc
53     then
54     NETCAT=nc
55     else
56     # skip test
57     exit 77
58     fi
59    
60 siliconforks 251 bad_request() {
61 siliconforks 261 /bin/echo -ne "$1" | $NETCAT 127.0.0.1 $server_port > OUT 2> ERR
62 siliconforks 251 echo 'HTTP/1.1 400 Bad Request' > EXPECTED
63     head -n 1 OUT > ACTUAL
64     diff --strip-trailing-cr EXPECTED ACTUAL
65     }
66    
67     # send NUL in Request-Line
68     bad_request 'GET \0000 HTTP/1.1\r\n\r\n'
69    
70     # send empty Request-Line
71     bad_request '\r\n\r\n'
72    
73     # send bad Request-Line
74     bad_request ' \r\n\r\n'
75     bad_request 'GET\r\n\r\n'
76     bad_request 'GET \r\n\r\n'
77     bad_request 'GET \r\n\r\n'
78     bad_request 'GET /\r\n\r\n'
79     bad_request 'GET / \r\n\r\n'
80    
81     # bad Host header
82     bad_request 'GET / HTTP/1.1\r\nConnection: close\r\nHost: foo:bar\r\n\r\n'
83    
84     # NUL in header
85     bad_request 'GET / HTTP/1.1\r\nConnection: close\r\nFoo: \0000\r\n\r\n'
86    
87     # missing header
88     bad_request 'GET / HTTP/1.1\r\nConnection: close\r\n: bar\r\n\r\n'
89    
90     # missing header value
91     bad_request 'GET / HTTP/1.1\r\nConnection: close\r\nFoo:\r\n\r\n'
92    
93     # bad Transfer-Encoding
94     bad_request 'GET / HTTP/1.1\r\nConnection: close\r\nTransfer-Encoding: foo;\r\n\r\n'
95     bad_request 'GET / HTTP/1.1\r\nConnection: close\r\nTransfer-Encoding: foo; bar\r\n\r\n'
96     bad_request 'GET / HTTP/1.1\r\nConnection: close\r\nTransfer-Encoding: foo; bar = "\r\n\r\n'
97     bad_request 'GET / HTTP/1.1\r\nConnection: close\r\nTransfer-Encoding: foo; bar = "\r\n\r\n'
98     bad_request 'GET / HTTP/1.1\r\nConnection: close\r\nTransfer-Encoding: foo; bar = "\\\0200"\r\n\r\n'
99     bad_request 'GET / HTTP/1.1\r\nConnection: close\r\nTransfer-Encoding: foo; bar = "\0177"\r\n\r\n'
100     bad_request 'GET / HTTP/1.1\r\nConnection: close\r\nTransfer-Encoding: foo; bar = ;\r\n\r\n'
101    
102     # bad Content-Length
103     bad_request 'GET / HTTP/1.1\r\nConnection: close\r\nContent-Length: 4294967296\r\n\r\n'
104     bad_request 'GET / HTTP/1.1\r\nConnection: close\r\nContent-Length: 4294967300\r\n\r\n'
105     bad_request 'GET / HTTP/1.1\r\nConnection: close\r\nContent-Length: foo\r\n\r\n'

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.24