bbotella commented on code in PR #48:
URL: https://github.com/apache/cassandra-sidecar/pull/48#discussion_r1222138911
##########
build.gradle:
##########
@@ -24,6 +24,8 @@ plugins {
id 'com.google.cloud.tools.jib' version '2.2.0'
}
+ext.dtestJar = System.getenv("DTEST_JAR") ?: "dtest-5.0.jar" // trunk is
currently 5.0.jar - update when trunk moves
Review Comment:
Should we move this default to gradle.properties?
##########
README.md:
##########
@@ -27,9 +27,88 @@ While setting up cassandra instance, make sure the data
directories of cassandra
Testing
-------
-We rely on docker containers for integration tests.
+We rely on the in-jvm dtest framework for testing. You must manually build the
dtest jars before you start integration tests.
+At the moment, the JMX feature is unreleased in Cassandra, so you can use the
following to build from the PR branches:
-The only requirement is to install and run
[Docker](https://www.docker.com/products/docker-desktop/) on your test machine.
+```shell
+./scripts/build-dtest-jars.sh
+```
+
+The build script supports two parameters:
+- `REPO` - the Cassandra git repository to use for the source files. This is
helpful if you need to test with a fork of the Cassandra codebase.
+ - default: `[email protected]:apache/cassandra.git`
+- `BRANCHES` - a space-delimited list of branches to build.
+ -default: `"cassandra-3.11 cassandra-4.1"`
Review Comment:
Just a nit: I think the actual defaults on the script are different?
##########
src/test/integration/org/apache/cassandra/sidecar/common/DelegateTest.java:
##########
@@ -32,31 +36,59 @@
*/
class DelegateTest
{
+ private static CassandraAdapterDelegate
getCassandraAdapterDelegate(CassandraTestContext context)
+ {
+ CassandraVersionProvider versionProvider = new
CassandraVersionProvider.Builder()
+ .add(new
Cassandra311Factory(DnsResolver.DEFAULT))
+ .add(new
CassandraFactory(DnsResolver.DEFAULT))
+ .build();
+ InstanceMetadata instanceMetadata =
context.instancesConfig.instances().get(0);
+ CQLSessionProvider sessionProvider = new
CQLSessionProvider(instanceMetadata.host(), instanceMetadata.port(), 1000);
+ CassandraAdapterDelegate delegate = new
CassandraAdapterDelegate(versionProvider, sessionProvider, context.jmxClient());
+ return delegate;
+ }
+
@CassandraIntegrationTest
void testCorrectVersionIsEnabled(CassandraTestContext context)
{
- CassandraVersionProvider provider = new
CassandraVersionProvider.Builder().add(new V30()).build();
- CassandraAdapterDelegate delegate = new
CassandraAdapterDelegate(provider, context.session, context.jmxClient);
+ CassandraAdapterDelegate delegate =
getCassandraAdapterDelegate(context);
SimpleCassandraVersion version = delegate.version();
assertThat(version).isNotNull();
+ assertThat(version.major).isEqualTo(context.version.major);
+ assertThat(version.minor).isEqualTo(context.version.minor);
+ assertThat(version).isGreaterThanOrEqualTo(context.version);
}
@CassandraIntegrationTest
- void testHealthCheck(CassandraTestContext context) throws IOException,
InterruptedException
+ void testHealthCheck(CassandraTestContext context) throws
InterruptedException
{
- CassandraVersionProvider provider = new
CassandraVersionProvider.Builder().add(new V30()).build();
- CassandraAdapterDelegate delegate = new
CassandraAdapterDelegate(provider, context.session, context.jmxClient);
+ CassandraAdapterDelegate delegate =
getCassandraAdapterDelegate(context);
delegate.healthCheck();
assertThat(delegate.isUp()).as("health check succeeds").isTrue();
- context.container.execInContainer("nodetool", "disablebinary");
+ NodeToolResult nodetoolResult =
context.cluster.get(1).nodetoolResult("disablebinary");
+ assertThat(nodetoolResult.getRc())
+ .withFailMessage("Failed to disable binary:\nstdout:" +
nodetoolResult.getStdout()
+ + "\nstderr: " + nodetoolResult.getStderr())
+ .isEqualTo(0);
- delegate.healthCheck();
+ for (int i = 0; i < 10; i++)
Review Comment:
Just curious. Why 10?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]