1 #! /usr/bin/ksh -p
2 #
3 # CDDL HEADER START
4 #
5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License (the "License").
7 # You may not use this file except in compliance with the License.
8 #
9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 # or http://www.opensolaris.org/os/licensing.
11 # See the License for the specific language governing permissions
12 # and limitations under the License.
13 #
14 # When distributing Covered Code, include this CDDL HEADER in each
15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 # If applicable, add the following below this CDDL HEADER, with the
17 # fields enclosed by brackets "[]" replaced with your own identifying
18 # information: Portions Copyright [yyyy] [name of copyright owner]
19 #
20 # CDDL HEADER END
21 #
22
23 #
24 # Copyright 2008 Sun Microsystems, Inc. All rights reserved.
25 # Use is subject to license terms.
26 #
27 # control program for WRITE op tests
28
29 [[ -n $DEBUG && $DEBUG != 0 ]] && set -x
30
31 NAME=$(basename $0)
32 DIR=$(dirname $0)
33 CDIR=$(pwd)
34 TESTROOT=${TESTROOT:-"$CDIR/../../"}
35 TESTTAG="WRITE"
36 TESTLIST=$(egrep -v "^#|^ *$" ${TESTTAG}.flist)
37
38 # sourcing framework global environment variables created after go_setup
39 # and for this purpose only this file should be sourced
40 CONFIGFILE=/var/tmp/nfsv4/config/config.suite
41 if [[ ! -f $CONFIGFILE ]]; then
42 echo "$NAME: CONFIGFILE[$CONFIGFILE] not found;"
43 echo "\texit UNINITIATED."
44 exit 6
45 fi
46 . $CONFIGFILE
47
48 #source support functions
49 TESTSH="$TESTROOT/testsh"
50 . $TESTSH
51
52 iscipso=0
53 is_cipso "vers=4" $SERVER
54 if (( $? == $CIPSO_NFSV4 )); then
55 iscipso=1
56 # In write_neg03{d}, we need to do "Write" operation in non-global zone
57 # for TX test, so add a tcl script to the zone.
58 echo "connect $SERVER" > $ZONE_PATH/root/write_neg03
59 echo 'set res [compound {Putfh $env(qfh); Lookup $env(tf); \
60 Write {0 0} 1 f a $env(data)}]' \
61 >> $ZONE_PATH/root/write_neg03
62 echo 'puts "$status $res"' >> $ZONE_PATH/root/write_neg03
63 echo 'disconnect' >> $ZONE_PATH/root/write_neg03
64 fi
65
66 # Start the tests with some information
67 echo
68 echo "Testing at CLIENT=[$CLIENT] to SERVER=[$SERVER]"
69 echo "Started $TESTTAG op tests at [$(date)] ..."
70 echo
71
72 # Now ready to run the tests
73 (
74 for t in $TESTLIST; do
75 # Need to switch to $TUSER2 for quota testing
76 grep QUOT $t >/dev/null 2>&1
77 rc=$?
78 grep $TUSER2 /etc/passwd >/dev/null 2>&1
79 rc=$(( $rc + $iscipso + $? ))
80 if (( $rc == 0 )); then
81 su $TUSER2 -c "(. $CONFIGFILE; \
82 $TESTROOT/nfsh $t)"
83 else
84 $TESTROOT/nfsh $t
85 fi
86 done
87 )
88
89 [[ $iscipso == 1 ]] && rm $ZONE_PATH/root/write_neg03
90
91 echo
92 echo "Testing ends at [$(date)]."
93 echo
94 exit $PASS