You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by dc...@apache.org on 2020/12/14 18:21:47 UTC

[cassandra-dtest] branch trunk updated: python upgrade tests include tests which are not impacted by the version under test (#106)

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

dcapwell 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 9dcd035  python upgrade tests include tests which are not impacted by the version under test (#106)
9dcd035 is described below

commit 9dcd035ff6894bd135cce4fd2460ab72269ab970
Author: dcapwell <dc...@gmail.com>
AuthorDate: Mon Dec 14 10:20:54 2020 -0800

    python upgrade tests include tests which are not impacted by the version under test (#106)
    
    patch by David Capwell, Michael Semb Wever; reviewed by Marcus Eriksson, Michael Semb Wever  for CASSANDRA-16328
---
 conftest.py                       |  2 ++
 run_dtests.py                     |  7 +++++++
 upgrade_tests/upgrade_manifest.py | 17 ++++++++++++++---
 3 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/conftest.py b/conftest.py
index 51d2a58..486962e 100644
--- a/conftest.py
+++ b/conftest.py
@@ -89,6 +89,8 @@ def pytest_addoption(parser):
                      help="Enable JaCoCo Code Coverage Support")
     parser.addoption("--upgrade-version-selection", action="store", default="indev",
                      help="Specify whether to run indev, releases, or both")
+    parser.addoption("--upgrade-target-version-only", action="store_true", default=False,
+                     help="When running upgrade tests, only run tests upgrading to the current version")
 
 
 def sufficient_system_resources_for_resource_intensive_tests():
diff --git a/run_dtests.py b/run_dtests.py
index e239359..44969b2 100755
--- a/run_dtests.py
+++ b/run_dtests.py
@@ -104,6 +104,13 @@ class RunDTests():
             logging.root.setLevel(logging.DEBUG)
             logger.setLevel(logging.DEBUG)
 
+            # cause logger to go to stdout
+            handler = logging.StreamHandler(sys.stdout)
+            handler.setLevel(logging.DEBUG)
+            formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
+            handler.setFormatter(formatter)
+            logging.root.addHandler(handler)
+
 
         # Get dictionaries corresponding to each point in the configuration matrix
         # we want to run, then generate a config object for each of them.
diff --git a/upgrade_tests/upgrade_manifest.py b/upgrade_tests/upgrade_manifest.py
index 19e4624..be481a8 100644
--- a/upgrade_tests/upgrade_manifest.py
+++ b/upgrade_tests/upgrade_manifest.py
@@ -29,9 +29,13 @@ def is_same_family_current_to_indev(origin, destination):
 
 class VersionSelectionStrategies(Enum):
     """
+    Allow all versions
+    """
+    ALL=(lambda origin, destination: True,)
+    """
     Test upgrading from indev -> indev, current -> current across versions, and current -> indev within a version
     """
-    BOTH=(lambda origin, destination: (origin.variant == destination.variant) or is_same_family_current_to_indev(origin,destination))
+    BOTH=(lambda origin, destination: (origin.variant == destination.variant) or is_same_family_current_to_indev(origin,destination),)
     """
     Exclusively test in development branches so your bug fixes show up
     """
@@ -129,7 +133,7 @@ indev_2_2_x = VersionMeta(name='indev_2_2_x', family='2.2', variant='indev', ver
 current_2_2_x = VersionMeta(name='current_2_2_x', family='2.2', variant='current', version='2.2.13', min_proto_v=1, max_proto_v=4, java_versions=(7, 8))
 
 indev_3_0_x = VersionMeta(name='indev_3_0_x', family='3.0', variant='indev', version='github:apache/cassandra-3.0', min_proto_v=3, max_proto_v=4, java_versions=(8,))
-current_3_0_x = VersionMeta(name='current_3_0_x', family='3.0', variant='current', version='3.0.17', min_proto_v=3, max_proto_v=4, java_versions=(8,))
+current_3_0_x = VersionMeta(name='current_3_0_x', family='3.0', variant='current', version='3.0.23', min_proto_v=3, max_proto_v=4, java_versions=(8,))
 
 indev_3_11_x = VersionMeta(name='indev_3_11_x', family='3.11', variant='indev', version='github:apache/cassandra-3.11', min_proto_v=3, max_proto_v=4, java_versions=(8,))
 current_3_11_x = VersionMeta(name='current_3_11_x', family='3.11', variant='current', version='github:apache/cassandra-3.11', min_proto_v=3, max_proto_v=4, java_versions=(8,))
@@ -151,7 +155,7 @@ MANIFEST = {
     indev_2_2_x: [indev_3_0_x, current_3_0_x, indev_3_11_x, current_3_11_x],
     current_2_2_x: [indev_2_2_x, indev_3_0_x, current_3_0_x, indev_3_11_x, current_3_11_x],
 
-    indev_3_0_x: [indev_3_11_x, current_3_11_x],
+    indev_3_0_x: [indev_3_11_x, current_3_11_x, indev_trunk],
     current_3_0_x: [indev_3_0_x, indev_3_11_x, current_3_11_x, indev_trunk],
 
     current_3_11_x: [indev_3_11_x, indev_trunk],
@@ -194,6 +198,7 @@ def build_upgrade_pairs():
 
     configured_strategy = CONFIG.getoption("--upgrade-version-selection").upper()
     version_select_strategy = VersionSelectionStrategies[configured_strategy].value[0]
+    filter_for_current_family = CONFIG.getoption("--upgrade-target-version-only")
 
     for origin_meta, destination_metas in list(manifest.items()):
         for destination_meta in destination_metas:
@@ -208,6 +213,12 @@ def build_upgrade_pairs():
                 logger.debug("skipping class creation, no compatible protocol version between {} and {}".format(origin_meta.name, destination_meta.name))
                 continue
 
+            # if either origin or destination match version, then do the test
+            # the assumption is that a change in 3.0 could break upgrades to trunk, so include those tests as well
+            if filter_for_current_family and not origin_meta.matches_current_env_version_family and not destination_meta.matches_current_env_version_family:
+                logger.debug("skipping class creation, origin version {} and destination version {} do not match target version {}, and --upgrade-target-version-only was set".format(origin_meta.name, destination_meta.name, VERSION_FAMILY))
+                continue
+
             path_name = 'Upgrade_' + origin_meta.name + '_To_' + destination_meta.name
 
             if not (RUN_STATIC_UPGRADE_MATRIX or OVERRIDE_MANIFEST):


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