diff options
Diffstat (limited to 'libaio-0.3.109/harness/cases/common-7-8.h')
-rw-r--r-- | libaio-0.3.109/harness/cases/common-7-8.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/libaio-0.3.109/harness/cases/common-7-8.h b/libaio-0.3.109/harness/cases/common-7-8.h new file mode 100644 index 0000000..fc54bbf --- /dev/null +++ b/libaio-0.3.109/harness/cases/common-7-8.h @@ -0,0 +1,38 @@ +/* common-7-8.h +*/ +#include "aio_setup.h" + +#include <errno.h> +#include <unistd.h> + +#define SIZE 512 + +int test_main(void) +{ + char *buf; + int rwfd; + int status = 0, res; + long long limit; + + rwfd = open(FILENAME, O_RDWR|O_CREAT, 0600); assert(rwfd != -1); + res = ftruncate(rwfd, 0); assert(res == 0); + buf = malloc(SIZE); assert(buf != NULL); + memset(buf, 0, SIZE); + + limit = LIMIT; + + SET_RLIMIT(limit); + + status |= attempt_rw(rwfd, buf, SIZE, limit-SIZE, WRITE, SIZE); + status |= attempt_rw(rwfd, buf, SIZE, limit-SIZE, READ, SIZE); + + status |= attempt_rw(rwfd, buf, SIZE, 1+limit-SIZE, WRITE, SIZE-1); + status |= attempt_rw(rwfd, buf, SIZE, 1+limit-SIZE, READ, SIZE-1); + + status |= attempt_rw(rwfd, buf, SIZE, limit, WRITE, -EFBIG); + status |= attempt_rw(rwfd, buf, SIZE, limit, READ, 0); + status |= attempt_rw(rwfd, buf, 0, limit, WRITE, 0); + + return status; +} + |