tests/utils: don't ignore the return value of fwrite()
authorSean McGovern <gseanmcg@gmail.com>
Thu, 26 Apr 2012 18:56:24 +0000 (14:56 -0400)
committerDiego Biurrun <diego@biurrun.de>
Sun, 6 May 2012 15:44:59 +0000 (17:44 +0200)
Signed-off-by: Diego Biurrun <diego@biurrun.de>
tests/utils.c

index 2a85bd8..5310a11 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 
 #define SCALEBITS 8
 #define ONE_HALF  (1 << (SCALEBITS - 1))
 #define FIX(x)    ((int) ((x) * (1L << SCALEBITS) + 0.5))
 
+#define err_if(expr) do {                                              \
+    if (expr) {                                                        \
+        fprintf(stderr, "%s\n", strerror(errno));                      \
+        exit(1);                                                       \
+    }                                                                  \
+} while (0)
+
 static void rgb24_to_yuv420p(unsigned char *lum, unsigned char *cb,
                              unsigned char *cr, unsigned char *src,
                              int width, int height)
@@ -108,14 +117,14 @@ static void pgmyuv_save(const char *filename, int w, int h,
 
     f = fopen(filename, "wb");
     fprintf(f, "P5\n%d %d\n%d\n", w, h * 3 / 2, 255);
-    fwrite(lum_tab, 1, w * h, f);
+    err_if(fwrite(lum_tab, 1, w * h, f) != w * h);
     h2 = h / 2;
     w2 = w / 2;
     cb = cb_tab;
     cr = cr_tab;
     for (i = 0; i < h2; i++) {
-        fwrite(cb, 1, w2, f);
-        fwrite(cr, 1, w2, f);
+        err_if(fwrite(cb, 1, w2, f) != w2);
+        err_if(fwrite(cr, 1, w2, f) != w2);
         cb += w2;
         cr += w2;
     }