aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_fuzzing.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_fuzzing.py')
-rw-r--r--test/test_fuzzing.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/test_fuzzing.py b/test/test_fuzzing.py
new file mode 100644
index 00000000..ba7b751c
--- /dev/null
+++ b/test/test_fuzzing.py
@@ -0,0 +1,39 @@
+import tservers
+
+"""
+ A collection of errors turned up by fuzzing. Errors are integrated here
+ after being fixed to check for regressions.
+"""
+
+class TestFuzzy(tservers.HTTPProxTest):
+ def test_idna_err(self):
+ req = r'get:"http://localhost:%s":i10,"\xc6"'
+ p = self.pathoc()
+ assert p.request(req%self.server.port).status_code == 400
+
+ def test_nullbytes(self):
+ req = r'get:"http://localhost:%s":i19,"\x00"'
+ p = self.pathoc()
+ assert p.request(req%self.server.port).status_code == 400
+
+ def test_invalid_ports(self):
+ req = 'get:"http://localhost:999999"'
+ p = self.pathoc()
+ assert p.request(req).status_code == 400
+
+ def test_invalid_ipv6_url(self):
+ req = 'get:"http://localhost:%s":i13,"["'
+ p = self.pathoc()
+ assert p.request(req%self.server.port).status_code == 400
+
+ def test_invalid_upstream(self):
+ req = r"get:'http://localhost:%s/p/200:i10,\'+\''"
+ p = self.pathoc()
+ assert p.request(req%self.server.port).status_code == 502
+
+ def test_upstream_disconnect(self):
+ req = r'200:d0:h"Date"="Sun, 03 Mar 2013 04:00:00 GMT"'
+ p = self.pathod(req)
+ assert p.status_code == 400
+
+