88 lines
2.1 KiB
Bash
88 lines
2.1 KiB
Bash
unset BASH_IT_THEME
|
|
unset GIT_HOSTING
|
|
unset NGINX_PATH
|
|
unset IRC_CLIENT
|
|
unset TODO
|
|
unset SCM_CHECK
|
|
unset BASH_IT_AUTOMATIC_RELOAD_AFTER_CONFIG_CHANGE
|
|
|
|
BASH_IT_TEST_DIR="${BATS_TMPDIR}/.bash_it"
|
|
|
|
# guard against executing this block twice due to bats internals
|
|
if [ "$BASH_IT_ROOT" != "${BASH_IT_TEST_DIR}/root" ]; then
|
|
export BASH_IT_ROOT="${BASH_IT_TEST_DIR}/root"
|
|
export BASH_IT=$BASH_IT_TEST_DIR
|
|
fi
|
|
|
|
export TEST_MAIN_DIR="${BATS_TEST_DIRNAME}/.."
|
|
export TEST_DEPS_DIR="${TEST_DEPS_DIR-${TEST_MAIN_DIR}/../test_lib}"
|
|
|
|
load "${TEST_DEPS_DIR}/bats-support/load.bash"
|
|
load "${TEST_DEPS_DIR}/bats-assert/load.bash"
|
|
load "${TEST_DEPS_DIR}/bats-file/load.bash"
|
|
|
|
local_setup() {
|
|
true
|
|
}
|
|
|
|
local_teardown() {
|
|
true
|
|
}
|
|
|
|
setup() {
|
|
mkdir -p -- "${BASH_IT_ROOT}"
|
|
|
|
local_setup
|
|
}
|
|
|
|
teardown() {
|
|
local_teardown
|
|
|
|
rm -rf "${BASH_IT_TEST_DIR}"
|
|
}
|
|
|
|
# Fail and display path of the link if it does not exist. Also fails
|
|
# if the path exists, but is not a link.
|
|
# This function is the logical complement of `assert_file_not_exist'.
|
|
# There is no dedicated function for checking that a link does not exist.
|
|
#
|
|
# Globals:
|
|
# BATSLIB_FILE_PATH_REM
|
|
# BATSLIB_FILE_PATH_ADD
|
|
# Arguments:
|
|
# $1 - path
|
|
# Returns:
|
|
# 0 - link exists and is a link
|
|
# 1 - otherwise
|
|
# Outputs:
|
|
# STDERR - details, on failure
|
|
assert_link_exist() {
|
|
local -r file="$1"
|
|
local -r target="$2"
|
|
if [[ ! -L "$file" ]]; then
|
|
local -r rem="$BATSLIB_FILE_PATH_REM"
|
|
local -r add="$BATSLIB_FILE_PATH_ADD"
|
|
if [[ -e "$file" ]]; then
|
|
batslib_print_kv_single 4 'path' "${file/$rem/$add}" \
|
|
| batslib_decorate 'exists, but is not a link' \
|
|
| fail
|
|
else
|
|
batslib_print_kv_single 4 'path' "${file/$rem/$add}" \
|
|
| batslib_decorate 'link does not exist' \
|
|
| fail
|
|
fi
|
|
else
|
|
if [ -n "$target" ]; then
|
|
local link_target=''
|
|
link_target=$(readlink "$file")
|
|
if [[ "$link_target" != "$target" ]]; then
|
|
batslib_print_kv_single_or_multi 8 'path' "${file/$rem/$add}" \
|
|
'expected' "$target" \
|
|
'actual' "$link_target" \
|
|
| batslib_decorate 'link exists, but does not point to target file' \
|
|
| fail
|
|
fi
|
|
fi
|
|
fi
|
|
}
|