xref: /netbsd-src/tests/fs/puffs/t_io.c (revision c54cb81102ced2313cb40993fe05548aca9933a1)
1*c54cb811Schristos /*	$NetBSD: t_io.c,v 1.2 2017/01/13 21:30:40 christos Exp $	*/
2284f30f0Spooka 
3284f30f0Spooka #include <sys/types.h>
4284f30f0Spooka #include <sys/mount.h>
5284f30f0Spooka #include <sys/socket.h>
6284f30f0Spooka 
7284f30f0Spooka #include <assert.h>
8284f30f0Spooka #include <atf-c.h>
9284f30f0Spooka #include <err.h>
10284f30f0Spooka #include <errno.h>
11284f30f0Spooka #include <fcntl.h>
12284f30f0Spooka #include <pthread.h>
13284f30f0Spooka #include <puffs.h>
14284f30f0Spooka #include <puffsdump.h>
15284f30f0Spooka #include <stdio.h>
16284f30f0Spooka #include <unistd.h>
17284f30f0Spooka #include <string.h>
18284f30f0Spooka #include <stdlib.h>
19284f30f0Spooka 
20284f30f0Spooka #include <rump/rump.h>
21284f30f0Spooka #include <rump/rump_syscalls.h>
22284f30f0Spooka 
23*c54cb811Schristos #include "h_macros.h"
24284f30f0Spooka #include "../common/h_fsmacros.h"
25284f30f0Spooka 
26284f30f0Spooka #define MAKEOPTS(...) \
27284f30f0Spooka     char *theopts[] = {NULL, "-s", __VA_ARGS__, "dtfs", "n/a", NULL}
28284f30f0Spooka 
29284f30f0Spooka ATF_TC(nocache);
ATF_TC_HEAD(nocache,tc)30284f30f0Spooka ATF_TC_HEAD(nocache, tc)
31284f30f0Spooka {
32284f30f0Spooka 
33284f30f0Spooka 	atf_tc_set_md_var(tc, "descr", "tests large i/o without page cache");
34284f30f0Spooka }
35284f30f0Spooka 
ATF_TC_BODY(nocache,tc)36284f30f0Spooka ATF_TC_BODY(nocache, tc)
37284f30f0Spooka {
38284f30f0Spooka 	MAKEOPTS("-o", "nopagecache");
39284f30f0Spooka 	char data[1024*1024];
40284f30f0Spooka 	void *args;
41284f30f0Spooka 	int fd;
42284f30f0Spooka 
43284f30f0Spooka 	FSTEST_CONSTRUCTOR_FSPRIV(tc, puffs, args, theopts);
44284f30f0Spooka 	FSTEST_ENTER();
45284f30f0Spooka 
46284f30f0Spooka 	RL(fd = rump_sys_open("afile", O_CREAT | O_RDWR, 0755));
47284f30f0Spooka 	RL(rump_sys_write(fd, data, sizeof(data)));
48284f30f0Spooka 	rump_sys_close(fd);
49284f30f0Spooka 
50284f30f0Spooka 	FSTEST_EXIT();
51284f30f0Spooka 	FSTEST_DESTRUCTOR(tc, puffs, args);
52284f30f0Spooka }
53284f30f0Spooka 
54284f30f0Spooka 
ATF_TP_ADD_TCS(tp)55284f30f0Spooka ATF_TP_ADD_TCS(tp)
56284f30f0Spooka {
57284f30f0Spooka 
58284f30f0Spooka 	ATF_TP_ADD_TC(tp, nocache);
59284f30f0Spooka 
60284f30f0Spooka 	return atf_no_error();
61284f30f0Spooka }
62