1 #!/usr/bin/ksh 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, Version 1.0 only 7 # (the "License"). You may not use this file except in compliance 8 # with the License. 9 # 10 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 11 # or http://www.opensolaris.org/os/licensing. 12 # See the License for the specific language governing permissions 13 # and limitations under the License. 14 # 15 # When distributing Covered Code, include this CDDL HEADER in each 16 # file and include the License file at usr/src/OPENSOLARIS.LICENSE. 17 # If applicable, add the following below this CDDL HEADER, with the 18 # fields enclosed by brackets "[]" replaced with your own identifying 19 # information: Portions Copyright [yyyy] [name of copyright owner] 20 # 21 # CDDL HEADER END 22 # 23 # 24 #ident "%Z%%M% %I% %E% SMI" 25 # 26 # Copyright (c) 2001 by Sun Microsystems, Inc. 27 # All rights reserved. 28 # 29 30 # 31 # Source the utilities. 32 # 33 DIRNAME=`dirname $0` 34 . ${DIRNAME}/utilities.san 35 36 # 37 # Process the input arguments. 38 # 39 VALIDOPTS=dr:p: 40 process_args $@ 41 42 # 43 # In case the tester wants to see script output, allow them 44 # to run in debug mode. 45 # 46 TESTNAME=`basename $0` 47 if [ ! -z "${DEBUG}" ] 48 then 49 OUTFILE=/tmp/${TESTNAME}.$$ 50 echo "Output from test: ${TESTNAME}" >${OUTFILE} 51 echo >>${OUTFILE} 52 echo "debug output can be found at ${OUTFILE}" 53 else 54 OUTFILE=/dev/null 55 fi 56 57 # 58 # Verify that the macro is not already defined. 59 # 60 DATAFILE=/tmp/${TESTNAME}.data.$$ 61 /usr/sbin/dhtadm -r ${DHCPRSRC} -p ${DHCPPATH} -P >${DATAFILE} 2>>${OUTFILE} 62 RET=$? 63 if [ "${RET}" != "0" ] 64 then 65 rm ${DATAFILE} 66 echo "Error displaying dhcptab = ${RET}" 67 echo "${TESTNAME} - Test failed!" 68 exit 1 69 fi 70 71 MACRO=`grep "^TestMac" ${DATAFILE}` 72 if [ ! -z "${MACRO}" ] 73 then 74 rm ${DATAFILE} 75 echo "Macro already exists in dhcptab" 76 echo "${TESTNAME} - Test failed!" 77 exit 1 78 fi 79 rm ${DATAFILE} 80 81 # 82 # Create the macro. 83 # 84 /usr/sbin/dhtadm -r ${DHCPRSRC} -p ${DHCPPATH} -A -m TestMac -d ':Rootpath=/usr:' >>${OUTFILE} 2>&1 85 RET=$? 86 if [ "${RET}" != "0" ] 87 then 88 echo "Error creating macro = ${RET}" 89 echo "${TESTNAME} - Test failed!" 90 exit 1 91 fi 92 93 # 94 # Verify that the macro is defined in the dhcptab. 95 # 96 /usr/sbin/dhtadm -r ${DHCPRSRC} -p ${DHCPPATH} -P >${DATAFILE} 2>>${OUTFILE} 97 RET=$? 98 if [ "${RET}" != "0" ] 99 then 100 rm ${DATAFILE} 101 echo "Error displaying dhcptab = ${RET}" 102 echo "${TESTNAME} - Test failed!" 103 exit 1 104 fi 105 106 MACRO=`grep "^TestMac" ${DATAFILE}` 107 if [ -z "${MACRO}" ] 108 then 109 rm ${DATAFILE} 110 echo "Macro not added to dhcptab." 111 echo "${TESTNAME} - Test failed!" 112 exit 1 113 fi 114 rm ${DATAFILE} 115 116 # 117 # Grab the macro definition from the dhcptab 118 # 119 MACRO_DEFINITION=$(get_value ${MACRO}) 120 121 # 122 # Verify that the defintion was defined correctly 123 # 124 SRCH=":Rootpath=\/usr:" 125 macro_find_and_replace 126 127 # 128 # Verify that there was nothing else in the definition 129 # 130 if [ "${MACRO_DEFINITION}" != ":" ] 131 then 132 echo "Macro definition has invalid extra symbols: ${MACRO_DEFINITION}" 133 echo "${TESTNAME} - Test failed!" 134 exit 1 135 fi 136 137 echo "${TESTNAME} - Test passed." 138 exit 0