cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Brown <jasedbr...@gmail.com>
Subject dtests and differing behavior across c* versions
Date Sat, 17 Jun 2017 15:26:24 GMT
Hey all,

As I'm finalizing work on CASSANDRA-8457 and CASSANDRA-12229 (switching to
netty for internode messaging and streaming), I need to update the a
handful of existing dtests due to changes in

a) grepping log for errors (primarily for TLS)
b) byteman injections (primarily for streaming)


As we need dtests to be backward compatible with previous c* versions,
what's the recommended strategy for having the updates for the newer
versions but keeping the existing functionality for the old tests?

For the "grepping log for errors" issue, I'm thinking of something like
this (apologies for poor python and short-handing these):


@since('4.0)
def test_XYZ_feature_40_and_up(self):
  error = "new error"
  test_XYZ_feature(error)

@since('3.0', max_version='3.x')
def test_XYZ_feature_before_40(self):
  error = "old error"
  test_XYZ_feature(error)

def test_XYZ_feature(self, error):
  ....


Does this seem legit, or is there something better that is recommended?

WRT to the byteman changes, should I take a similar approach, where I split
out the byteman scripts for each variant, and then pass that script's file
name into an overloaded function?

Thanks!

-Jason

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message