You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sa...@apache.org on 2019/10/10 08:29:27 UTC
[cassandra-dtest] branch master updated: Add cqlsh test for
protocol negotiation
This is an automated email from the ASF dual-hosted git repository.
samt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cassandra-dtest.git
The following commit(s) were added to refs/heads/master by this push:
new 9ca95e1 Add cqlsh test for protocol negotiation
9ca95e1 is described below
commit 9ca95e115fda079fa6e5e1f71663484f0328698a
Author: Sam Tunnicliffe <sa...@beobal.com>
AuthorDate: Tue Jul 9 16:58:24 2019 +0100
Add cqlsh test for protocol negotiation
Also, disable automatic protocol version capping for batch_test
Patch by Sam Tunnicliffe; reviewed by Alex Petrov for CASSANDRA-15193
closes #54
---
batch_test.py | 2 +-
cqlsh_tests/test_cqlsh.py | 37 +++++++++++++++++++++++++++++++++++++
2 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/batch_test.py b/batch_test.py
index 48b6d87..586d888 100644
--- a/batch_test.py
+++ b/batch_test.py
@@ -505,4 +505,4 @@ class TestBatch(Tester):
remove_perf_disable_shared_mem(node)
# Restart nodes on new version
logger.debug('Starting {} on new version ({})'.format(node.name, node.get_cassandra_version()))
- node.start(wait_other_notice=True, wait_for_binary_proto=True)
+ node.start(wait_other_notice=True, wait_for_binary_proto=True, jvm_args=['-Dcassandra.disable_max_protocol_auto_override=true'])
diff --git a/cqlsh_tests/test_cqlsh.py b/cqlsh_tests/test_cqlsh.py
index 5023828..ab905c5 100644
--- a/cqlsh_tests/test_cqlsh.py
+++ b/cqlsh_tests/test_cqlsh.py
@@ -1571,6 +1571,43 @@ Tracing session:""")
stdout, stderr = self.run_cqlsh(node1, cmds='USE system', cqlsh_options=['--debug', '--connect-timeout=10'])
assert "Using connect timeout: 10 seconds" in stderr
+ @since('3.0.19')
+ def test_protocol_negotiation(self):
+ """
+ @jira_ticket CASSANDRA-15193
+ """
+ self.cluster.populate(1)
+ self.cluster.start(wait_for_binary_proto=True)
+
+ node1, = self.cluster.nodelist()
+ stdout, stderr = self.run_cqlsh(node1, cmds='USE system', cqlsh_options=['--tty'])
+ assert "Native protocol v4" in stdout
+
+ stdout, stderr = self.run_cqlsh(node1, cmds='USE systeml', cqlsh_options=['--protocol-version=3', '--tty'])
+ assert "Native protocol v3" in stdout
+
+ @since('3.0.19')
+ def test_protocol_version_restriction(self):
+ """
+ @jira_ticket CASSANDRA-15193
+ """
+ self.cluster.populate(1)
+ self.cluster.set_configuration_options({ 'native_transport_max_negotiable_protocol_version': str(3)})
+ self.cluster.start(wait_for_binary_proto=True)
+
+ node1, = self.cluster.nodelist()
+ stdout, stderr = self.run_cqlsh(node1, cmds='USE system', cqlsh_options=['--tty'])
+ # yaml property is deprecated from 4.0 and has no effect
+ if node1.get_cassandra_version() < '4.0':
+ assert "Native protocol v3" in stdout
+
+ node1, = self.cluster.nodelist()
+ stdout, stderr = self.run_cqlsh(node1, cmds='USE system', cqlsh_options=['--protocol-version=4', '--tty'])
+ # yaml property is deprecated from 4.0 and has no effect
+ if node1.get_cassandra_version() < '4.0':
+ assert "ProtocolError returned from server while using explicitly set client protocol_version 4" in stderr
+
+
def test_update_schema_with_down_node(self):
"""
Test that issuing a DML statement after a DDL statement will work with a down node
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org