<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><div><br><br></div></span><div>I wonder if something like Haxe [1] could help here in defining a language agnostic <br></div><div>TCK (maybe an skeleton?) that gets compiled to several platforms. Each platform&#39;s <br>testsuite would them &quot;implement&quot; the spec and of course would be free to add <br>&#39;native&#39; tests as well. There&#39;s also a unit test framework built on top of [1], worth exploring<br></div><div><br>[1] <a href="https://haxe.org/" target="_blank">https://haxe.org/</a><br></div><div>[2] <a href="https://github.com/massiveinteractive/MassiveUnit/" target="_blank">https://github.com/massiveinte<wbr>ractive/MassiveUnit/</a> <br><br></div></div></div></div></blockquote><div><br></div><div>This is an idea of how to use it:<br></div><div><br></div><div>1) Define an interface using the Haxe language (just assume syntax is correct):<br><br></div><div>interface IHotRodClient {<br></div><div>   get(Object k)<br></div><div>   put(Object k, Object value)<br></div><div>   etc<br></div><div>}<br></div><div><br></div><div>2) Write the TCK in terms of that interface. The Haxe language has lots of libraries, including unit tests:<br></div><div><br></div><div>class TCK {<br><br></div><div>   test1( ) { ... }<br></div><div>   test2( ) { ... }<br></div><div>   etc<br></div><div><br></div><div>   void Main(IHotRodClient client)<br></div><div>        new TCK(client).run()<br></div><div>}<br></div><div><br></div><div>3) Cross compile the TCK and distribute it as jar, dll, js, etc<br></div><div>4) Each Hot Rod client consumes the artifact above<br></div><div>5) Each Hot Rod runs the TCK passing its implementation of IHotRodClient</div><div>6) Profit<br></div><div><br></div><div>My 2p,<br></div><div>Gustavo<br></div><div><br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br><span></span><br><span></span></blockquote></span><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div>
Tristan<br>
<br>
--<br>
Tristan Tarrant<br>
Infinispan Lead<br>
JBoss, a division of Red Hat<br>
<br>
______________________________<wbr>_________________<br>
infinispan-dev mailing list<br>
<a href="mailto:infinispan-dev@lists.jboss.org" target="_blank">infinispan-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailma<wbr>n/listinfo/infinispan-dev</a></div></div></blockquote></span></div><br></div></div>
</blockquote></div><br></div></div>