2021-01-18 19:53:22 +08:00
|
|
|
From 085b93daf8f080f21b304058da3af404be9ac61d Mon Sep 17 00:00:00 2001
|
|
|
|
|
From: WangFengTu <wangfengtu@huawei.com>
|
|
|
|
|
Date: Fri, 8 Jan 2021 14:02:00 +0800
|
2021-03-23 09:50:40 +08:00
|
|
|
Subject: [PATCH 07/53] add testcases for isula cp
|
2021-01-18 19:53:22 +08:00
|
|
|
|
|
|
|
|
Signed-off-by: WangFengTu <wangfengtu@huawei.com>
|
|
|
|
|
---
|
|
|
|
|
CI/test_cases/container_cases/cp.sh | 93 ++++++++++++++++++++++++++++-
|
|
|
|
|
1 file changed, 90 insertions(+), 3 deletions(-)
|
|
|
|
|
|
|
|
|
|
diff --git a/CI/test_cases/container_cases/cp.sh b/CI/test_cases/container_cases/cp.sh
|
|
|
|
|
index dfbd222f..67a36909 100644
|
|
|
|
|
--- a/CI/test_cases/container_cases/cp.sh
|
|
|
|
|
+++ b/CI/test_cases/container_cases/cp.sh
|
|
|
|
|
@@ -163,6 +163,7 @@ test_cp_file_to_container()
|
|
|
|
|
return ${ret}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
test_cp_dir_to_container()
|
|
|
|
|
{
|
|
|
|
|
local ret=0
|
|
|
|
|
@@ -194,6 +195,66 @@ test_cp_dir_to_container()
|
|
|
|
|
isula exec $containername /bin/sh -c "ls $dstfile/passwd"
|
|
|
|
|
[[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to do copy" && ((ret++))
|
|
|
|
|
|
|
|
|
|
+ # test copy dir with hardlink
|
|
|
|
|
+ rm -rf $cpfiles/a
|
|
|
|
|
+ mkdir -p $cpfiles/a/a $cpfiles/a/b
|
|
|
|
|
+ echo "test_hardlink_a" > $cpfiles/a/a/a
|
|
|
|
|
+ ln $cpfiles/a/a/a $cpfiles/a/b/b
|
|
|
|
|
+ isula cp $cpfiles/a $containername:/c
|
|
|
|
|
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to do copy" && ((ret++))
|
|
|
|
|
+
|
|
|
|
|
+ isula exec -ti $containername cat /c/a/a | grep "test_hardlink_a"
|
|
|
|
|
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - copy hardlink a not right" && ((ret++))
|
|
|
|
|
+
|
|
|
|
|
+ isula exec -ti $containername cat /c/b/b | grep "test_hardlink_a"
|
|
|
|
|
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - copy hardlink b not right" && ((ret++))
|
|
|
|
|
+ rm -rf $cpfiles/a
|
|
|
|
|
+
|
|
|
|
|
+ # test copy dir to file
|
|
|
|
|
+ mkdir -p $cpfiles/dst
|
|
|
|
|
+ isula exec -ti $containername sh -c 'touch /dst'
|
|
|
|
|
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to touch file in container" && ((ret++))
|
|
|
|
|
+
|
|
|
|
|
+ isula cp $cpfiles/dst $containername:/
|
|
|
|
|
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - copy dir to container failed" && ((ret++))
|
|
|
|
|
+
|
|
|
|
|
+ isula exec -ti $containername stat / | grep directory
|
|
|
|
|
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - file should be replaced to be dir" && ((ret++))
|
|
|
|
|
+ rm -rf $cpfiles/dir
|
|
|
|
|
+
|
|
|
|
|
+ # test copy current dir file
|
|
|
|
|
+ touch $cpfiles/current
|
|
|
|
|
+ cd $cpfiles
|
|
|
|
|
+ isula cp . $containername:/current1
|
|
|
|
|
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to cp current1 file" && ((ret++))
|
|
|
|
|
+
|
|
|
|
|
+ isula exec -ti $containername stat /current1
|
|
|
|
|
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - file current1 not exist" && ((ret++))
|
|
|
|
|
+
|
|
|
|
|
+ isula cp ./ $containername:/current2
|
|
|
|
|
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to cp current2 file" && ((ret++))
|
|
|
|
|
+
|
|
|
|
|
+ isula exec -ti $containername stat /current2
|
|
|
|
|
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - file current2 not exist" && ((ret++))
|
|
|
|
|
+ cd -
|
|
|
|
|
+ rm -f $cpfiles/current
|
|
|
|
|
+
|
|
|
|
|
+ # test copy perm
|
|
|
|
|
+ mkdir -p $cpfiles/perm && chmod 700 $cpfiles/perm
|
|
|
|
|
+ isula cp $cpfiles/perm $containername:/
|
|
|
|
|
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to cp dir to container" && ((ret++))
|
|
|
|
|
+
|
|
|
|
|
+ isula exec -ti $containername stat /perm | grep "Access: (0700/drwx"
|
|
|
|
|
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - copy perm not right" && ((ret++))
|
|
|
|
|
+ rm -f $cpfiles/perm
|
|
|
|
|
+
|
|
|
|
|
+ # test copy hardlink
|
|
|
|
|
+ rm -rf $cpfiles/cp_dir
|
|
|
|
|
+ mkdir $cpfiles/cp_dir && cd $cpfiles/cp_dir && echo hello > norm_file && ln norm_file norm_file_link && cd -
|
|
|
|
|
+ isula cp $cpfiles/cp_dir $containername:/home/
|
|
|
|
|
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - copy hardlink failed" && ((ret++))
|
|
|
|
|
+ rm -rf $cpfiles/cp_dir
|
|
|
|
|
+
|
|
|
|
|
return ${ret}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -227,6 +288,17 @@ test_cp_symlink_to_container()
|
|
|
|
|
isula exec $containername /bin/sh -c "cat $cpfiles/target | grep root"
|
|
|
|
|
[[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to do copy" && ((ret++))
|
|
|
|
|
|
|
|
|
|
+ # test cp symlink with dir which have the same name prefix
|
|
|
|
|
+ rm -rf $cpfiles/abc $cpfiles/a
|
|
|
|
|
+ ln -s $cpfiles/abc $cpfiles/a
|
|
|
|
|
+
|
|
|
|
|
+ isula cp $cpfiles/a $containername:/b
|
|
|
|
|
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to copy symlink" && ((ret++))
|
|
|
|
|
+
|
|
|
|
|
+ isula exec -ti $containername readlink /b | grep "$cpfiles/abc"
|
|
|
|
|
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - invalid symlink" && ((ret++))
|
|
|
|
|
+ rm -f $cpfiles/abc $cpfiles/a
|
|
|
|
|
+
|
|
|
|
|
return ${ret}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -256,14 +328,21 @@ function cp_test_t()
|
|
|
|
|
|
|
|
|
|
msg_info "${test} starting..."
|
|
|
|
|
|
|
|
|
|
- isula pull ${image}
|
|
|
|
|
- [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to pull image: ${image}" && return ${FAILURE}
|
|
|
|
|
+ local isulad_pid=$(cat /var/run/isulad.pid)
|
|
|
|
|
+ local fd_num1=$(ls -l /proc/$isulad_pid/fd | wc -l)
|
|
|
|
|
+ [[ $fd_num1 -eq 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - can not get fd number" && ((ret++))
|
|
|
|
|
+
|
|
|
|
|
+ isula inspect ${image}
|
|
|
|
|
+ if [ x"$?" != x"0" ];then
|
|
|
|
|
+ isula pull ${image}
|
|
|
|
|
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to pull image: ${image}" && return ${FAILURE}
|
|
|
|
|
+ fi
|
|
|
|
|
|
|
|
|
|
isula images | grep busybox
|
|
|
|
|
[[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - missing list image: ${image}" && ((ret++))
|
|
|
|
|
|
|
|
|
|
containername=test_cmd_cp
|
|
|
|
|
- isula run -n $containername -itd $image
|
|
|
|
|
+ isula run -n $containername -itd $image
|
|
|
|
|
[[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to run container: ${image}" && ((ret++))
|
|
|
|
|
|
|
|
|
|
rm -rf $cpfiles
|
|
|
|
|
@@ -274,6 +353,7 @@ function cp_test_t()
|
|
|
|
|
test_cp_file_from_container $containername || ((ret++))
|
|
|
|
|
test_cp_dir_from_container $containername || ((ret++))
|
|
|
|
|
test_cp_file_to_container $containername || ((ret++))
|
|
|
|
|
+ test_cp_dir_to_container $containername || ((ret++))
|
|
|
|
|
test_cp_symlink_to_container $containername || ((ret++))
|
|
|
|
|
test_cp_symlink_from_container $containername || ((ret++))
|
|
|
|
|
|
|
|
|
|
@@ -281,6 +361,13 @@ function cp_test_t()
|
|
|
|
|
[[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to rm container: ${containername}" && ((ret++))
|
|
|
|
|
|
|
|
|
|
rm -rf $cpfiles
|
|
|
|
|
+
|
|
|
|
|
+ local fd_num2=$(ls -l /proc/$isulad_pid/fd | wc -l)
|
|
|
|
|
+ [[ $fd_num2 -eq 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - can not get fd number" && ((ret++))
|
|
|
|
|
+
|
|
|
|
|
+ # make sure fd not increase after test
|
|
|
|
|
+ [[ $fd_num1 -ne $fd_num2 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - fd number not right" && ((ret++))
|
|
|
|
|
+
|
|
|
|
|
echo "test end"
|
|
|
|
|
return ${ret}
|
|
|
|
|
}
|
|
|
|
|
--
|
|
|
|
|
2.25.1
|
|
|
|
|
|