1314818Sngie/* $NetBSD: t_ptyfs.c,v 1.2 2017/01/13 21:30:40 christos Exp $ */ 2272343Sngie 3272343Sngie#include <sys/types.h> 4272343Sngie#include <sys/mount.h> 5272343Sngie 6272343Sngie#include <atf-c.h> 7272343Sngie#include <err.h> 8272343Sngie#include <errno.h> 9272343Sngie#include <fcntl.h> 10272343Sngie#include <stdio.h> 11272343Sngie#include <unistd.h> 12272343Sngie#include <string.h> 13272343Sngie#include <stdlib.h> 14272343Sngie 15272343Sngie#include <rump/rump.h> 16272343Sngie#include <rump/rump_syscalls.h> 17272343Sngie 18272343Sngie#include <fs/ptyfs/ptyfs.h> 19272343Sngie 20314818Sngie#include "h_macros.h" 21272343Sngie 22272343Sngiestatic void 23272343Sngiemountptyfs(const char *mp, int flags) 24272343Sngie{ 25272343Sngie struct ptyfs_args args; 26272343Sngie 27272343Sngie if (rump_sys_mkdir("/mp", 0777) == -1) { 28272343Sngie if (errno != EEXIST) 29272343Sngie atf_tc_fail_errno("mp1"); 30272343Sngie } 31272343Sngie memset(&args, 0, sizeof(args)); 32272343Sngie args.version = PTYFS_ARGSVERSION; 33272343Sngie args.mode = 0777; 34272343Sngie if (rump_sys_mount(MOUNT_PTYFS, mp, flags, &args, sizeof(args)) == -1) 35272343Sngie atf_tc_fail_errno("could not mount ptyfs"); 36272343Sngie} 37272343Sngie 38272343SngieATF_TC(basic); 39272343SngieATF_TC_HEAD(basic, tc) 40272343Sngie{ 41272343Sngie atf_tc_set_md_var(tc, "descr", "mount ptyfs"); 42272343Sngie} 43272343Sngie 44272343SngieATF_TC_BODY(basic, tc) 45272343Sngie{ 46272343Sngie 47272343Sngie rump_init(); 48272343Sngie 49272343Sngie mountptyfs("/mp", 0); 50272343Sngie if (rump_sys_unmount("/mp", 0) == -1) 51272343Sngie atf_tc_fail_errno("unmount failed"); 52272343Sngie 53272343Sngie /* done */ 54272343Sngie} 55272343Sngie 56272343SngieATF_TP_ADD_TCS(tp) 57272343Sngie{ 58272343Sngie 59272343Sngie ATF_TP_ADD_TC(tp, basic); 60272343Sngie 61272343Sngie return atf_no_error(); 62272343Sngie} 63