Module Name: src Committed By: pooka Date: Tue Nov 30 16:16:33 UTC 2010
Modified Files: src/distrib/sets/lists/tests: mi src/tests/rump/rumpvfs: Makefile Added Files: src/tests/rump/rumpvfs: t_p2kifs.c Log Message: test makecn/freecn To generate a diff of this commit: cvs rdiff -u -r1.161 -r1.162 src/distrib/sets/lists/tests/mi cvs rdiff -u -r1.1 -r1.2 src/tests/rump/rumpvfs/Makefile cvs rdiff -u -r0 -r1.1 src/tests/rump/rumpvfs/t_p2kifs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/sets/lists/tests/mi diff -u src/distrib/sets/lists/tests/mi:1.161 src/distrib/sets/lists/tests/mi:1.162 --- src/distrib/sets/lists/tests/mi:1.161 Mon Nov 29 19:29:47 2010 +++ src/distrib/sets/lists/tests/mi Tue Nov 30 16:16:33 2010 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.161 2010/11/29 19:29:47 njoly Exp $ +# $NetBSD: mi,v 1.162 2010/11/30 16:16:33 pooka Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -411,6 +411,7 @@ ./usr/libdata/debug/usr/tests/rump/rumpkern/t_vm.debug tests-syscall-debug debug,atf ./usr/libdata/debug/usr/tests/rump/rumpvfs tests-syscall-debug ./usr/libdata/debug/usr/tests/rump/rumpvfs/t_etfs.debug tests-syscall-debug debug,atf +./usr/libdata/debug/usr/tests/rump/rumpvfs/t_p2kifs.debug tests-syscall-debug debug,atf ./usr/libdata/debug/usr/tests/syscall tests-syscall-debug ./usr/libdata/debug/usr/tests/syscall/t_cmsg.debug tests-syscall-debug debug,atf ./usr/libdata/debug/usr/tests/syscall/t_timer.debug tests-syscall-debug debug,atf @@ -1638,6 +1639,7 @@ ./usr/tests/rump/rumpvfs tests-rump-tests ./usr/tests/rump/rumpvfs/Atffile tests-rump-tests atf ./usr/tests/rump/rumpvfs/t_etfs tests-rump-tests atf +./usr/tests/rump/rumpvfs/t_p2kifs tests-rump-tests atf ./usr/tests/sys tests-sys-tests ./usr/tests/sys/Atffile tests-sys-tests atf ./usr/tests/sys/rc tests-sys-tests Index: src/tests/rump/rumpvfs/Makefile diff -u src/tests/rump/rumpvfs/Makefile:1.1 src/tests/rump/rumpvfs/Makefile:1.2 --- src/tests/rump/rumpvfs/Makefile:1.1 Wed Jun 16 19:29:33 2010 +++ src/tests/rump/rumpvfs/Makefile Tue Nov 30 16:16:33 2010 @@ -1,10 +1,11 @@ -# $NetBSD: Makefile,v 1.1 2010/06/16 19:29:33 pooka Exp $ +# $NetBSD: Makefile,v 1.2 2010/11/30 16:16:33 pooka Exp $ .include <bsd.own.mk> TESTSDIR= ${TESTSBASE}/rump/rumpvfs TESTS_C= t_etfs +TESTS_C+= t_p2kifs LDADD= -lrumpvfs -lrump -lrumpuser -lpthread Added files: Index: src/tests/rump/rumpvfs/t_p2kifs.c diff -u /dev/null src/tests/rump/rumpvfs/t_p2kifs.c:1.1 --- /dev/null Tue Nov 30 16:16:34 2010 +++ src/tests/rump/rumpvfs/t_p2kifs.c Tue Nov 30 16:16:33 2010 @@ -0,0 +1,94 @@ +/* $NetBSD: t_p2kifs.c,v 1.1 2010/11/30 16:16:33 pooka Exp $ */ + +/*- + * Copyright (c) 2010 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND + * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <sys/types.h> +#include <sys/mount.h> +#include <sys/sysctl.h> + +#include <rump/rump.h> +#include <rump/rump_syscalls.h> + +#include <atf-c.h> +#include <fcntl.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> + +#include "../../h_macros.h" + +ATF_TC(makecn); +ATF_TC_HEAD(makecn, tc) +{ + + atf_tc_set_md_var(tc, "descr", "Tests makecn/LOOKUP/freecn"); +} + +#define TESTFILE "testi" + +ATF_TC_BODY(makecn, tc) +{ + struct componentname *cn; + char pathstr[] = TESTFILE; + struct vnode *vp; + extern struct vnode *rumpns_rootvnode; + + rump_init(); + + /* + * Strategy is to create a componentname, edit the passed + * string, and then do a lookup with the componentname. + */ + RL(rump_sys_mkdir("/" TESTFILE, 0777)); + + /* need stable lwp for componentname */ + RZ(rump_pub_lwproc_newproc()); + + /* try it once with the right path */ + cn = rump_pub_makecn(RUMP_NAMEI_LOOKUP, 0, pathstr, strlen(pathstr), + rump_pub_cred_create(0, 0, 0, NULL), rump_pub_lwproc_curlwp()); + RZ(RUMP_VOP_LOOKUP(rumpns_rootvnode, &vp, cn)); + RUMP_VOP_UNLOCK(vp); + rump_pub_freecn(cn, RUMPCN_FREECRED); + + /* and then with modification-in-the-middle */ + cn = rump_pub_makecn(RUMP_NAMEI_LOOKUP, 0, pathstr, strlen(pathstr), + rump_pub_cred_create(0, 0, 0, NULL), rump_pub_lwproc_curlwp()); + strcpy(pathstr, "/muuta"); + RZ(RUMP_VOP_LOOKUP(rumpns_rootvnode, &vp, cn)); + RUMP_VOP_UNLOCK(vp); + rump_pub_freecn(cn, RUMPCN_FREECRED); +} + +ATF_TP_ADD_TCS(tp) +{ + + ATF_TP_ADD_TC(tp, makecn); + + return atf_no_error(); +}