Skip to content

Add storage backend compatibility tests#168

Merged
em3s merged 1 commit intomainfrom
test/add-storage-backend-compatibility-tests
Feb 4, 2026
Merged

Add storage backend compatibility tests#168
em3s merged 1 commit intomainfrom
test/add-storage-backend-compatibility-tests

Conversation

@em3s
Copy link
Copy Markdown
Contributor

@em3s em3s commented Feb 4, 2026

Summary

Add comprehensive compatibility tests for storage backends to verify required operations as defined in the storage backends design doc.

Changes

  • DatastoreCompatibilityTest: Abstract base class with 24 test cases covering all required operations
  • MemoryDatastoreCompatibilityTest: Tests in-memory ByteArrayStore implementation
  • HBaseDatastoreCompatibilityTest: Tests HBase backend
    • Default: MockConnection (fast, no external dependencies)
    • Optional: Mini cluster with HBASE_MINI_CLUSTER=true
  • StorageOperations: Extracted interface for potential reuse
  • Concurrent tests for checkAndMutate atomicity verification (distributed locking)

Test Coverage

Operation Tests
get / getAll 4
scan 4
put 2
delete 2
increment 3
batch 4
setIfNotExists 2
deleteIfEquals 3
concurrent 2

How to Test

# Run with MockConnection (default, fast)
./gradlew :engine:test --tests "*DatastoreCompatibilityTest*"

# Run with HBase mini cluster (slower, full integration)
HBASE_MINI_CLUSTER=true ./gradlew :engine:test --tests "*HBaseDatastoreCompatibilityTest*"

Add comprehensive compatibility tests for storage backends to verify
required operations: get, scan, put, delete, increment, batch, and
checkAndMutate (for distributed locking).

- DatastoreCompatibilityTest: Abstract base with all test cases
- MemoryDatastoreCompatibilityTest: Tests ByteArrayStore implementation
- HBaseDatastoreCompatibilityTest: Tests HBase with MockConnection (default)
  or mini cluster (HBASE_MINI_CLUSTER=true)
- StorageOperations: Extracted interface for reuse
- Concurrent tests for checkAndMutate atomicity verification

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@dosubot dosubot bot added size:XL This PR changes 500-999 lines, ignoring generated files. module:engine labels Feb 4, 2026
@em3s em3s merged commit 8cf322a into main Feb 4, 2026
10 checks passed
@em3s em3s self-assigned this Feb 6, 2026
@em3s em3s changed the title test(engine): add storage backend compatibility tests Add storage backend compatibility tests Feb 12, 2026
@em3s em3s deleted the test/add-storage-backend-compatibility-tests branch March 1, 2026 12:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL This PR changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant