mirror of
https://github.com/emikulic/darkhttpd.git
synced 2023-08-10 21:13:08 +03:00
Torture test: send and recv one byte at a time to make sure darkhttpd's
buffering is up to scratch.
This commit is contained in:
parent
ab1204f700
commit
af7d21c31e
41
torture.py
Executable file
41
torture.py
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
import sys, socket
|
||||||
|
|
||||||
|
request = (
|
||||||
|
'GET /AUTHORS HTTP/1.0\r\n'
|
||||||
|
'\r\n'
|
||||||
|
)
|
||||||
|
|
||||||
|
s = socket.socket()
|
||||||
|
s.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
|
||||||
|
s.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, 1)
|
||||||
|
#s.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 1)
|
||||||
|
#^ for some reason, this un-cripples the receiving buffer
|
||||||
|
try:
|
||||||
|
s.connect(("", 8089))
|
||||||
|
except socket.error, e:
|
||||||
|
print "ERROR: darkhttpd not running?"
|
||||||
|
print "Run: cd trunk && ./darkhttpd . --port 8089"
|
||||||
|
print ""
|
||||||
|
raise e
|
||||||
|
|
||||||
|
print "(start sending)"
|
||||||
|
|
||||||
|
for i in request:
|
||||||
|
numsent = s.send(i)
|
||||||
|
if numsent != 1:
|
||||||
|
raise Exception, "couldn't send"
|
||||||
|
sys.stdout.write(i)
|
||||||
|
sys.stdout.flush()
|
||||||
|
|
||||||
|
print "(done sending - start receiving)"
|
||||||
|
|
||||||
|
while True:
|
||||||
|
c = s.recv(1)
|
||||||
|
if c == '':
|
||||||
|
print "(done receiving)"
|
||||||
|
break
|
||||||
|
sys.stdout.write(c)
|
||||||
|
sys.stdout.flush()
|
||||||
|
|
||||||
|
# vim:set sw=4 ts=4 et tw=78:
|
Loading…
Reference in New Issue
Block a user