summaryrefslogtreecommitdiff
path: root/harness/cases/14.t
blob: 62a80b3766f665e25d8149410c5d1c190cf6dbdb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "aio_setup.h"
#include <sys/mman.h>

#define SIZE 768*1024*1024

//just submit an I/O

int test_main(void)
{
        char *buf;
        int rwfd;
        int res;
        long size;
        struct iocb iocb;
        struct iocb *iocbs[] = { &iocb };
        int loop = 10;
        int i;

        size = SIZE;

        printf("size = %ld\n", size);

        rwfd = open("testdir/rwfile", O_RDWR);          assert(rwfd != 
-1);
        res = ftruncate(rwfd, 0);                       assert(res == 0);
        buf = malloc(size);                             assert(buf != 
NULL);

        for(i=0;i<loop;i++) {

                switch(i%2) {
                case 0:
                        io_prep_pwrite(&iocb, rwfd, buf, size, 0);
                        break;
                case 1:
                        io_prep_pread(&iocb, rwfd, buf, size, 0);
                }

                res = io_submit(io_ctx, 1, iocbs);
                if (res != 1) {
                        printf("submit: io_submit res=%d [%s]\n", res, 
strerror(-res));
                        return res;
                }
        }

        res = ftruncate(rwfd, 0);                       assert(res == 0);

        exit(0);

}