test: improve test unit
This commit is contained in:
2 files changed
+72
-5
No files matched your search
+62
-2
@@ -4,6 +4,7 @@
|
|||||||
DOCKER_IMAGE="ttionya/vaultwarden-backup:test"
|
DOCKER_IMAGE="ttionya/vaultwarden-backup:test"
|
||||||
ERROR_NUM=0
|
ERROR_NUM=0
|
||||||
|
|
||||||
|
DATA_DIR="/bitwarden/data"
|
||||||
OUTPUT_DIR="output"
|
OUTPUT_DIR="output"
|
||||||
EXTRACT_DIR="extract"
|
EXTRACT_DIR="extract"
|
||||||
REMOTE_DIR="/${OUTPUT_DIR}"
|
REMOTE_DIR="/${OUTPUT_DIR}"
|
||||||
@@ -26,11 +27,70 @@ function color() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# Check if the files in two folders are the same.
|
||||||
|
# Arguments:
|
||||||
|
# folder1
|
||||||
|
# folder2
|
||||||
|
# Outputs:
|
||||||
|
# progress
|
||||||
|
# Returns:
|
||||||
|
# same or not
|
||||||
|
########################################
|
||||||
|
function check_files_same_in_folders() {
|
||||||
|
function generate_hash_list() {
|
||||||
|
find "$1" -type f -exec sha1sum {} \; | sort | sed "s|$1||g" > "$2"
|
||||||
|
}
|
||||||
|
|
||||||
|
color blue "Calculating file hash in folder \"$1\" and \"$2\""
|
||||||
|
|
||||||
|
local FOLDER1="$1"
|
||||||
|
local FOLDER2="$2"
|
||||||
|
local FOLDER1_HASH_LIST="/tmp/folder1_hash_list"
|
||||||
|
local FOLDER2_HASH_LIST="/tmp/folder2_hash_list"
|
||||||
|
generate_hash_list "${FOLDER1}" "${FOLDER1_HASH_LIST}"
|
||||||
|
generate_hash_list "${FOLDER2}" "${FOLDER2_HASH_LIST}"
|
||||||
|
|
||||||
|
color blue "Calculating differences"
|
||||||
|
|
||||||
|
local RETURN_CODE
|
||||||
|
local FOLDER_HASH_DIFF="/tmp/folder_hash_diff"
|
||||||
|
if diff "${FOLDER1_HASH_LIST}" "${FOLDER2_HASH_LIST}" > "${FOLDER_HASH_DIFF}"; then
|
||||||
|
RETURN_CODE=0
|
||||||
|
else
|
||||||
|
RETURN_CODE=1
|
||||||
|
cat "${FOLDER_HASH_DIFF}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf "${FOLDER1_HASH_LIST}" "${FOLDER2_HASH_LIST}" "${FOLDER_HASH_DIFF}"
|
||||||
|
|
||||||
|
return "${RETURN_CODE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# Show test result.
|
||||||
|
# Arguments:
|
||||||
|
# test name
|
||||||
|
# failed number
|
||||||
|
# Outputs:
|
||||||
|
# test result
|
||||||
|
########################################
|
||||||
|
function test_result() {
|
||||||
|
if [[ "$2" == "0" ]]; then
|
||||||
|
color green "Test case \"$1\" passed"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
((ERROR_NUM++))
|
||||||
|
|
||||||
|
color red "Test case \"$1\" failed"
|
||||||
|
}
|
||||||
|
|
||||||
. tests/units/backup-zip-file/test.sh
|
. tests/units/backup-zip-file/test.sh
|
||||||
|
|
||||||
if [[ "${ERROR_NUM}" == "0" ]]; then
|
if [[ "${ERROR_NUM}" == "0" ]]; then
|
||||||
color green "All tests passed."
|
color green "All tests passed"
|
||||||
else
|
else
|
||||||
color red "Some tests failed."
|
color red "Some tests failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -6,7 +6,9 @@ TEST_OUTPUT_DIR="$(pwd)/${OUTPUT_DIR}/${TEST_NAME}"
|
|||||||
PASSWORD="71ad8764-2f69-4c0c-8452-61e08b9f489d"
|
PASSWORD="71ad8764-2f69-4c0c-8452-61e08b9f489d"
|
||||||
BACKUP_FILE="${TEST_OUTPUT_DIR}/backup.test.zip"
|
BACKUP_FILE="${TEST_OUTPUT_DIR}/backup.test.zip"
|
||||||
|
|
||||||
color blue "Testing the ${TEST_NAME} unit..."
|
FAILED_NUM=0
|
||||||
|
|
||||||
|
color yellow "Starting test case \"${TEST_NAME}\""
|
||||||
|
|
||||||
function prepare() {
|
function prepare() {
|
||||||
mkdir -p "${TEST_OUTPUT_DIR}"
|
mkdir -p "${TEST_OUTPUT_DIR}"
|
||||||
@@ -23,7 +25,7 @@ function start() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function test() {
|
function test() {
|
||||||
color blue "Starting the test..."
|
color blue "Testing..."
|
||||||
|
|
||||||
ls -l "${BACKUP_FILE}"
|
ls -l "${BACKUP_FILE}"
|
||||||
|
|
||||||
@@ -31,9 +33,14 @@ function test() {
|
|||||||
|
|
||||||
7z e -aoa -p"${PASSWORD}" -o"${EXTRACT_DIR}" "${BACKUP_FILE}"
|
7z e -aoa -p"${PASSWORD}" -o"${EXTRACT_DIR}" "${BACKUP_FILE}"
|
||||||
|
|
||||||
# TODO test the extracted files
|
check_files_same_in_folders "${DATA_DIR}" "${EXTRACT_DIR}"
|
||||||
|
if [[ $? != 0 ]]; then
|
||||||
|
((FAILED_NUM++))
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
prepare
|
prepare
|
||||||
start
|
start
|
||||||
test
|
test
|
||||||
|
|
||||||
|
test_result "${TEST_NAME}" "${FAILED_NUM}"
|
||||||
Reference in new issue
Block a user