> -----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