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