You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ad...@apache.org on 2021/03/08 17:15:17 UTC

[cassandra-dtest] branch trunk updated: Add annotations to stop running batch write and hinted handoff tests that have been ported to the in-JVM framework in 4.0

This is an automated email from the ASF dual-hosted git repository.

adelapena pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-dtest.git


The following commit(s) were added to refs/heads/trunk by this push:
     new f930eca  Add annotations to stop running batch write and hinted handoff tests that have been ported to the in-JVM framework in 4.0
f930eca is described below

commit f930ecaed698913827e8d32a0003099a1e11a2c1
Author: Caleb Rackliffe <ca...@gmail.com>
AuthorDate: Mon Mar 8 17:13:52 2021 +0000

    Add annotations to stop running batch write and hinted handoff tests that have been ported to the in-JVM framework in 4.0
    
    patch by Caleb Rackliffe; reviewed by Andrés de la Peña and Ekaterina Dimitrova for CASSANDRA-16181#
---
 batch_test.py         |  5 +++++
 conftest.py           | 47 +++--------------------------------------------
 hintedhandoff_test.py |  3 +++
 3 files changed, 11 insertions(+), 44 deletions(-)

diff --git a/batch_test.py b/batch_test.py
index 4091974..2dad0d3 100644
--- a/batch_test.py
+++ b/batch_test.py
@@ -12,6 +12,7 @@ from tools.assertions import (assert_all, assert_invalid, assert_one,
 from tools.jmxutils import (JolokiaAgent, make_mbean)
 
 since = pytest.mark.since
+ported_to_in_jvm = pytest.mark.ported_to_in_jvm
 logger = logging.getLogger(__name__)
 
 
@@ -288,6 +289,7 @@ class TestBatch(Tester):
         assert_one(session, "SELECT * FROM users", [0, 'Jack', 'Sparrow'])
         assert_one(session, "SELECT * FROM dogs", [0, 'Pluto'])
 
+    @ported_to_in_jvm('4.0')
     @since('3.0', max_version='3.x')
     def test_logged_batch_compatibility_1(self):
         """
@@ -297,6 +299,7 @@ class TestBatch(Tester):
         """
         self._logged_batch_compatibility_test(0, 1, 'github:apache/cassandra-2.2', 2, 4)
 
+    @ported_to_in_jvm('4.0')
     @since('3.0', max_version='3.x')
     def test_batchlog_replay_compatibility_1(self):
         """
@@ -326,6 +329,7 @@ class TestBatch(Tester):
         """
         self._logged_batch_compatibility_test(0, 2, 'github:apache/cassandra-2.1', 1, 3)
 
+    @ported_to_in_jvm('4.0')
     @since('3.0', max_version='3.x')
     def test_logged_batch_compatibility_4(self):
         """
@@ -335,6 +339,7 @@ class TestBatch(Tester):
         """
         self._logged_batch_compatibility_test(2, 2, 'github:apache/cassandra-2.2', 1, 4)
 
+    @ported_to_in_jvm('4.0')
     @since('3.0', max_version='3.x')
     def test_batchlog_replay_compatibility_4(self):
         """
diff --git a/conftest.py b/conftest.py
index 5b73dd7..33e188f 100644
--- a/conftest.py
+++ b/conftest.py
@@ -468,10 +468,10 @@ def _skip_ported_msg(current_running_version, ported_from_version):
 @pytest.fixture(autouse=True)
 def fixture_ported_to_in_jvm(request, fixture_dtest_setup):
     """
-    Adds a new mark called 'ported_to_in_jvm' which denotes that a test was ported to jvm-dtest.
+    Adds a new mark called 'ported_to_in_jvm' which denotes that a test was ported to an in-JVM dtest.
 
-    As of this point in time there are weaknesses of jvm-dtest which require these tests to still
-    be run in the cases not covered by jvm-dtest; namely vnode.
+    In-JVM dtests do not currently support running with vnodes, so tests that use this annotation will
+    still be run around those configurations.
     """
     marker = request.node.get_closest_marker('ported_to_in_jvm')
     if marker and not request.config.getoption("--use-vnodes"):
@@ -507,47 +507,6 @@ def fixture_ported_to_in_jvm(request, fixture_dtest_setup):
                 pytest.skip(skip_msg)
 
 
-def _skip_ported_msg(current_running_version, ported_from_version):
-    if loose_version_compare(current_running_version, ported_from_version) >= 0:
-        return "ported to in-JVM from %s >= %s" % (ported_from_version, current_running_version)
-
-
-@pytest.fixture(autouse=True)
-def fixture_ported_to_in_jvm(request, fixture_dtest_setup):
-    marker = request.node.get_closest_marker('ported_to_in_jvm')
-    if marker and not request.config.getoption("--use-vnodes"):
-
-        if not marker.args:
-            pytest.skip("ported to in-jvm")
-
-        from_str = marker.args[0]
-        ported_from_version = LooseVersion(from_str)
-
-        # For upgrade tests don't run the test if any of the involved versions
-        # are excluded by the annotation
-        if hasattr(request.cls, "UPGRADE_PATH"):
-            upgrade_path = request.cls.UPGRADE_PATH
-            ccm_repo_cache_dir, _ = ccmlib.repository.setup(upgrade_path.starting_meta.version)
-            starting_version = get_version_from_build(ccm_repo_cache_dir)
-            skip_msg = _skip_ported_msg(starting_version, ported_from_version)
-            if skip_msg:
-                pytest.skip(skip_msg)
-            ccm_repo_cache_dir, _ = ccmlib.repository.setup(upgrade_path.upgrade_meta.version)
-            ending_version = get_version_from_build(ccm_repo_cache_dir)
-            skip_msg = _skip_ported_msg(ending_version, ported_from_version)
-            if skip_msg:
-                pytest.skip(skip_msg)
-        else:
-            # For regular tests the value in the current cluster actually means something so we should
-            # use that to check.
-            # Use cassandra_version_from_build as it's guaranteed to be a LooseVersion
-            # whereas cassandra_version may be a string if set in the cli options
-            current_running_version = fixture_dtest_setup.dtest_config.cassandra_version_from_build
-            skip_msg = _skip_ported_msg(current_running_version, ported_from_version)
-            if skip_msg:
-                pytest.skip(skip_msg)
-
-
 @pytest.fixture(autouse=True)
 def fixture_skip_version(request, fixture_dtest_setup):
     marker = request.node.get_closest_marker('skip_version')
diff --git a/hintedhandoff_test.py b/hintedhandoff_test.py
index 60d55fd..64caad9 100644
--- a/hintedhandoff_test.py
+++ b/hintedhandoff_test.py
@@ -10,6 +10,7 @@ from tools.data import create_c1c2_table, insert_c1c2, query_c1c2
 from tools.assertions import assert_stderr_clean
 
 since = pytest.mark.since
+ported_to_in_jvm = pytest.mark.ported_to_in_jvm
 logger = logging.getLogger(__name__)
 
 
@@ -71,6 +72,7 @@ class TestHintedHandoffConfig(Tester):
             else:
                 query_c1c2(session, n, ConsistencyLevel.ONE, tolerate_missing=True, must_be_missing=True)
 
+    @ported_to_in_jvm('4.0')
     def test_nodetool(self):
         """
         Test various nodetool commands
@@ -177,6 +179,7 @@ class TestHintedHandoffConfig(Tester):
 
 class TestHintedHandoff(Tester):
 
+    @ported_to_in_jvm('4.0')
     @pytest.mark.no_vnodes
     def test_hintedhandoff_decom(self):
         self.cluster.populate(4).start()


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org