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 OPENATTR 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="OPENATTR"
  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 openattr_neg03{a}, we need to do "Openattr" operation in non-global zone
  57         # for TX test, so add a tcl script to non-global zone.
  58         echo "connect $SERVER" > $ZONE_PATH/root/openattr_neg03
  59         echo 'set res [compound {Putfh $env(qfh); Lookup $env(RWFILE); Openattr T}]' \
  60                 >> $ZONE_PATH/root/openattr_neg03
  61         echo 'puts "$status $res"' >> $ZONE_PATH/root/openattr_neg03
  62         echo 'disconnect' >> $ZONE_PATH/root/openattr_neg03
  63 fi
  64 
  65 # Start the tests with some information
  66 echo
  67 echo "Testing at CLIENT=[$CLIENT] to SERVER=[$SERVER]"
  68 echo "Started $TESTTAG op tests at [$(date)] ..."
  69 echo
  70 
  71 # Now ready to run the tests
  72 (
  73 for t in $TESTLIST; do
  74         # Need to switch to $TUSER2 for quota testing
  75         grep DQUOT $t >/dev/null 2>&1
  76         rc=$?
  77         grep $TUSER2 /etc/passwd >/dev/null 2>&1
  78         rc=$(( $rc + $iscipso + $? ))
  79         if (( $rc == 0 )); then
  80                 su $TUSER2 -c "(. $CONFIGFILE; \
  81                         $TESTROOT/nfsh $t)"
  82         else
  83                 $TESTROOT/nfsh $t
  84         fi
  85 done
  86 )
  87 
  88 [[ $iscipso == 1 ]] && rm $ZONE_PATH/root/openattr_neg03
  89 
  90 echo
  91 echo "Testing ends at [$(date)]."
  92 echo 
  93 exit $PASS