[ 
https://issues.apache.org/jira/browse/THRIFT-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14026710#comment-14026710
 ] 

Chamila Dilshan Wijayarathna edited comment on THRIFT-847 at 6/10/14 5:23 PM:
------------------------------------------------------------------------------

Added cross tests for ruby with ruby, cpp, java, node and python.
ruby_protocols="binary compact json accel"
ruby_transports="buffered framed"
ruby_sockets="ip"
Created new TestServer.rb and TestClient.rb for this purpose.

In MultiExceptionTest and ExceptionTest in Ruby server, it throws 
"Thrift::TransportException: end of file reached" for all clients. I have no 
idea what causes this. We need to identify if this is and issue in Server 
implementation or problem of thrift.
Ruby Client is working properly with java and node, but stuck in some tests 
against cpp and py without moving ahead for next tests. This is also need to be 
checked, if this is a issue of client I implemented or problem inside thrift. 
With java and node, ruby client works properly, but tests still fails due to 
incompatibility of nil values (Server sending 0 where client expecting 'nil'). 
I'll work on this, but I need some advice on how to proceed.

[~roger.meier]
Following are the things I think important to be done next.
1. Adding 'ssl' tests for ruby. Does ruby support ssl? If so how can I add them 
to client and server?
2. in test/rb/integration/ there are simple_server.rb, simple_client.rb, 
buffered_client.rb, accelerated_buffered_server.rb and 
accelerated_buffered_client.rb. TestServer.rb and TestClient.rb I added, 
contains every functionality those files have. So we can remove those files and 
replace them with TestServer.rb and TestClient.rb. What are the places which 
uses above files?
3. Java and few other tests missing 'testStringMap'. What is the reason for 
that. If there is  no huge reason, we need to add it also.


was (Author: cdwijayarathna):
Added cross tests for ruby with ruby, cpp, java, node and python.
ruby_protocols="binary compact json accel"
ruby_transports="buffered framed"
ruby_sockets="ip"
Created new TestServer.rb and TestClient.rb for this purpose.

In MultiExceptionTest and ExceptionTest in Ruby server, it throws 
"Thrift::TransportException: end of file reached" for all clients. I have no 
idea what causes this. We need to identify if this is and issue in Server 
implementation or problem of thrift.
Ruby Client is working properly with java and node, but stuck in some tests 
against cpp and py without moving ahead for next tests. This is also need to be 
checked, if this is a issue of client I implemented or problem inside thrift. 
With java and node, ruby client works properly, but tests still fails due to 
incompatibility of nil values (Server sending 0 where client expecting 'nil'). 
I'll work on this, but I need some advice on how to proceed.

Following are the things I think important to be done next.
1. Adding 'ssl' tests for ruby. Does ruby support ssl? If so how can I add them 
to client and server?
2. in test/rb/integration/ there are simple_server.rb, simple_client.rb, 
buffered_client.rb, accelerated_buffered_server.rb and 
accelerated_buffered_client.rb. TestServer.rb and TestClient.rb I added, 
contains every functionality those files have. So we can remove those files and 
replace them with TestServer.rb and TestClient.rb. What are the places which 
uses above files?
3. Java and few other tests missing 'testStringMap'. What is the reason for 
that. If there is  no huge reason, we need to add it also.

> Test Framework harmonization across all languages
> -------------------------------------------------
>
>                 Key: THRIFT-847
>                 URL: https://issues.apache.org/jira/browse/THRIFT-847
>             Project: Thrift
>          Issue Type: Improvement
>          Components: C# - Library, C++ - Library, Cocoa - Library, Erlang - 
> Library, Haskell - Library, Java - Library, JavaScript - Library, OCaml - 
> Library, Perl - Library, PHP - Library, Python - Library, Ruby - Library, 
> Test Suite
>    Affects Versions: 0.1, 0.2, 0.3
>            Reporter: Roger Meier
>            Assignee: Roger Meier
>              Labels: gsoc2014, mentor
>         Attachments: 
> 0001-THRIFT-847-Test-Framework-harmonization-across-all-l.patch, 
> 0001-THRIFT-847-Test-Framework-harmonization-across-all-l.patch, 
> 0001-THRIFT-847-Test-Framework-harmonization-across-all-l.patch, 
> 0001-THRIFT-847-Test-Framework-harmonization-across-all-l.patch, 
> 0001-THRIFT-847-Test-Framework-harmonization-across-all-l.patch, 
> THRIFT-847_add__make_cross__build_target.patch, build.xml, test.sh, 
> v1-WORK_IN_PROGRESS-unified_tests.tar.gz
>
>
> Today each Language supported by Thrift, have its own unit test, all are 
> using the same Thrift IDL's located at the test directory. But the behavior 
> of these tests seems to be different from language to language... this makes 
> it difficult to do tests and bug fixing across different Languages. e.g.
> * C++ Test and JavaScript Test Server written in Java have different 
> responses for the same services
> * C# and Java Test Server have different responses for testException as C++
> I propose the following steps:
> * identify the language with the reference implementation (well defined 
> return values for all test cases) 
> * update the ThriftTest.thrift with details about the required return values 
> that have to be implemented
> * update test implementations and move language tests into their appropriate 
> library directory (THRIFT-35)
> * a public test server that supports multiple protocols and transports could 
> be another enhancement for testing purposes
> I'm ready to help preparing patches, just tell me what you need!



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to