1 # 2 # CDDL HEADER START 3 # 4 # The contents of this file are subject to the terms of the 5 # Common Development and Distribution License (the "License"). 6 # You may not use this file except in compliance with the License. 7 # 8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 # or http://www.opensolaris.org/os/licensing. 10 # See the License for the specific language governing permissions 11 # and limitations under the License. 12 # 13 # When distributing Covered Code, include this CDDL HEADER in each 14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 # If applicable, add the following below this CDDL HEADER, with the 16 # fields enclosed by brackets "[]" replaced with your own identifying 17 # information: Portions Copyright [yyyy] [name of copyright owner] 18 # 19 # CDDL HEADER END 20 # 21 22 # 23 # Copyright 2007 Sun Microsystems, Inc. All rights reserved. 24 # Use is subject to license terms. 25 # 26 27 # 28 # Copyright (c) 2013 by Delphix. All rights reserved. 29 # 30 31 . $STF_SUITE/tests/functional/migration/migration.cfg 32 33 # 34 # This function creates the test archive for migration. 35 # 36 # Usage: 37 # prepare srcdir cmd 38 # 39 # Return value: 0 on success 40 # 1 on failure 41 # 42 # Where: 43 # srcdir: is the directory where the testfile is 44 # cmd: is the command to be executed. 45 # E.g. 46 # $TAR cf $TESTDIR/tar$$.tar 47 # 48 function prepare #srcdir cmd 49 { 50 typeset srcdir=$1 51 typeset cmd=$2 52 typeset -i retval=0 53 54 cwd=$PWD 55 cd $srcdir 56 (( $? != 0 )) && return 1 57 58 $cmd 59 (( $? != 0 )) && return 1 60 61 cd $cwd 62 (( $? != 0 )) && return 1 63 64 return 0 65 } 66 67 # 68 # This function executes a passed in command and then determines the chksum 69 # of the resulting file. The chksum components are checked against the ones 70 # passed in to determine if they are equal. If they are equal, 0 is returned 71 # otherwise 1 is returned. 72 # 73 # Usage: 74 # migrate destdir oldsuma oldsumb command_to_execute 75 # 76 # Return value: 0 on success 77 # 1 on failure 78 # 79 # Where: 80 # destdir: is the directory where the command is to be executed on 81 # oldsuma: is the first part of the values returned by sum 82 # oldsumb: is the second part of the values returned by sum 83 # cmd: is the command to be executed; 84 # E.g. 85 # "$TAR xf $TESTDIR/tar$$.tar" 86 # 87 function migrate #destdir oldsuma oldsumb cmd 88 { 89 typeset destdir=$1 90 typeset oldsuma=$2 91 typeset oldsumb=$3 92 typeset cmd=$4 93 typeset -i retval=0 94 95 cwd=$PWD 96 cd $destdir 97 (( $? != 0 )) && return 1 98 99 $cmd 100 (( $? != 0 )) && return 1 101 102 sumy=`$SUM ./$BNAME` 103 suma=`$ECHO $sumy | $AWK '{print $1}'` 104 sumb=`$ECHO $sumy | $AWK '{print $2}'` 105 106 if (( $oldsuma != $suma )); then 107 log_note "$SUM values are not the same" 108 retval=1 109 fi 110 111 if (( $oldsumb != $sumb )); then 112 log_note "$SUM values are not the same" 113 retval=1 114 fi 115 116 cd $cwd 117 (( $? != 0 )) && return 1 118 return $retval 119 } 120 121 function migrate_cpio 122 { 123 typeset destdir=$1 124 typeset archive=$2 125 typeset oldsuma=$3 126 typeset oldsumb=$4 127 typeset -i retval=0 128 129 cwd=$PWD 130 cd $destdir 131 (( $? != 0 )) && return 1 132 133 $CPIO -iv < $archive 134 (( $? != 0 )) && return 1 135 136 sumy=`$SUM ./$BNAME` 137 suma=`$ECHO $sumy | $AWK '{print $1}'` 138 sumb=`$ECHO $sumy | $AWK '{print $2}'` 139 140 if (( $oldsuma != $suma )); then 141 log_note "$SUM values are not the same" 142 retval=1 143 fi 144 145 if (( $oldsumb != $sumb )); then 146 log_note "$SUM values are not the same" 147 retval=1 148 fi 149 150 cd $cwd 151 (( $? != 0 )) && return 1 152 return $retval 153 }