Fix testcase FD_Fail2.c

Major issue was that puts was used for the succeed printf calls.
With newer gcc/clang versions, printf is always used.

The former took different code paths leading to much more possibilities
to trigger failed writes and therefore generating more test cases.

This patch avoids the generation of puts.
And checks for the 4 possible generated test cases for 2 possible errors.
What does FAIL: mean here? This makes it look like it has a semantic meaning for the test but I don't think it does.