Ben Craig created THRIFT-2029:
---------------------------------
Summary: Port C++ tests to Windows
Key: THRIFT-2029
URL: https://issues.apache.org/jira/browse/THRIFT-2029
Project: Thrift
Issue Type: Improvement
Components: C++ - Library
Affects Versions: 0.9
Environment: Windows
Reporter: Ben Craig
Fix For: 1.0
Attachments: porting_tests.patch
The attached patch makes the Thrift tests buildable with Visual Studio 2008
(msvc9) + Boost 1.50, and Visual Studio 2012 Update 1 (msvc11) + Boost 1.50.
It will likely build with other versions of msvc and older boosts. I don't
have usable project files, but the code changes that are attached should go a
long way to making the project files easier for someone else.
Tests addressed:
* stress test
* nonblocking stress test
* fd transport test
* piped transport test
* debug proto test
* json proto test
* optional required test
* specialization test
* all protocol test
* transport test (mostly)
* zlib test
* unit test
* thread test
* "TestClient" + "TestServer" over binary, json, buffered, framed, simple,
thread-pool, threaded, and nonblocking+binary+framed.
Tests not addressed:
* Other variants of "TestClient" + "TestServer", notably "http". There are
also some variations that the existing test.sh doesn't try, and I haven't
tested those variations either.
* TFileTransportTest. File transport isn't quite working on Windows right now,
and I haven't the time to try and fix it.
* processor_test and concurrency_test. Makefile.am says these tests are too
strong, so I haven't attempted to port them yet.
* FileTransport and FDTransport parts of the transport test. These aren't
really working on Windows right now, so I left them mostly broken.
General changes:
* Lots of migration from snprintf to THRIFT_SNPRINTF.
* Lots of min / max parenthisizing to be able to build without NOMINMAX.
* #define of _USE_MATH_DEFINES to get access to _M_PI
* assorted size_t issues.
* No longer using getopt in the transport test or zlib test. The scripts
didn't use the getopt functionality. The main loss is that you will no longer
be able to manually set a seed.
* Rewrote transport test's trigger / alarm facility to use threads instead of
sigalarm.
* tr1 -> thrift::stdcxx changes
* lots of apache::thrift::transport::TWinsockSingleton::create();
* Fixed a race in stress test where the client could try to connect before the
server had started to listen.
* removed lots of "using namespace boost" to address uint8_t ambiguities.
* Shortened "simulated work" sleeps significantly to make "TestClient" +
"TestServer" test iterations go lots faster.
* Making it so that "TestServer" can be shut down in a way other than with
"kill" or task manager. Now, hitting enter on the keyboard will stop the
server. This shouldn't break existing scripts, but it makes it possible for
new scripts to gracefully tear down a server and check the exit status.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira