Ah... the illusions of "portability". A lot of the reason you want to test your code is that there may be behaviors specific to the target platform (either in the hardware itself, in the compiler, in the runtime, or in support libraries/frameworks). You may well write with the intent to be portable, but you test for the reality that you never really are.