You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ch...@apache.org on 2016/10/10 20:18:59 UTC
[4/6] qpid-dispatch git commit: DISPATCH-451: Test connector config
settings; Fix setting descriptions
DISPATCH-451: Test connector config settings; Fix setting descriptions
The logic behind the config settings for listeners and connectors is
the same. Add tests to verify that connector settings are propagated
over the wire.
Clarify how maxSessionFrames may be adjusted when the product of
maxFrameSize and maxSessionFrames exceeds 2^31-1.
Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/d5e02b8d
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/d5e02b8d
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/d5e02b8d
Branch: refs/heads/master
Commit: d5e02b8d7084343fe47873cba4e8bfba66dd1b37
Parents: f1dbfbf
Author: Chuck Rolke <cr...@redhat.com>
Authored: Mon Oct 10 11:13:44 2016 -0400
Committer: Chuck Rolke <cr...@redhat.com>
Committed: Mon Oct 10 11:13:44 2016 -0400
----------------------------------------------------------------------
python/qpid_dispatch/management/qdrouter.json | 4 +-
tests/system_tests_protocol_settings.py | 109 +++++++++++++++++++++
2 files changed, 111 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d5e02b8d/python/qpid_dispatch/management/qdrouter.json
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch/management/qdrouter.json b/python/qpid_dispatch/management/qdrouter.json
index c57a3c1..a748dbf 100644
--- a/python/qpid_dispatch/management/qdrouter.json
+++ b/python/qpid_dispatch/management/qdrouter.json
@@ -620,7 +620,7 @@
},
"maxSessionFrames": {
"type": "integer",
- "description": "Session incoming window measured in transfer frames for sessions created on this connection. This is the number of transfer frames that may simultaneously be in flight for all links in the session. Setting this value to zero selects the default session window size. Policy settings, if specified, will overwrite this value. Defaults to 100.",
+ "description": "Session incoming window measured in transfer frames for sessions created on this connection. This is the number of transfer frames that may simultaneously be in flight for all links in the session. Setting this value to zero selects the default session window size. Policy settings, if specified, will overwrite this value. The numerical product of maxFrameSize and maxSessionFrames may not exceed 2^31-1. If (maxFrameSize x maxSessionFrames) exceeds 2^31-1 then maxSessionFrames is reduced to (2^31-1 / maxFrameSize). maxSessionFrames has a minimum value of 1. Defaults to 100.",
"default": 100,
"required": false,
"create": true
@@ -746,7 +746,7 @@
},
"maxSessionFrames": {
"type": "integer",
- "description": "Session incoming window measured in transfer frames for sessions created on this connection. This is the number of transfer frames that may simultaneously be in flight for all links in the session. Setting this value to zero selects the default session window size. Policy settings will not overwrite this value. Defaults to 100.",
+ "description": "Session incoming window measured in transfer frames for sessions created on this connection. This is the number of transfer frames that may simultaneously be in flight for all links in the session. Setting this value to zero selects the default session window size. Policy settings will not overwrite this value. The numerical product of maxFrameSize and maxSessionFrames may not exceed 2^31-1. If (maxFrameSize x maxSessionFrames) exceeds 2^31-1 then maxSessionFrames is reduced to (2^31-1 / maxFrameSize). maxSessionFrames has a minimum value of 1. Defaults to 100.",
"default": 100,
"required": false,
"create": true
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d5e02b8d/tests/system_tests_protocol_settings.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_protocol_settings.py b/tests/system_tests_protocol_settings.py
index 79f2f03..233b9f3 100644
--- a/tests/system_tests_protocol_settings.py
+++ b/tests/system_tests_protocol_settings.py
@@ -312,5 +312,114 @@ class MaxFrameMaxSessionFramesZeroTest(TestCase):
self.assertTrue(" incoming-window=1," in begin_lines[0])
+class ConnectorSettingsDefaultTest(TestCase):
+ """
+ The internal logic for protocol settings in listener and connector
+ is common code. This test makes sure that defaults in the connector
+ config make it to the wire.
+ """
+ inter_router_port = None
+
+ @staticmethod
+ def ssl_config(client_server, connection):
+ return [] # Over-ridden by RouterTestSsl
+
+ @classmethod
+ def setUpClass(cls):
+ """Start two routers"""
+ super(ConnectorSettingsDefaultTest, cls).setUpClass()
+
+ def router(name, client_server, connection):
+ config = cls.ssl_config(client_server, connection) + [
+ ('router', {'mode': 'interior', 'id': 'QDR.%s' % name}),
+
+ ('listener', {'port': cls.tester.get_port()}),
+ connection
+ ]
+
+ config = Qdrouterd.Config(config)
+
+ cls.routers.append(cls.tester.qdrouterd(name, config, wait=True))
+
+ cls.routers = []
+
+ inter_router_port = cls.tester.get_port()
+
+ router('A', 'server',
+ ('listener', {'role': 'inter-router', 'port': inter_router_port}))
+ router('B', 'client',
+ ('connector', {'name': 'connectorToA', 'role': 'inter-router', 'port': inter_router_port,
+ 'verifyHostName': 'no'}))
+
+ cls.routers[0].wait_router_connected('QDR.B')
+ cls.routers[1].wait_router_connected('QDR.A')
+
+ def test_connector_default(self):
+ with open('../setUpClass/A.log', 'r') as router_log:
+ log_lines = router_log.read().split("\n")
+ open_lines = [s for s in log_lines if "<- @open" in s]
+ # defaults
+ self.assertTrue(' max-frame-size=16384,' in open_lines[0])
+ self.assertTrue(' channel-max=32767,' in open_lines[0])
+ begin_lines = [s for s in log_lines if "<- @begin" in s]
+ # defaults
+ self.assertTrue(" incoming-window=100," in begin_lines[0])
+
+
+class ConnectorSettingsNondefaultTest(TestCase):
+ """
+ The internal logic for protocol settings in listener and connector
+ is common code. This test makes sure that settings in the connector
+ config make it to the wire. The listener tests test the setting logic.
+ """
+ inter_router_port = None
+
+ @staticmethod
+ def ssl_config(client_server, connection):
+ return [] # Over-ridden by RouterTestSsl
+
+ @classmethod
+ def setUpClass(cls):
+ """Start two routers"""
+ super(ConnectorSettingsNondefaultTest, cls).setUpClass()
+
+ def router(name, client_server, connection):
+ config = cls.ssl_config(client_server, connection) + [
+ ('router', {'mode': 'interior', 'id': 'QDR.%s' % name}),
+
+ ('listener', {'port': cls.tester.get_port()}),
+ connection
+ ]
+
+ config = Qdrouterd.Config(config)
+
+ cls.routers.append(cls.tester.qdrouterd(name, config, wait=True))
+
+ cls.routers = []
+
+ inter_router_port = cls.tester.get_port()
+
+ router('A', 'server',
+ ('listener', {'role': 'inter-router', 'port': inter_router_port}))
+ router('B', 'client',
+ ('connector', {'name': 'connectorToA', 'role': 'inter-router', 'port': inter_router_port,
+ 'maxFrameSize': '2048', 'maxSessionFrames': '10', 'maxSessions': '20',
+ 'verifyHostName': 'no'}))
+
+ cls.routers[0].wait_router_connected('QDR.B')
+ cls.routers[1].wait_router_connected('QDR.A')
+
+ def test_connector_default(self):
+ with open('../setUpClass/A.log', 'r') as router_log:
+ log_lines = router_log.read().split("\n")
+ open_lines = [s for s in log_lines if "<- @open" in s]
+ # nondefaults
+ self.assertTrue(' max-frame-size=2048,' in open_lines[0])
+ self.assertTrue(' channel-max=19,' in open_lines[0])
+ begin_lines = [s for s in log_lines if "<- @begin" in s]
+ # nondefaults
+ self.assertTrue(" incoming-window=10," in begin_lines[0])
+
+
if __name__ == '__main__':
unittest.main(main_module())
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org