Most current unit testing frameworks for C and C++ are portable. The same tools can be used to test code on a multitude of platforms. Although a sound feature, several compromises have to be made to allow portability of both tools and test suites. As such, foregoing non-portable operating system features contributes to the fact that these frameworks are significantly less convenient to use than their managed counterparts NUnit or JUnit.
For a vast amount of projects, portability is not actually required - a significant amount of software developed today is targeted at a single platform only. Striving to provide a powerful, yet easy to use testing framework, the approach chosen by cfix is thus to sacrifice portability in order to gain the option to fully exploit the services provided by the Windows platform. These services at hand, cfix is thus able to provide the features expressed in the previous section - minimizing the amount of code a developer has to write and providing a strict separation in terms of artifacts between test code and test runner.