#include <assert.h> #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <sys/syscall.h> #define GO(syscall_num, param) \ fprintf(stderr, "---------------------------------------------------------\n" \ "%3d:%24s %s\n" \ "---------------------------------------------------------\n", \ syscall_num, #syscall_num, param); #define SY res = syscall #define FAIL assert(res == -1); #define SUCC assert(res != -1); #define FAILx(E) \ do { \ int myerrno = errno; \ if (res == -1) { \ if (myerrno == E) { \ /* as expected */ \ } \ else { \ fprintf(stderr, "Expected error %s (%d), got %d\n", #E, E, myerrno); \ exit(1); \ } \ } \ else { \ fprintf(stderr, "Expected error %s (%d), got success\n", #E, E); \ exit(1); \ } \ } while (0); /* Module variables. */ static long x0; static long res;