[infinispan-dev] Hot Rod testing
Tristan Tarrant
ttarrant at redhat.com
Fri Sep 30 04:40:59 EDT 2016
On 23/09/16 17:33, Galder Zamarreño wrote:
> ^ I thought about all of this when working on the JS client, and although like you, I thought this was the biggest hurdle, eventually I realised that there are bigger issues than that:
>
> 1. How do you verify that a Javascript client works the way a Javascript program would use it?
> IOW, even if you could call JS from Java, what you'd be verifying is that whichever contorsionate way of calling JS from Java works, which might not necessarily mean it works when a real JS program calls it.
If a specific language API wants to "feel native" in its environment
that is fine, and there should be local tests to exercise that, but from
a protocol compliance point of view this is irrelevant. We need to
verify that:
- for each Hot Rod operation and variant (e.g. flags, metadata) the
client is sending the correct request.
- the client should also be able to correctly process the response,
again with different variations (result, not found, errors, metadata)
- for the different client intelligence levels the client should be able
to correctly process the returned headers (topology, hashing, etc)
- the client should correctly react to topology changes and failover
- the client should correctly react to events and fire the appropriate
listeners
- the client should be able to correctly handle encryption handshaking
and report error situations properly
- the client should be able to correctly handle authentication and
report error situations properly for the client-supported mechanisms
Additionally client might wish to test for the following, but this is
not part of the protocol specification:
- marshalling
- async methods
- site failover
- language-specific synctactic sugar
Also, to provide a common ground for the server configuration used by
both types of tests (TCK and client-specific), we should really use
docker containers with appropriately named configs together with common
scripts that recreate the test scenarios, so that each testsuite doesn't
have to reinvent the wheel.
Tristan
--
Tristan Tarrant
Infinispan Lead
JBoss, a division of Red Hat
More information about the infinispan-dev
mailing list