Repository: trafficserver
Updated Branches:
  refs/heads/master 778b952d9 -> e709f7c08


Fix KA check for chunked responses by tracking a conn-id


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/74ddc5e2
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/74ddc5e2
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/74ddc5e2

Branch: refs/heads/master
Commit: 74ddc5e2490d622258975cfe75a090336e596e30
Parents: 778b952
Author: Thomas Jackson <[email protected]>
Authored: Fri Apr 24 08:29:45 2015 -0700
Committer: Thomas Jackson <[email protected]>
Committed: Sun Apr 26 19:12:57 2015 -0700

----------------------------------------------------------------------
 ci/new_tsqa/tests/test_chunked.py | 34 ++++++++++++++++++++++------------
 1 file changed, 22 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/74ddc5e2/ci/new_tsqa/tests/test_chunked.py
----------------------------------------------------------------------
diff --git a/ci/new_tsqa/tests/test_chunked.py 
b/ci/new_tsqa/tests/test_chunked.py
index 8302869..16a2b77 100644
--- a/ci/new_tsqa/tests/test_chunked.py
+++ b/ci/new_tsqa/tests/test_chunked.py
@@ -23,6 +23,7 @@ import time
 import logging
 import json
 import threading
+import uuid
 
 import helpers
 
@@ -45,6 +46,7 @@ class ChunkedHandler(SocketServer.BaseRequestHandler):
 
     def handle(self):
         # Receive the data in small chunks and retransmit it
+        conn_id = uuid.uuid4().hex
         while True:
             data = self.request.recv(4096).strip()
             if data:
@@ -67,6 +69,7 @@ class ChunkedHandler(SocketServer.BaseRequestHandler):
                     close = json.loads(uri_parts[2])
 
             resp = ('HTTP/1.1 200 OK\r\n'
+                    'X-Conn-Id: ' + str(conn_id) + '\r\n'
                     'Transfer-Encoding: chunked\r\n'
                     '\r\n')
             self.request.sendall(resp)
@@ -79,8 +82,6 @@ class ChunkedHandler(SocketServer.BaseRequestHandler):
                 self.request.sendall('lkfjasd;lfjas;d')
 
             time.sleep(2)
-            self.request.close()
-            return
 
 class TestChunked(helpers.EnvironmentCase):
     @classmethod
@@ -110,16 +111,23 @@ class TestChunked(helpers.EnvironmentCase):
         '''
         Test that the origin does in fact support keepalive
         '''
-        url = 'http://127.0.0.1:{0}/'.format(self.port)
-        self.assertEqual(requests.get(url).text, '01234')
-
-        url = 'http://127.0.0.1:{0}/2'.format(self.port)
-        self.assertEqual(requests.get(url).text, '01')
-
-        url = 'http://127.0.0.1:{0}/2/1'.format(self.port)
-        start = time.time()
-        self.assertEqual(requests.get(url).text, '01')
-        self.assertTrue(time.time() - start > 2)
+        with requests.Session() as s:
+            url = 'http://127.0.0.1:{0}/'.format(self.port)
+            ret = s.get(url)
+            conn_id = ret.headers['x-conn-id']
+            self.assertEqual(ret.text, '01234')
+
+            url = 'http://127.0.0.1:{0}/2'.format(self.port)
+            ret = s.get(url)
+            self.assertEqual(ret.text, '01')
+            self.assertEqual(ret.headers['x-conn-id'], conn_id)
+
+            url = 'http://127.0.0.1:{0}/2/1'.format(self.port)
+            start = time.time()
+            ret = s.get(url)
+            self.assertEqual(ret.text, '01')
+            self.assertEqual(ret.headers['x-conn-id'], conn_id)
+            self.assertTrue(time.time() - start > 2)
 
     def test_chunked_basic(self):
         url = 'http://127.0.0.1:{0}'.format(self.port)
@@ -131,6 +139,7 @@ class TestChunked(helpers.EnvironmentCase):
     def test_chunked_keepalive(self):
         url = 'http://127.0.0.1:{0}'.format(self.port)
         ret = requests.get(url, proxies=self.proxies)
+        conn_id = ret.headers['x-conn-id']
         self.assertEqual(ret.status_code, 200)
         self.assertEqual(ret.text.strip(), '01234')
 
@@ -139,6 +148,7 @@ class TestChunked(helpers.EnvironmentCase):
         ret = requests.get(url, proxies=self.proxies)
         self.assertEqual(ret.status_code, 200)
         self.assertEqual(ret.text.strip(), '01234')
+        self.assertEqual(conn_id, ret.headers['x-conn-id'])
 
     def test_chunked_bad_close(self):
         url = 'http://127.0.0.1:{0}/5/0.1/false'.format(self.port)

Reply via email to