xref: /netbsd-src/tests/rump/rumpvfs/t_basic.c (revision c54cb81102ced2313cb40993fe05548aca9933a1)
1*c54cb811Schristos /*	$NetBSD: t_basic.c,v 1.3 2017/01/13 21:30:43 christos Exp $	*/
29107903fSpooka 
39107903fSpooka /*-
49107903fSpooka  * Copyright (c) 2011 The NetBSD Foundation, Inc.
59107903fSpooka  * All rights reserved.
69107903fSpooka  *
79107903fSpooka  * Redistribution and use in source and binary forms, with or without
89107903fSpooka  * modification, are permitted provided that the following conditions
99107903fSpooka  * are met:
109107903fSpooka  * 1. Redistributions of source code must retain the above copyright
119107903fSpooka  *    notice, this list of conditions and the following disclaimer.
129107903fSpooka  * 2. Redistributions in binary form must reproduce the above copyright
139107903fSpooka  *    notice, this list of conditions and the following disclaimer in the
149107903fSpooka  *    documentation and/or other materials provided with the distribution.
159107903fSpooka  *
169107903fSpooka  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND
179107903fSpooka  * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
189107903fSpooka  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
199107903fSpooka  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
209107903fSpooka  * IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
219107903fSpooka  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
229107903fSpooka  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
239107903fSpooka  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
249107903fSpooka  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
259107903fSpooka  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
269107903fSpooka  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
279107903fSpooka  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
289107903fSpooka  */
299107903fSpooka 
309107903fSpooka #include <sys/types.h>
319107903fSpooka #include <sys/mount.h>
329107903fSpooka #include <sys/sysctl.h>
339107903fSpooka 
349107903fSpooka #include <rump/rump.h>
359107903fSpooka #include <rump/rump_syscalls.h>
369107903fSpooka 
379107903fSpooka #include <atf-c.h>
389107903fSpooka #include <fcntl.h>
399107903fSpooka #include <stdio.h>
409107903fSpooka #include <stdlib.h>
419107903fSpooka #include <unistd.h>
429107903fSpooka 
43*c54cb811Schristos #include "h_macros.h"
449107903fSpooka 
459107903fSpooka ATF_TC(lseekrv);
ATF_TC_HEAD(lseekrv,tc)469107903fSpooka ATF_TC_HEAD(lseekrv, tc)
479107903fSpooka {
489107903fSpooka 
499107903fSpooka 	atf_tc_set_md_var(tc, "descr", "Test lseek return values");
509107903fSpooka }
519107903fSpooka 
529107903fSpooka #define TESTFILE "testi"
539107903fSpooka 
549107903fSpooka #define FIVE_MEGS (5*1024*1024)
559107903fSpooka #define FIVE_GIGS (5*1024*1024*1024LL)
569107903fSpooka 
ATF_TC_BODY(lseekrv,tc)579107903fSpooka ATF_TC_BODY(lseekrv, tc)
589107903fSpooka {
599107903fSpooka 	off_t rv;
609107903fSpooka 	int fd;
619107903fSpooka 
629107903fSpooka 	RZ(rump_init());
639107903fSpooka 	RL(fd = rump_sys_open(TESTFILE, O_RDWR | O_CREAT, 0777));
649107903fSpooka 
656ac86738Spooka 	rv = rump_sys_lseek(37, FIVE_MEGS, SEEK_SET);
666ac86738Spooka 	ATF_REQUIRE_ERRNO(EBADF, rv == -1);
676ac86738Spooka 
689107903fSpooka 	rv = rump_sys_lseek(fd, FIVE_MEGS, SEEK_SET);
699107903fSpooka 	ATF_REQUIRE_EQ(rv, FIVE_MEGS);
709107903fSpooka 
719107903fSpooka 	rv = rump_sys_lseek(fd, FIVE_GIGS, SEEK_SET);
729107903fSpooka 	ATF_REQUIRE_EQ(rv, FIVE_GIGS);
739107903fSpooka }
749107903fSpooka 
ATF_TP_ADD_TCS(tp)759107903fSpooka ATF_TP_ADD_TCS(tp)
769107903fSpooka {
779107903fSpooka 
789107903fSpooka 	ATF_TP_ADD_TC(tp, lseekrv);
799107903fSpooka 
809107903fSpooka 	return atf_no_error();
819107903fSpooka }
82