Skip to content

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

Merged
merged 16 commits into from
May 17, 2022

Conversation

avelanarius
Copy link

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)

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).
@Lorak-mmk
Copy link

I can confirm that tests pass on my machine (after running mvn clean, something was broken before then).

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)

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 )

@avelanarius
Copy link
Author

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).

@avelanarius avelanarius merged commit 3c81b35 into scylladb:scylla-4.x May 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants