We are developing a library that we are looking to support on multiple platforms. We currently have a .Net(Desktop, CF, Silverlight, WP7), a Java (desktop and android) and a C++ (win32 for now) flavor and begining to feel the burden of aligning and maintaining these implementation. We have a relative small public interface exposed on these libraries which should all be aligned in functionality though we allow each platform to take advantage of their syntax etc. to avoid always having to adhere to the lowest common denominator.
We have a quite large testsuite (both unit and integration tests) against particularly our .Net implementation but would really like to avoid having to repeat the "same" tests for each platform. We are looking for some pragmatic advise/solutions to handling these (and future) platforms in some easy and uniform way with regards to testing.
We have been tossing around the idea of some kind of centralized "testdriver" that can be adapted to each platform. This would allow the tests to be written in one place (in e.g. .Net) and then adapted/executed on each platform (via e.g. interprocess to a testclient on the particular platform that translates the test-inputs/outputs to the specific platform) but are unsure if that is a road that leads to heaven or hell.
Just to clarify, we would really like some advise on maintaining tests for a component across multiple and avoid as much as possible the repeated/platform specific tests.
Any thoughts, experience, ideas on this subject?