Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Cassandra Distributed Tests

Use grep_logs_for_errors instead of grep_logs('ERROR')

This will include the full stacktrace in the returned errors, which
should make it easier to see why a test failed in Jenkins.
latest commit a486c31779
@thobbs thobbs authored
Failed to load latest commit information.
cassandra-thrift Restore thrift interface for slice test
conf Excluding manual_bootstrap_test in trunk, too..
lib Add utility class for interacting with JMX
thrift_bindings Use thrift bindings from C* trunk. Merge in fixes to test_thrfit_serv…
.gitignore Tests for CASSANDRA-7395 Update instructions for 7163 Minor formatting fixes Add tests for normal and compressed commitlogs Additional tests from review comments on CASSANDRA-7557 Add UDF permission tests for CASSANDRA-7557, --> Match distribution range to operation count uses class decoration where possible for @since Fix failing compressed commitlog size test use ttl for dtcs_deletion_test Update stress keyspace names in 2.1 for f0767fdf Clean up imports Correct consistency checks for CL.ONE writes and reads uses class decoration where possible for @since, --> uses class decoration where possible for @since Update cql_tests.create_alter_options_test for new system_distributed ks Enable cqlsh COPY TO test allow setting consistency level Clean up imports test that memtable size calc. includes tombstones Use grep_logs_for_errors instead of grep_logs('ERROR') simplifies require wrapper Slow down counter updates to avoid timeouts Remove noop cleanups and unlimit compaction throughput in subsequent … Remove require() decorator extends jmxutils.make_mbean interface, -->
license.txt permissions, --> uses class decoration where possible for @since uses class decoration where possible for @since 7875 test to 2.1+ only Fixed bug that caused unnecessary wait till timeout, --> Remove old Tester class, replace with PyTester repair_test should test both sequential and parallel repair Remove unneeded stress runs moves no_vnodes to classes where possible uses class decoration where possible for @since Actually fix the sstable generation increment Test pre-2.1 index sstables are read after upgrade CASSANDRA-9116 Check sstableloader exit status, error if non-zero removes log-watching for binary proto stop the node before using sstablesplit Port super column cache test from CLI to Thrift API Fix on trunk Set rpc_max_threads=20 for thrift_hsha_test test_6285 Update thrift_tests.test_describe_keyspace for new system KS convert @require's argument to a string moves no_vnodes to classes where possible Merge pull request #232 from mambocab/wait-for-binary-proto uses class decoration where possible for @since Properly wait for RPC server to start, schema agreement upgrade test for murmur, remove 1.2+ check no longer needed uses class decoration where possible for @since uses class decoration where possible for @since Shorten class names Make ccmlib api changes for setting install_dir and version

Cassandra Distributed Tests

Tests for Apache Cassandra clusters.


An up to date copy of ccm should be installed for starting and stopping Cassandra. The tests are run using nosetests. These tests require the datastax python driver. A few tests still require the deprecated python CQL over thrift driver.


The tests are run by nosetests. The only thing the framework needs to know is the location of the (compiled) sources for Cassandra. There are two options:

Use existing sources:

CASSANDRA_DIR=~/path/to/cassandra nosetests

Use ccm ability to download/compile released sources from

CASSANDRA_VERSION=1.0.0 nosetests

A convenient option if tests are regularly run against the same existing directory is to set a default_dir in ~/.cassandra-dtest. Create the file and set it to something like:


The tests will use this directory by default, avoiding the need for any environment variable (that still will have precedence if given though).

Existing tests are probably the best place to start to look at how to write tests.

Each test spawns a new fresh cluster and tears it down after the test, unless REUSE_CLUSTER is set to true. Then some tests will share cassandra instances. If a test fails, the logs for the node are saved in a logs/<timestamp> directory for analysis (it's not perfect but has been good enough so far, I'm open to better suggestions).

Detailed Instructions

See more detailed instructions in the included INSTALL file.

Something went wrong with that request. Please try again.