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 }