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, 2016 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# 48function 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# 87function 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 121function 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} 154