1#include <assert.h> 2#include <errno.h> 3#include <stdio.h> 4#include <stdlib.h> 5#include <sys/syscall.h> 6 7#define GO(syscall_num, param) \ 8 fprintf(stderr, "---------------------------------------------------------\n" \ 9 "%3d:%24s %s\n" \ 10 "---------------------------------------------------------\n", \ 11 syscall_num, #syscall_num, param); 12 13#define SY res = syscall 14 15#define FAIL assert(res == -1); 16#define SUCC assert(res != -1); 17#define FAILx(E) \ 18 do { \ 19 int myerrno = errno; \ 20 if (res == -1) { \ 21 if (myerrno == E) { \ 22 /* as expected */ \ 23 } \ 24 else { \ 25 fprintf(stderr, "Expected error %s (%d), got %d\n", #E, E, myerrno); \ 26 exit(1); \ 27 } \ 28 } \ 29 else { \ 30 fprintf(stderr, "Expected error %s (%d), got success\n", #E, E); \ 31 exit(1); \ 32 } \ 33 } while (0); 34 35/* Module variables. */ 36static long x0; 37static long res; 38 39