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

_______________________________________________
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to