blob: 91648dd8fe59b36a9bc3e5650ad38910ea3ec3c2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (c) International Business Machines Corp., 2001
# Author: Manoj Iyer <manjo@mail.utexas.edu>
#
# Test basic functionality of mv command
# Test #1: mv <dir1> <dir2>
# move dir1 to dir2 and all its contents.
# Test #2: mv -b <file1> <file2>
# move file1 to file2 and backup the file2.
TST_CNT=2
TST_SETUP=setup
TST_TESTFUNC=test
TST_NEEDS_TMPDIR=1
setup()
{
ROD_SILENT mkdir -p tst_mv.old
}
creat_dirnfiles()
{
local numdirs=$2
local numfiles=$3
local dirname=$4
local dircnt=0
local fcnt=0
tst_res TINFO "Test #$1: Creating $numdirs directories."
tst_res TINFO "Test #$1: filling each dir with $numfiles files."
while [ $dircnt -lt $numdirs ]
do
dirname=$dirname/d.$dircnt
ROD_SILENT mkdir -p $dirname
fcnt=0
while [ $fcnt -lt $numfiles ]
do
ROD_SILENT touch $dirname/f.$fcnt
fcnt=$(($fcnt+1))
done
dircnt=$(($dircnt+1))
done
}
creat_expout()
{
local numdir=$1
local numfile=$2
local dirname=$3
local dircnt=0
local fcnt=0
echo "$dirname:" 1>>tst_mv.exp
echo "d.$dircnt" 1>>tst_mv.exp
while [ $dircnt -lt $numdirs ]
do
dirname=$dirname/d.$dircnt
dircnt=$(($dircnt+1))
echo "$dirname:" 1>>tst_mv.exp
if [ $dircnt -lt $numdirs ]; then
echo "d.$dircnt" 1>>tst_mv.exp
fi
fcnt=0
while [ $fcnt -lt $numfiles ]
do
echo "f.$fcnt " 1>>tst_mv.exp
fcnt=$(($fcnt+1))
done
printf "\n\n" 1>>tst_mv.exp
done
}
test1()
{
numdirs=10
numfiles=10
dircnt=0
fcnt=0
tst_res TINFO "Test #1: mv <dir1> <dir2> will move dir1 to dir2 and" \
"all its contents"
creat_dirnfiles 1 $numdirs $numfiles tst_mv.old
mv tst_mv.old tst_mv.new > tst_mv.err 2>&1
if [ $? -ne 0 ]; then
cat tst_mv.err
tst_brk TFAIL "Test #1: 'mv tst_mv.old tst_mv.new' failed"
fi
tst_res TINFO "Test #1: creating output file"
ls -R tst_mv.new > tst_mv.out 2>&1
tst_res TINFO "Test #1: creating expected output file"
creat_expout $numdirs $numfiles tst_mv.new
tst_res TINFO "Test #1: comparing expected out and actual output file"
diff -w -B -q tst_mv.out tst_mv.exp > tst_mv.err 2>&1
if [ $? -ne 0 ]; then
cat tst_mv.err
tst_res TFAIL "Test #1: mv failed."
else
tst_res TINFO "Test #1: expected same as actual"
if [ -f tst_mv.old ]; then
tst_res TFAIL "Test #1: mv did not delete old" \
"directory"
else
tst_res TPASS "Test #1: mv success"
fi
fi
}
test2()
{
tst_res TINFO "Test #2: mv -b <file1> <file2> will move dir1 to dir2"
ROD_SILENT touch tmpfile1 tmpfile2
MD5_old=$(md5sum tmpfile2 | awk '{print $1}')
if [ $? -ne 0 ]; then
tst_brk TBROK "Test #2: can't get the MD5 message of file2."
fi
if [ -f "tmpfile2~" ]; then
tst_brk TBROK "Test #2: file tmpfile2~ should not exists."
fi
mv -b tmpfile1 tmpfile2
if [ $? -ne 0 ]; then
tst_brk TBROK "Test #2: 'mv -b tmpfile1 tmpfile2' failed."
fi
# if 'mv -b file1 file2' succeed, there will be "tmpfile2~" file.
MD5_backup=$(md5sum tmpfile2 | awk '{print $1}')
if [ $? -ne 0 ]; then
tst_brk TBROK "Test #2: can not get the MD5 message of" \
"backup file2."
fi
if [ "$MD5_old" = "$MD5_backup" -a -f "tmpfile2~" ]; then
tst_res TPASS "Test #2: mv -b success"
else
tst_res TFAIL "Test #2: mv -b failed"
fi
}
. tst_test.sh
tst_run
|