1 1.2 christos /* $NetBSD: t_io.c,v 1.2 2017/01/13 21:30:40 christos Exp $ */ 2 1.1 pooka 3 1.1 pooka #include <sys/types.h> 4 1.1 pooka #include <sys/mount.h> 5 1.1 pooka #include <sys/socket.h> 6 1.1 pooka 7 1.1 pooka #include <assert.h> 8 1.1 pooka #include <atf-c.h> 9 1.1 pooka #include <err.h> 10 1.1 pooka #include <errno.h> 11 1.1 pooka #include <fcntl.h> 12 1.1 pooka #include <pthread.h> 13 1.1 pooka #include <puffs.h> 14 1.1 pooka #include <puffsdump.h> 15 1.1 pooka #include <stdio.h> 16 1.1 pooka #include <unistd.h> 17 1.1 pooka #include <string.h> 18 1.1 pooka #include <stdlib.h> 19 1.1 pooka 20 1.1 pooka #include <rump/rump.h> 21 1.1 pooka #include <rump/rump_syscalls.h> 22 1.1 pooka 23 1.2 christos #include "h_macros.h" 24 1.1 pooka #include "../common/h_fsmacros.h" 25 1.1 pooka 26 1.1 pooka #define MAKEOPTS(...) \ 27 1.1 pooka char *theopts[] = {NULL, "-s", __VA_ARGS__, "dtfs", "n/a", NULL} 28 1.1 pooka 29 1.1 pooka ATF_TC(nocache); 30 1.1 pooka ATF_TC_HEAD(nocache, tc) 31 1.1 pooka { 32 1.1 pooka 33 1.1 pooka atf_tc_set_md_var(tc, "descr", "tests large i/o without page cache"); 34 1.1 pooka } 35 1.1 pooka 36 1.1 pooka ATF_TC_BODY(nocache, tc) 37 1.1 pooka { 38 1.1 pooka MAKEOPTS("-o", "nopagecache"); 39 1.1 pooka char data[1024*1024]; 40 1.1 pooka void *args; 41 1.1 pooka int fd; 42 1.1 pooka 43 1.1 pooka FSTEST_CONSTRUCTOR_FSPRIV(tc, puffs, args, theopts); 44 1.1 pooka FSTEST_ENTER(); 45 1.1 pooka 46 1.1 pooka RL(fd = rump_sys_open("afile", O_CREAT | O_RDWR, 0755)); 47 1.1 pooka RL(rump_sys_write(fd, data, sizeof(data))); 48 1.1 pooka rump_sys_close(fd); 49 1.1 pooka 50 1.1 pooka FSTEST_EXIT(); 51 1.1 pooka FSTEST_DESTRUCTOR(tc, puffs, args); 52 1.1 pooka } 53 1.1 pooka 54 1.1 pooka 55 1.1 pooka ATF_TP_ADD_TCS(tp) 56 1.1 pooka { 57 1.1 pooka 58 1.1 pooka ATF_TP_ADD_TC(tp, nocache); 59 1.1 pooka 60 1.1 pooka return atf_no_error(); 61 1.1 pooka } 62