-
Notifications
You must be signed in to change notification settings - Fork 0
/
rename_testscript.sh
executable file
·160 lines (140 loc) · 6 KB
/
rename_testscript.sh
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
153
154
155
156
157
158
159
160
#!/bin/bash
estatus=0
cmdPath='./gcscmd'
testCases() {
echo "_/_/_/_/_/_/_/_/_/_/_/_/_/ 重命名对象 开始 _/_/_/_/_/_/_/_/_/_/_/_/_/"
echo '重命名对象 => 使用对象名 => 替换的文件无冲突 => gcscmd rn cs://bbb --name Tarkov.mp4 --rename aaa.mp4 start'
echo '数据准备'
echo '1、创建新桶'
bucketName="bucket-rename-"$(date "+%Y%m%d%H%M%S")"-"$RANDOM
$cmdPath mb cs://$bucketName
echo '2、添加对象,10MB'
testDataFileName="testdata_"$(date "+%Y%m%d%H%M%S")"-"$RANDOM".dat"
#echo $testDataFileName
dd if=/dev/urandom of=$testDataFileName bs=10240 count=1024
$cmdPath put $testDataFileName cs://$bucketName
# 设置对象名称
objectName=$testDataFileName
# rename=$objectName"_renamed"
rename=$(echo ${objectName/.dat/_renamed.dat})
execCmd '重命名对象' '使用对象名' '替换的文件无冲突' 'gcscmd rn cs://'$bucketName' --name '$objectName' --rename '$rename 'rn cs://'$bucketName' --name '$objectName' --rename '$rename ''
echo '3、数据清理'
rm -rf $testDataFileName
echo '重命名对象 => 使用对象名 => 替换的文件无冲突 => gcscmd rn cs://bbb --name Tarkov.mp4 --rename aaa.mp4 end'
echo ''
echo '重命名对象 => 使用对象名 => 替换的文件有冲突-有force, => gcscmd rn cs://bbb --name Tarkov.mp4 --rename aaa.mp4 --force start'
echo '数据准备'
echo '1、添加对象1,10MB'
testDataFileName="testdata_"$(date "+%Y%m%d%H%M%S")"-"$RANDOM".dat"
#echo $testDataFileName
dd if=/dev/urandom of=$testDataFileName bs=10240 count=1024
$cmdPath put $testDataFileName cs://$bucketName
echo '2、添加对象2,5MB'
testDataFileName2="testdata_"$(date "+%Y%m%d%H%M%S")"-"$RANDOM".dat"
#echo $testDataFileName
dd if=/dev/urandom of=$testDataFileName2 bs=5120 count=1024
$cmdPath put $testDataFileName2 cs://$bucketName
# 设置对象名称
objectName=$testDataFileName
rename=$testDataFileName2
echo '重命名后,应仅存名称为testDataFileName2大小为10MB的对象,被覆盖的对象逻辑删除'
execCmd '重命名对象' '使用对象名' '替换的文件有冲突-有force' 'gcscmd rn cs://'$bucketName' --name '$objectName' --rename '$rename' --force' 'rn cs://'$bucketName' --name '$objectName' --rename '$rename' --force' ''
echo '3、数据清理'
rm -rf $testDataFileName
rm -rf $testDataFileName2
echo '重命名对象 => 使用对象名 => 替换的文件有冲突-有force, => gcscmd rn cs://bbb --name Tarkov.mp4 --rename aaa.mp4 --force end'
echo ''
echo '重命名对象 => 使用CID => cid单对象-无冲突 => gcscmd rn cs://bbb --cid QmWgnG7pPjG31w328hZyALQ2BgW5aQrZyKpT47jVpn8CNo --rename aaa.mp4 start'
echo '数据准备'
echo '1、添加对象,10MB'
testDataFileName="testdata_"$(date "+%Y%m%d%H%M%S")"-"$RANDOM".dat"
#echo $testDataFileName
dd if=/dev/urandom of=$testDataFileName bs=10240 count=1024
resp=$($cmdPath put $testDataFileName cs://$bucketName)
echo '2、获取CID'
cid=$(echo "$resp" | awk '/CID:/{print $2}')
# 设置对象名称
rename=$testDataFileName"_renamed"
execCmd '重命名对象' '使用CID' 'cid单对象-无冲突' 'gcscmd rn cs://'$bucketName' --cid '$cid' --rename '$rename 'rn cs://'$bucketName' --cid '$cid' --rename '$rename ''
echo '3、数据清理'
rm -rf $testDataFileName
echo '重命名对象 => 使用CID => cid单对象-无冲突 => gcscmd rn cs://bbb --cid QmWgnG7pPjG31w328hZyALQ2BgW5aQrZyKpT47jVpn8CNo --rename aaa.mp4 end'
echo ''
echo '重命名对象 => 使用CID => cid多对象-无冲突(是否分此情况)start'
echo '数据准备'
echo '1、添加对象,10MB'
testDataFileName="testdata_"$(date "+%Y%m%d%H%M%S")"-"$RANDOM".dat"
#echo $testDataFileName
dd if=/dev/urandom of=$testDataFileName bs=10240 count=1024
$cmdPath put $testDataFileName cs://$bucketName
echo '2、复制对象,10MB'
testDataFileName2="testdata_"$(date "+%Y%m%d%H%M%S")"-"$RANDOM".dat"
#echo $testDataFileName2
cp $testDataFileName $testDataFileName2
resp=$($cmdPath put $testDataFileName2 cs://$bucketName)
echo '3、获取CID'
cid=$(echo "$resp" | awk '/CID:/{print $2}')
execCmdFail '重命名对象' '使用CID' 'cid多对象-无冲突(是否分此情况)' 'gcscmd rn cs://'$bucketName' --cid '$cid' --rename '$rename 'rn cs://'$bucketName' --cid '$cid' --rename '$rename ''
echo '4、数据清理'
rm -rf $testDataFileName
rm -rf $testDataFileName2
echo '重命名对象 => 使用CID => cid多对象-无冲突(是否分此情况)end'
echo ''
echo '重命名对象测试数据清理'
$cmdPath rb cs://$bucketName --force
echo "_/_/_/_/_/_/_/_/_/_/_/_/_/ 重命名对象 结束 _/_/_/_/_/_/_/_/_/_/_/_/_/"
echo ''
}
execCmd() {
testModule=$1
testFunction=$2
testCase=$3
testDescription=$4
testCmd=$5
testExpectation=$6
testFail=$7
# echo $testModule"=>"$testFunction"=>"$testCase"=>"$testDescription
cmdStr=$cmdPath' '$testCmd
echo 'executing '$cmdStr
eval $cmdStr
exitCode=$?
echo ''
if [ $exitCode -eq 0 ]; then
echo -e "\033[32mSuccess: $cmdStr test pass. \033[0m"
else
echo -e "\033[31mFailure: $cmdStr test fail. \033[0m"
estatus=$(($etatus + 1))
fi
echo "exitcode:"$exitCode
echo ""
}
execCmdFail() {
testModule=$1
testFunction=$2
testCase=$3
testDescription=$4
testCmd=$5
testExpectation=$6
testFail=$7
# echo $testModule"=>"$testFunction"=>"$testCase"=>"$testDescription
cmdStr=$cmdPath' '$testCmd
echo 'executing '$cmdStr
eval $cmdStr
exitCode=$?
echo ''
if [ $exitCode -eq 0 ]; then
echo -e "\033[31mFailure: $cmdStr test should be prompt error message. \033[0m"
estatus=$(($etatus + 1))
else
echo -e "\033[32mSuccess: $cmdStr test pass, return error message and exit code is not equal zero. \033[0m"
# estatus=$?
fi
echo "exitcode:"$exitCode
echo ""
}
echo "===========================Chainstorage cli Test start=========================="
echo ''
testCases
echo "===========================Chainstorage cli Test end============================="
echo "Test status code:"$estatus
exit $estatus