Skip to content

Conversation

@millerjp
Copy link
Contributor

Purpose

Testing CI with restructured modules and test organization.

Changes

  • ✅ Step 1: Consolidated libre2-dropwizard into libre2-core
  • ✅ Step 2: Created perf-test module for performance/stress tests
  • ✅ Fixed CI workflow to reference correct module paths

Test Status

  • All 459 tests passing locally (431 in libre2-core, 28 in perf-test)
  • Awaiting CI validation on all platforms

Next Steps

  • ✅ Verify CI passes on all platforms
  • Implement JNI mockability layer
  • Add JaCoCo coverage and Checkstyle
  • Update CI pipeline for integration vs unit test separation

- Analyzed all 30 test classes (459 test methods)
- Classified tests: 4 unit, 20 integration, 2 performance, 4 stress
- Identified cross-module dependencies
- Documented Dropwizard usage in core module
- Proposed restructuring: perf-test module + integration-test separation
- No code changes, inventory only
Changes:
- Move RE2MetricsConfig.java to libre2-core/dropwizard package
- Move 3 test files (JmxIntegrationTest, MetricsEndToEndTest, RE2MetricsConfigTest) to core
- Add metrics-jmx dependency to libre2-core (provided scope, optional)
- Remove libre2-dropwizard module from parent POM
- Delete libre2-dropwizard directory

Result: All 459 tests passing, BUILD SUCCESS
Multi-module structure retained for future module additions
Changes:
- Create new perf-test Maven module
- Move 2 performance tests to perf-test/performance package
  - BulkMatchingPerformanceTest
  - CachePerformanceTest
- Move 4 stress tests to perf-test/stress package
  - StressTest
  - ConcurrencyTest
  - ConcurrentCleanupTest
  - EvictionWhileInUseTest
- Configure libre2-core to build test-jar for sharing test utilities
- Add test-jar dependency in perf-test for TestUtils access
- Update package declarations and add necessary imports

Result: All 459 tests passing (431 in libre2-core, 28 in perf-test)
Performance/stress tests now separated for independent CI execution
Changes:
- Remove references to deleted libre2-dropwizard module
- Add perf-test module paths
- Workflow now triggers on changes to:
  - libre2-core/src/** (was already there)
  - perf-test/src/** (NEW)
  - pom.xml files for both modules
The workflow was still checking for libre2-dropwizard/target/*.jar which
no longer exists after consolidation into libre2-core.

This was causing the build to fail at the 'Verify JAR contents' step.
Problem: libre2-core-*.jar now matches TWO jars:
- libre2-core-1.0.0.jar (main)
- libre2-core-1.0.0-tests.jar (test-jar for sharing test utils)

The unzip commands were failing because the glob expanded to multiple files.

Solution: Use libre2-core-1.0.0.jar explicitly in all unzip commands.
Keep wildcard only in ls to show both JARs.
@millerjp millerjp marked this pull request as ready for review November 26, 2025 12:16
@millerjp millerjp merged commit f1e08d9 into main Nov 26, 2025
12 checks passed
@millerjp millerjp deleted the testconsolidation branch November 26, 2025 12:16
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