mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-02-11 14:17:27 -08:00
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
129 lines
4.0 KiB
Diff
129 lines
4.0 KiB
Diff
https://bitbucket.org/nikratio/python-dugong/commits/0e9d67700bc8
|
|
diff --git a/test/test_dugong.py b/test/test_dugong.py
|
|
--- a/test/test_dugong.py
|
|
+++ b/test/test_dugong.py
|
|
@@ -99,6 +99,12 @@
|
|
request.addfinalizer(conn.disconnect)
|
|
return conn
|
|
|
|
+@pytest.fixture()
|
|
+def random_fh(request):
|
|
+ fh = open('/dev/urandom', 'rb')
|
|
+ request.addfinalizer(fh.close)
|
|
+ return fh
|
|
+
|
|
def check_http_connection():
|
|
'''Skip test if we can't connect to ssl test server'''
|
|
|
|
@@ -170,12 +176,12 @@
|
|
conn.get_ssl_cipher()
|
|
conn.get_ssl_peercert()
|
|
|
|
-def test_blocking_send(conn):
|
|
+def test_blocking_send(conn, random_fh):
|
|
# Send requests until we block because all TCP buffers are full
|
|
|
|
- path = '/send_100_1200-byte_chunks'
|
|
+ path = '/send_102400_random_bytes'
|
|
for count in itertools.count():
|
|
- crt = conn.co_send_request('GET', path, body=DUMMY_DATA[:8192])
|
|
+ crt = conn.co_send_request('GET', path, body=random_fh.read(8192))
|
|
flag = False
|
|
for io_req in crt:
|
|
if not io_req.poll(1):
|
|
@@ -539,7 +545,7 @@
|
|
conn.read_response()
|
|
conn.readall()
|
|
|
|
-def test_aborted_write1(conn, monkeypatch):
|
|
+def test_aborted_write1(conn, monkeypatch, random_fh):
|
|
BUFSIZE = 64*1024
|
|
|
|
# Monkeypatch request handler
|
|
@@ -562,14 +568,14 @@
|
|
# Try to write data
|
|
with pytest.raises(ConnectionClosed):
|
|
for _ in range(50):
|
|
- conn.write(b'f' * BUFSIZE)
|
|
+ conn.write(random_fh.read(BUFSIZE))
|
|
|
|
# Nevertheless, try to read response
|
|
resp = conn.read_response()
|
|
assert resp.status == 401
|
|
assert resp.reason == 'Please stop!'
|
|
|
|
-def test_aborted_write2(conn, monkeypatch):
|
|
+def test_aborted_write2(conn, monkeypatch, random_fh):
|
|
BUFSIZE = 64*1024
|
|
|
|
# Monkeypatch request handler
|
|
@@ -590,7 +596,7 @@
|
|
# Try to write data
|
|
with pytest.raises(ConnectionClosed):
|
|
for _ in range(50):
|
|
- conn.write(b'f' * BUFSIZE)
|
|
+ conn.write(random_fh.read(BUFSIZE))
|
|
|
|
# Nevertheless, try to read response
|
|
assert_raises(ConnectionClosed, conn.read_response)
|
|
@@ -716,12 +722,13 @@
|
|
assert conn.read(50) == b'x' * 25
|
|
assert_raises(dugong.ConnectionTimedOut, conn.read, 50)
|
|
|
|
-def test_send_timeout(conn, monkeypatch):
|
|
+def test_send_timeout(conn, monkeypatch, random_fh):
|
|
conn.timeout = 1
|
|
|
|
def do_PUT(self):
|
|
# Read just a tiny bit
|
|
self.rfile.read(256)
|
|
+ time.sleep(2*conn.timeout)
|
|
monkeypatch.setattr(MockRequestHandler, 'do_PUT', do_PUT)
|
|
|
|
# We don't know how much data can be buffered, so we
|
|
@@ -730,7 +737,7 @@
|
|
conn.send_request('PUT', '/recv_something', body=BodyFollowing(len_))
|
|
with pytest.raises(dugong.ConnectionTimedOut):
|
|
while len_ > 0:
|
|
- conn.write(b'x' * min(len_, 16*1024))
|
|
+ conn.write(random_fh.read(min(len_, 16*1024)))
|
|
|
|
|
|
DUMMY_DATA = ','.join(str(x) for x in range(10000)).encode()
|
|
@@ -743,6 +750,14 @@
|
|
def log_message(self, format, *args):
|
|
pass
|
|
|
|
+ def setup(self):
|
|
+ super().setup()
|
|
+ self.random_fh = open('/dev/urandom', 'rb')
|
|
+
|
|
+ def finish(self):
|
|
+ super().finish()
|
|
+ self.random_fh.close()
|
|
+
|
|
def handle_expect_100(self):
|
|
if self.handle_errors():
|
|
return
|
|
@@ -782,14 +797,17 @@
|
|
self.wfile.close()
|
|
return
|
|
|
|
- hit = re.match(r'^/send_([0-9]+)_bytes', self.path)
|
|
+ hit = re.match(r'^/send_([0-9]+)_(random_)?bytes', self.path)
|
|
if hit:
|
|
len_ = int(hit.group(1))
|
|
self.send_response(200)
|
|
self.send_header("Content-Type", 'application/octet-stream')
|
|
self.send_header("Content-Length", str(len_))
|
|
self.end_headers()
|
|
- self.wfile.write(DUMMY_DATA[:len_])
|
|
+ if hit.group(2):
|
|
+ self.wfile.write(self.random_fh.read(len_))
|
|
+ else:
|
|
+ self.wfile.write(DUMMY_DATA[:len_])
|
|
return
|
|
|
|
hit = re.match(r'^/send_([0-9]+)_([0-9]+)-byte_chunks(?:_delay_([0-9]+)_ms)?',
|
|
|