-
Notifications
You must be signed in to change notification settings - Fork 38
Fix running integration tests on Java Driver 4.x #122
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix running integration tests on Java Driver 4.x #122
Conversation
Disable integration tests which are failing when running "mvn verify verify -Dccm.version=3.11.12 -e".
Disable integration tests which are failing when running "mvn verify verify -Dccm.version=4.0.3 -e".
Add support for running integration tests with Scylla. It is achieved by passing "--scylla -v release:X.Y.Z" parameter to ccm. You have to have scylla-ccm installed on your computer. You can start those integration tests with: "mvn verify -Dccm.version=4.5.3 -Dccm.scylla=true".
Add a new ScyllaSkip annotation, which allows for skipping of annotated tests when running integration tests with Scylla.
Disable Cassandra-specific JVM arguments when running integration tests with Scylla. As a followup, bringing back setup_delay_ms and skip_wait_for_gossip_to_settle in Scylla could speed up running the tests.
Disable integration tests that rely on Protocol V5 to properly run when running with Scylla, as Scylla does not support Protocol V5.
Disable tests relying on SASI indexes when running with Scylla, as Scylla does not support SASI indexes.
Disable integration tests which rely on UDFs when running with Scylla, as Scylla has a different implementation of UDFs.
Disable an integration tests relying on setting a JVM argument when running with Scylla.
Disable integration tests which fail under Scylla for reasons yet to be determined (disabled only when running with Scylla).
Disable integration tests which use partitioners not supported by Scylla (disabled only when running with Scylla).
Disable integration tests which expect a specific text (for example in traces), which looks different in Scylla (disabled only when running with Scylla).
Disable integration tests which cause failure of CCM - those tests mostly try to add new nodes (disabled only when running with Scylla).
Disable integration tests which use Cassandra virtual tables, not supported by Scylla (disabled only when running with Scylla).
Disable integration test which uses Cassandra-specific keyspace config (disabled only when running with Scylla).
I can confirm that tests pass on my machine (after running mvn clean, something was broken before then).
It would be nice to update CONTRIBUTING.md with this info (and add link to Scylla CCM setup instructions: https://github.com/scylladb/scylla/wiki/Using-CCM ) |
Merging as is, this will be fixed in followup (#130). |
This pull request aims to "re-enable" integration tests with Java Driver 4.x: making them run again (mostly by disabling failing tests and categorizing them for future fixing), adding support for running them with Scylla.
The first two commits disable tests that fail with Cassandra and the next commits add support for running the tests with Scylla and disables/categorizes tests that fail.
The tests can be ran with following commands:
mvn verify -Dccm.version=3.11.12 -e
(Cassandra 3.11.12)mvn verify -Dccm.version=4.0.3 -e
(Cassandra 4.0.3)mvn verify -Dccm.version=4.5.3 -Dccm.scylla=true
(Scylla OSS 4.5.3)This PR does not include running the tests in GitHub Actions - this will come at a later date.
The disabled tests are categorized with tags by reasons why they were disabled and should be fixed at a later date:
@IntegrationTestDisabledCassandra3Failure
- general regression when running with Cassandra 3.11@IntegrationTestDisabledCassandra4Failure
- general regression when running with Cassandra 4@IntegrationTestDisabledPaxExam
- disabling test using PaxExam functionality@IntegrationTestDisabledScyllaFailure
- general regression when running with Scylla@IntegrationTestDisabledScyllaJVMArgs
- disabling test, when running with Scylla, that uses Cassandra's JVM arguments@IntegrationTestDisabledScyllaUDF
- disabling test, when running with Scylla, that uses Cassandra's UDF implementation@IntegrationTestDisabledScyllaUnsupportedFunctionality
- disabling test, when running with Scylla, that uses functionality unsupported by Scylla (for example SASI indexes or Cassandra's CDC)@IntegrationTestDisabledScyllaUnsupportedIndex
- disabling test, when running with Scylla, that uses Cassandra's indexes unsupported by Scylla@IntegrationTestDisabledSSL
- a disabled test that also happens to test SSL functionality@IntegrationTestDisabledScyllaProtocolV5
- a disabled test that relies on Protocol V5@IntegrationTestDisabledScyllaDifferentText
- a disabled test that expects a Cassandra-specific text (such as tracing message)@IntegrationTestDisabledCCMFailure
- a disabled test that fails at CCM stage (mostly adding new nodes to the cluster)