Skip to content

Conversation

@ggivo
Copy link
Collaborator

@ggivo ggivo commented Oct 8, 2025

Add profile for scenario tests and improve test separation

Summary

This PR improves Maven test execution configuration by:

  1. Adding proper skip properties for unit tests, integration tests, and scenario tests
  2. Creating a dedicated Maven profile for running scenario tests
  3. Fixing Failsafe plugin configuration to properly handle scenario tests in the scenario package
  4. Adding @Tag("scenario") to ConnectionInterruptionTest for consistency

Fixes to scenario tests applied:

  • RestAPI scenario test: Adjusted expectations because an additional database was added to the test infrastructure for hitless upgrade, resulting in a total of 4 BDBs.
  • LagAwareSSL test: Updated the test to handle health checks now throwing exceptions instead of returning "UNHEALTHY".

Usage Examples

Run Only Unit Tests

mvn clean test

Run Unit Tests + Integration Tests (Default)

mvn clean verify

This runs:

  • ✅ Unit tests (via Surefire)
  • ✅ Integration tests tagged with @Tag("integration") (via Failsafe)
  • ✅ Integration tests with *IntegrationTest.java suffix (via Failsafe)
  • ❌ Scenario tests (skipped by default)

Run Only Scenario Tests

mvn -Pscenario-tests clean verify

This runs:

  • ❌ Unit tests (skipped)
  • ❌ Integration tests (skipped)
  • ✅ Scenario tests tagged with @Tag("scenario") (via Failsafe)

Scenario tests include:

  • ActiveActiveFailoverIT
  • ClusterTopologyRefreshIT
  • ConnectionInterruptionIT
  • LagAwareStrategySslIT
  • RedisRestAPIIntegrationIT

Test

  • Tested by comparing the test's run number in this PR agains the number of tests run in earlier runs against master branch

  to run only scenario tests
  mvn -Pscenario-tests clean verify

# Conflicts:
#	src/test/java/redis/clients/jedis/mcf/ActiveActiveLocalFailoverTest.java
#	src/test/java/redis/clients/jedis/scenario/ActiveActiveFailoverIT.java
@ggivo ggivo force-pushed the ggivo/run-scenario-tests branch from 56a774b to 2e429db Compare October 8, 2025 14:20
@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Test Results

   279 files    279 suites   11m 26s ⏱️
10 063 tests 9 007 ✅ 1 056 💤 0 ❌
 2 701 runs  2 701 ✅     0 💤 0 ❌

Results for commit 0d38d82.

♻️ This comment has been updated with latest results.

@ggivo ggivo added maintenance skip-changelog Ignore pull request from release note churn Chore: Formatting and comment cleanup (non-functional change) labels Oct 8, 2025
@uglide
Copy link
Contributor

uglide commented Oct 8, 2025

Testcase Errors Failures Skipped Total
redis.clients.jedis.scenario.ClusterTopologyRefreshIT 0 0 0 1
redis.clients.jedis.scenario.ActiveActiveFailoverIT 1 0 0 1
redis.clients.jedis.scenario.LagAwareStrategySslIT 3 0 0 10
redis.clients.jedis.scenario.ConnectionInterruptionIT 0 0 0 4
redis.clients.jedis.mcf.RedisRestAPIIT 0 2 0 2

---- Details for maintainers

@ggivo ggivo marked this pull request as ready for review October 8, 2025 16:52
 - increase expected bdb's count to account for additional db added to test env
 - fix incorrect bdbid used for lag-aware availablity checks
    now using bdb of'"re-active-active"
@uglide
Copy link
Contributor

uglide commented Oct 9, 2025

Testcase Errors Failures Skipped Total
redis.clients.jedis.scenario.ClusterTopologyRefreshIT 0 0 0 1
redis.clients.jedis.scenario.ActiveActiveFailoverIT 0 0 0 1
redis.clients.jedis.scenario.LagAwareStrategySslIT 3 0 0 10
redis.clients.jedis.scenario.ConnectionInterruptionIT 0 0 0 4
redis.clients.jedis.mcf.RedisRestAPIIT 0 0 0 2

---- Details for maintainers

 - Now exception is propagated in case of ssl connection errors instead of returning UNHEALTHY
 - updated the test to current expectations
 - Enhanced test to ensure untrusted default certificate
@uglide
Copy link
Contributor

uglide commented Oct 9, 2025

Testcase Errors Failures Skipped Total
redis.clients.jedis.scenario.ClusterTopologyRefreshIT 0 0 0 1
redis.clients.jedis.scenario.ActiveActiveFailoverIT 0 0 0 1
redis.clients.jedis.scenario.LagAwareStrategySslIT 0 0 0 10
redis.clients.jedis.scenario.ConnectionInterruptionIT 0 0 0 4
redis.clients.jedis.mcf.RedisRestAPIIT 0 0 0 2

---- Details for maintainers

@uglide
Copy link
Contributor

uglide commented Oct 9, 2025

Testcase Errors Failures Skipped Total
redis.clients.jedis.scenario.ClusterTopologyRefreshIT 0 0 0 1
redis.clients.jedis.scenario.ActiveActiveFailoverIT 0 0 0 1
redis.clients.jedis.scenario.LagAwareStrategySslIT 0 0 0 10
redis.clients.jedis.scenario.ConnectionInterruptionIT 0 0 0 4
redis.clients.jedis.mcf.RedisRestAPIIT 0 0 0 2

---- Details for maintainers

uglide
uglide previously approved these changes Oct 9, 2025
Copy link
Contributor

@atakavci atakavci left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ggivo ggivo merged commit 3645601 into master Oct 9, 2025
14 checks passed
@ggivo ggivo deleted the ggivo/run-scenario-tests branch October 9, 2025 10:53
atakavci added a commit that referenced this pull request Oct 9, 2025
commit 297279e
Author: Igor Malinovskiy <u.glide@gmail.com>
Date:   Thu Oct 9 13:06:10 2025 +0200

    Add v6 and v7 migration guides (#4315)

    * Add migration guide for v7

    * Move all migration guides to subfolder

    * Update readme:

    - Bump client version
    - Update list of supported Redis versions
    - Remove references to JedisPool
    - Remove reference to Google Group

    * Remove duplicated content in the migration guide

    * Update README.md

    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

    * Add missing v5 to v6 migration guide

    * Fix broken link

    * Update outdated modules section in README

    ---------

    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

commit 3645601
Author: Ivo Gaydazhiev <ivo.gaydazhiev@redis.com>
Date:   Thu Oct 9 13:53:02 2025 +0300

    Dedicated profile for running Scenario tests (#4312)

    * Dedicated profile for running Scenario tests

      to run only scenario tests
      mvn -Pscenario-tests clean verify

    * format

    * remove import after rebase conflict

    * fix RedisRestAPIIT scenario test

     - increase expected bdb's count to account for additional db added to test env
     - fix incorrect bdbid used for lag-aware availablity checks
        now using bdb of'"re-active-active"

    * fix LagAwareStrategySslIT scenario test

     - Now exception is propagated in case of ssl connection errors instead of returning UNHEALTHY
     - updated the test to current expectations
     - Enhanced test to ensure untrusted default certificate

    * java 8 compatibility

    * remove @tag("integration") from IntegrationTest* to avoid multiple runs of same test

    ---------

    Co-authored-by: Igor Malinovskiy <u.glide@gmail.com>

commit 07bf3b0
Author: Igor Malinovskiy <u.glide@gmail.com>
Date:   Thu Oct 9 12:00:36 2025 +0200

    [automatic failover] Update failover docs (#4314)

    Update failover docs

    - Add migration guide from 6.x to 7.0
    - Add instructions on optional deps
    - Clean up wording to refer to multiDbClient instead of connection provider

commit 158e726
Author: Igor Malinovskiy <u.glide@gmail.com>
Date:   Thu Oct 9 11:14:28 2025 +0200

    Remove deprecated constructors, classes and JedisSharding (#4311)

    * Remove JedisSharding

    * Remove deprecated constructors in UnifiedJedis

    * Clean up UnifiedJedisConstructorReflectionTest

    * Remove remaining ShardedCommandArguments

    * Remove deprecated PipelineBase

    * Remove deprecated TransactionBase

    * Remove unused attr in MultiDbTransaction

commit 5db1a39
Author: Igor Malinovskiy <u.glide@gmail.com>
Date:   Thu Oct 9 10:04:06 2025 +0200

    Remove spellcheck (#4309)

    Nowadays, AI reviewing tools like CoPilot catch spellcheck issues better than pyspelling without a burden of maintaining wordlist.txt
ggivo added a commit that referenced this pull request Oct 9, 2025
…4317)

* [automatic failover] Replace EchoStrategy with PingStrategy (#4313)

* - replace EchoStrategy with PingStrategy

* - fix doc

* [automatic failover] Remove UnifiedJedis experimental constructor accepting MultiDbConnectionProvider (#4316)

* Remove UnifiedJedis(MultiDbConnectionProvider) experimental constructor

The recommended way to create MultiDbClient is using MultiDbClient.builder().
Update all tests to use the builder pattern.

Fixes #4307

* revert unintentional change in MultiDbClientBuilder

* Squashed commit of the following:

commit 297279e
Author: Igor Malinovskiy <u.glide@gmail.com>
Date:   Thu Oct 9 13:06:10 2025 +0200

    Add v6 and v7 migration guides (#4315)

    * Add migration guide for v7

    * Move all migration guides to subfolder

    * Update readme:

    - Bump client version
    - Update list of supported Redis versions
    - Remove references to JedisPool
    - Remove reference to Google Group

    * Remove duplicated content in the migration guide

    * Update README.md

    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

    * Add missing v5 to v6 migration guide

    * Fix broken link

    * Update outdated modules section in README

    ---------

    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

commit 3645601
Author: Ivo Gaydazhiev <ivo.gaydazhiev@redis.com>
Date:   Thu Oct 9 13:53:02 2025 +0300

    Dedicated profile for running Scenario tests (#4312)

    * Dedicated profile for running Scenario tests

      to run only scenario tests
      mvn -Pscenario-tests clean verify

    * format

    * remove import after rebase conflict

    * fix RedisRestAPIIT scenario test

     - increase expected bdb's count to account for additional db added to test env
     - fix incorrect bdbid used for lag-aware availablity checks
        now using bdb of'"re-active-active"

    * fix LagAwareStrategySslIT scenario test

     - Now exception is propagated in case of ssl connection errors instead of returning UNHEALTHY
     - updated the test to current expectations
     - Enhanced test to ensure untrusted default certificate

    * java 8 compatibility

    * remove @tag("integration") from IntegrationTest* to avoid multiple runs of same test

    ---------

    Co-authored-by: Igor Malinovskiy <u.glide@gmail.com>

commit 07bf3b0
Author: Igor Malinovskiy <u.glide@gmail.com>
Date:   Thu Oct 9 12:00:36 2025 +0200

    [automatic failover] Update failover docs (#4314)

    Update failover docs

    - Add migration guide from 6.x to 7.0
    - Add instructions on optional deps
    - Clean up wording to refer to multiDbClient instead of connection provider

commit 158e726
Author: Igor Malinovskiy <u.glide@gmail.com>
Date:   Thu Oct 9 11:14:28 2025 +0200

    Remove deprecated constructors, classes and JedisSharding (#4311)

    * Remove JedisSharding

    * Remove deprecated constructors in UnifiedJedis

    * Clean up UnifiedJedisConstructorReflectionTest

    * Remove remaining ShardedCommandArguments

    * Remove deprecated PipelineBase

    * Remove deprecated TransactionBase

    * Remove unused attr in MultiDbTransaction

commit 5db1a39
Author: Igor Malinovskiy <u.glide@gmail.com>
Date:   Thu Oct 9 10:04:06 2025 +0200

    Remove spellcheck (#4309)

    Nowadays, AI reviewing tools like CoPilot catch spellcheck issues better than pyspelling without a burden of maintaining wordlist.txt

---------

Co-authored-by: Ivo Gaydazhiev <ivo.gaydazhiev@redis.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

churn Chore: Formatting and comment cleanup (non-functional change) maintenance skip-changelog Ignore pull request from release note

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants