...
- Single threaded full API tests
- Single threaded API calls with proper assertions
- Single threaded async API calls with proper assertions
- Input parameters validation
- Configuration parameters validation
- Single node topology
- Multi nodes topology
- Operations from server nodes
- Operations from client nodes
- Cache modes
- partitioned, replicated, local
- atomic, transactional
- tx concurrency and isolation modes
- Cache memory modes
- onheap,
- offheap
- Cache backups count - 0, 1, 2, ..., N
- Cache with store
- Cache with swap
- Cache with eviction policies
- Cache with exipry policies
- Marshallers - JDK, Binary, Optimized
- Peer class loading - On, Off
- Different key and value types - primitives, arrays, collections, POJOs, Serializables, Externalizables, Binarylizables.
- Failover tests
- Multithreaded various API calls involving random branch choices with proper assertions
- Should be performed on changing topology
- May involve following technics
- Certain messages delaying
- Communication problems simulation
- Exception throwing from user implemented logic (e.g. SPIs, listeners, filters, interceptors etc).
- For combinations to cover see pt.1
- Tests should also be targeted to discover memory usage problems and possible memory leaks (in case of batching, deferred buffers, etc)
- Benchmarks and performance tests
- Yardstick benchmark should be added
- Long running performance tests
- May involve fault-tolerance test scenarios
- Should also address possible memory usage problems
- Should check that system parameters (throughput, latency, CPU, memory, IO, etc) are stable.
Full API coverage enhancements
There is a plane to have Full API test coverage of Ignite functionality. See:
Jira |
---|
server | ASF JIRA |
---|
serverId | 5aa69414-a9e9-3523-82ec-879b028fb15b |
---|
key | IGNITE-2521 |
---|
|
.The purpose of this ticket is to make sure that all ignite operations should work for any configuration properties combination.
Ignite already has Full API test suites, but currently it's hard to test all configuration combinations.
Configuration variations test framework
...
The framework has VariationsIterator
which will produce the following 4 variation vectors for the matrix above:
- [0, 0] - that means we need to the framework will set marshaller property to
BinaryMarshaller
and perClassLoadingEnabled
flag to true.
- [1, 0] - that means we need to set the framework will set marshaller property to
OptimizedMarshaller
and perClassLoadingEnabled
flag to true.
- [0, 1] - that means we need to set the framework will set marshaller property to
BinaryMarshaller
and perClassLoadingEnabled
flag to false
. - [1, 1] - that means we need to set the framework will set marshaller property to
OptimizedMarshaller
and perClassLoadingEnabled
flag to false
.
The following methods should be used to provide custom matrixes:
ConfigVariationsTestSuiteBuilder.igniteParams(ConfigParameter<IgniteConfiguration>[][] igniteParams)
ConfigVariationsTestSuiteBuilder.cacheParams(ConfigParameter<CacheConfiguration>[][] cacheParams)
ConfigVariations
- contains ready to use configuration parameters matrixes.
Parameters
- contains util methods to build parameters matrixes.
Filtration of congifurations
ConfigVariationsTestSuiteBuilder
also provides possibility to filter Ignite and Cache configurations. See withIgniteConfigFilters(IgnitePredicate<IgniteConfiguration>... filters) and withCacheConfigFilters(IgnitePredicate<CacheConfiguration>... filters) methods.
Full API coverage enhancements
There is a plane to have Full API test coverage of Ignite functionality. See:
Jira |
---|
server | ASF JIRA |
---|
serverId | 5aa69414-a9e9-3523-82ec-879b028fb15b |
---|
key | IGNITE-2521 |
---|
|
.The purpose of this ticket is to make sure that all ignite operations should work for any configuration properties combination.