#include <assert.h> #include <errno.h> #include <stdio.h> #ifndef CHAR # define CHAR char # define L(str) str # define FPUTS fputs # define FSCANF fscanf #endif static int do_test (void) { FILE *fp = tmpfile (); if (fp == NULL) { puts ("cannot open file"); return 1; } FPUTS (L("7-11"), fp); rewind (fp); printf("setting errno to EINTR\n"); errno = EINTR; printf("checking sscanf\n"); int i, j, n; i = j = n = 0; FSCANF (fp, L(" %i - %i %n"), &i, &j, &n); printf ("found %i-%i (length=%i)\n", i, j, n); int result = 0; if (i != 7) { printf ("i is %d, expected 7\n", i); result = 1; } if (j != 11) { printf ("j is %d, expected 11\n", j); result = 1; } if (n != 4) { printf ("n is %d, expected 4\n", j); result = 1; } return result; } #define TEST_FUNCTION do_test () #include "../test-skeleton.c"