Create a comprehensive test suite
When we originally created the protocol compiler, we had a test suite for the C++, Java and Erlang generators. As we added new target languages, the test code didn't include tests for them. The original tests have also fallen behind. This issue proposes a comprehensive test suite to make sure all target languages are correct and can communicate between each other.
All platforms can run the C++ tests (since they can build the protocol compiler, they have access to a C++ compiler.) The platforms can test to see which further targets can be tested. For instance, if Java isn't installed, then the Java tests would be skipped. Since every platform will validate their C++ generator, we don't necessarily need a platform that supports all targets. A platform that only tests C++ and Java, for example, has validated Java for all platforms. Tests that run on OS X will verify C++ and Objective-C, which means the Objective-C code will work correctly on iOS devices.
#1 Updated by Richard Neswold over 4 years ago
An initial testsuite framework has been committed (8e0e4781). At the moment, the testsuite only checks the C++ generator (and, even then, it's only testing the primitive marshal/unmarshal functions.) Although it's just a beginning, the tests found a lingering bug when unmarshalling doubles which was introduced in July when we went to a fixed-sized encoding of floating point.