On 05/08/2017 07:10 AM, Galder Zamarreño wrote: > I think there's some value in Radim's suggestion. The email was not fully > clear to me initially but after reading a few times I understood what he was > referring to. @Radim, correct me if I'm wrong... > > Right now clients verify that they behave as expected, e.g. JS client uses > its asserts, Java client uses other asserts. What Radim is trying to say is > that there needs to be a way to verify they work adequately independent of > their implementations. > > So, the only way to do that is to verify it at the server level. Not sure > what exactly he means by the fake server, but more than a fake server, I'd be > more inclined to modify the server to that it can somehow act as TCK > verifier. This is to avoid having to reimplement transport logic, protocol > decoder...etc in a new fake server.
I think you got the idea. I am not trying to push any particular implementation of the "fake server" - you could just tweak existing one, but the purest and most deterministic approach would be having a script that could look like: expect connection A to serverX/any server expect receive from A <base64 encoded bytes/hex encoded bytes> send to A <... bytes> expect connection A closed Implementing a server that interprets such script isn't that complex; you don't have to deal with protocol decoder (what's transport logic on server?), because you just expect and send bytes. Radim > > Cheers, > -- > Galder Zamarreño > Infinispan, Red Hat > >> On 11 Apr 2017, at 15:57, Radim Vansa <rva...@redhat.com> wrote: >> >> Since these tests use real server(s), many of them test not only the >> client behaviour (generating correct commands according to the >> protocol), but server, too. While this is practical (we need to test >> server somehow, too), there's nothing all the tests across languages >> will have physically in common and all comparison is prone to human error. >> >> If we want to test various implementations of the client, maybe it would >> make sense to give the clients a fake server that will have just a >> scenario of expected commands to receive and pre-defined responses. We >> could use audit log to generate such scenario based on the actual Java >> tests. >> >> But then we'd have to test the actual behaviour on server, and we'd need >> a way to issue the commands. >> >> Just my 2c >> >> Radim >> >> On 04/11/2017 02:33 PM, Martin Gencur wrote: >>> Hello all, >>> we have been working on https://issues.jboss.org/browse/ISPN-7120. >>> >>> Anna has finished the first step from the JIRA - collecting information >>> about tests in the Java HotRod client test suite (including server >>> integration tests) and it is now prepared for wider review. >>> >>> She created a spreadsheet [1]. The spread sheet includes for each Java >>> test its name, the suggested target package in the TCK, whether to >>> include it in the TCK or not, and some other notes. The suggested >>> package also poses grouping for the tests (e.g. tck.query, tck.near, >>> tck.xsite, ...) >>> >>> Let me add that right now the goal is not to create a true TCK [2]. The >>> goal is to make sure that all implementations of the HotRod protocol >>> have sufficient test coverage and possibly the same server side of the >>> client-server test (including the server version and configuration). >>> >>> What are the next step? >>> >>> * Please review the list (at least a quick look) and see if some of the >>> tests which are NOT suggested for the TCK should be added or vice versa. >>> * I suppose the next step would then be to check other implementations >>> (C#, C++, NodeJS, ..) and identify tests which are missing there (there >>> will surely be some). >>> * Gradually implement the missing tests in the other implementations >>> Note: Here we should ensure that the server is configured in the same >>> way for all implementations. One way to achieve this (thanks Anna for >>> suggestion!) is to have a shell/batch scripts for CLI which would be >>> executed before the tests. This can probably be done for all impls. and >>> both UNIX/WINDOWS. I also realize that my PR for ISPN [3] becomes >>> useless because it uses Creaper (Java) and we need a language-neutral >>> solution for configuring the server. >>> >>> Some other notes: >>> * there are some duplicated tests in hotrod-client and server >>> integration test suites, in this case it probably makes sense to only >>> include in the TCK the server integration test >>> * tests from the hotrod-client module which are supposed to be part of >>> the TCK should be copied to the server integration test suite one day >>> (possibly later) >>> >>> Please let us know what you think. >>> >>> Thanks, >>> Martin >>> >>> >>> [1] >>> https://docs.google.com/spreadsheets/d/1bZBBi5m4oLL4lBTZhdRbIC_EA0giQNDZWzFNPWrF5G4/edit#gid=0 >>> [2] https://en.wikipedia.org/wiki/Technology_Compatibility_Kit >>> [3] https://github.com/infinispan/infinispan/pull/5012 >>> _______________________________________________ >>> infinispan-dev mailing list >>> infinispan-dev@lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/infinispan-dev >> >> -- >> Radim Vansa <rva...@redhat.com> >> JBoss Performance Team >> >> _______________________________________________ >> infinispan-dev mailing list >> infinispan-dev@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/infinispan-dev > > _______________________________________________ > infinispan-dev mailing list > infinispan-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/infinispan-dev -- Radim Vansa <rva...@redhat.com> JBoss Performance Team _______________________________________________ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev