mirror of
https://github.com/deajan/osync
synced 2024-11-15 12:12:56 +00:00
71 lines
1.4 KiB
Bash
Executable File
71 lines
1.4 KiB
Bash
Executable File
#! /bin/sh
|
|
# vim:et:ft=sh:sts=2:sw=2
|
|
#
|
|
# shUnit2 unit tests for `shopt` support.
|
|
#
|
|
# Copyright 2008-2021 Kate Ward. All Rights Reserved.
|
|
# Released under the Apache 2.0 license.
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Author: kate.ward@forestent.com (Kate Ward)
|
|
# https://github.com/kward/shunit2
|
|
#
|
|
# Disable source following.
|
|
# shellcheck disable=SC1090,SC1091
|
|
|
|
# Load test helpers.
|
|
. ./shunit2_test_helpers
|
|
|
|
# Call shopt from a variable so it can be mocked if it doesn't work.
|
|
SHOPT_CMD='shopt'
|
|
|
|
testNullglob() {
|
|
isShoptWorking || startSkipping
|
|
|
|
nullglob=$(${SHOPT_CMD} nullglob |cut -f2)
|
|
|
|
# Test without nullglob.
|
|
${SHOPT_CMD} -u nullglob
|
|
assertEquals 'test without nullglob' 0 0
|
|
|
|
# Test with nullglob.
|
|
${SHOPT_CMD} -s nullglob
|
|
assertEquals 'test with nullglob' 1 1
|
|
|
|
# Reset nullglob.
|
|
if [ "${nullglob}" = "on" ]; then
|
|
${SHOPT_CMD} -s nullglob
|
|
else
|
|
${SHOPT_CMD} -u nullglob
|
|
fi
|
|
|
|
unset nullglob
|
|
}
|
|
|
|
oneTimeSetUp() {
|
|
th_oneTimeSetUp
|
|
|
|
if ! isShoptWorking; then
|
|
SHOPT_CMD='mock_shopt'
|
|
fi
|
|
}
|
|
|
|
# isShoptWorking returns true if the `shopt` shell command is available.
|
|
# NOTE: `shopt` is not defined as part of the POSIX standard.
|
|
isShoptWorking() {
|
|
# shellcheck disable=SC2039,SC3044
|
|
( shopt >/dev/null 2>&1 );
|
|
}
|
|
|
|
mock_shopt() {
|
|
if [ $# -eq 0 ]; then
|
|
echo "nullglob off"
|
|
fi
|
|
return
|
|
}
|
|
|
|
# Load and run shUnit2.
|
|
# shellcheck disable=SC2034
|
|
[ -n "${ZSH_VERSION:-}" ] && SHUNIT_PARENT="$0"
|
|
. "${TH_SHUNIT}"
|