> -----Ursprüngliche Nachricht-----
> Von: Anthony Molinaro [mailto:antho...@alumni.caltech.edu]
> Gesendet: Sonntag, 19. Juni 2011 21:17
> An: dev@thrift.apache.org
> Cc: <dev@thrift.apache.org>
> Betreff: Re: AW: AW: Use rebar with erlang code?
> 
> 
> > From my perspective everything should be moved from test/erl to
> > lib/erl/test/
> >
> > The test directory should only contain test definitions like the
> > ThriftTest.thrift
> >>
> >>>
> >>
> 
> Doesn't that sort of make testing harder if the thrift files are in a
different
> place from the tests? Also if cross language tests are ever implemented
> where would you expect those to live?
> I might suggest that pure unit tests (including thrift files for those
tests) live
> in the lib/*/test directories but the test servers and clients for cross
language
> testing continue to live in top level test directory (possibly with
something
> which runs all combinations against each other).
> 
> -Anthony

>From my perspective test/ is the directory that keeps all IDL files for
UnitTests, which will be used across languages.
e.g. the ThriftTest.thrift is used by several unit tests

I think it's much easier to build all the tests when they are part of the
usual build procedure of a specific language.
It's probably a bit difficult to keep test under test/ in sync with the
build process of the library,
that's why a propose to put all the tests in lib/<lang>/test/ 

 The get a cross language test capability I suggest the following approach:
-  The language specific build procedures should create an executable with
the name TestClient  and TestServer
-  They should be placed under test/<lang>/ or a shell script with the same
name calls corresponding Client or Server
-  The test client and servers should have a unified set of arguments, so
that cross language tests could easily be automated, e.g. 
roger@slave:~/software/thrift/thrift-trunk$ ./test/cpp/TestServer -h
Allowed options:
  -h [ --help ]               produce help message
  --port arg (=9090)                    Port number to listen
  --domain-socket arg               Unix Domain Socket (e.g.
/tmp/ThriftTest.thrift)
  --server-type arg (=simple) type of server, "simple", "thread-pool",
"threaded", or "nonblocking"
  --transport arg (=buffered) transport: buffered, framed, http
  --protocol arg (=binary)        protocol: binary, json
  --ssl                                               Encrypted Transport
using SSL
  --processor-events                processor-events
  -n [ --workers ] arg (=4)        Number of thread pools workers. Only
valid for thread-pool server type

roger@slave:~/software/thrift/thrift-trunk$ ./test/cpp/TestClient -h
Allowed options:
  -h [ --help ]                                 produce help message
  --host arg (=localhost)           Host to connect
  --port arg (=9090)                    Port number to connect
  --domain-socket arg               Domain Socket (e.g.
/tmp/ThriftTest.thrift), instead of host and port
  --transport arg (=buffered) Transport: buffered, framed, http
  --protocol arg (=binary)         Protocol: binary, json
  --ssl                                                Encrypted Transport
using SSL
  -n [ --testloops ] arg (=1)      Number of Tests


-Roger



Reply via email to