Skip to content
Snippets Groups Projects
Commit 6b17c23b authored by Simon Rose's avatar Simon Rose
Browse files

Fixed shfmt errors

parent 0510f775
No related branches found
No related tags found
No related merge requests found
......@@ -6,168 +6,169 @@ MODULENAME=testversions
EPICS_BASE=${EPICS_BASE:-/epics/base-7.0.5}
REQUIRE_VER=${E3_REQUIRE_VERSION:-3.4.1}
if which ack &> /dev/null ; then
__SEARCH_COMMAND__="ack --passthru"
if which ack &>/dev/null; then
__SEARCH_COMMAND__="ack --passthru"
else
echo "ack is not installed; defaulting to grep, but note that the log will be missing the IOC log" >&2
__SEARCH_COMMAND__=grep
echo "ack is not installed; defaulting to grep, but note that the log will be missing the IOC log" >&2
__SEARCH_COMMAND__=grep
fi
function usage {
echo "Usage:"
echo " bash test.sh [-b <EPICS_BASE>] [-r <REQUIRE_VER>] [-h] testfile"
exit 0
echo "Usage:"
echo " bash test.sh [-b <EPICS_BASE>] [-r <REQUIRE_VER>] [-h] testfile"
exit 0
}
function show_header {
echo "Testing require version loader"
echo "============================================================"
echo -e "EPICS base: \033[34m${EPICS_BASE}\033[0m"
echo -e "Require version: \033[34m${REQUIRE_VER}\033[0m"
echo "============================================================"
echo "Testing require version loader"
echo "============================================================"
echo -e "EPICS base: \033[34m${EPICS_BASE}\033[0m"
echo -e "Require version: \033[34m${REQUIRE_VER}\033[0m"
echo "============================================================"
}
function install_vers
{
for ver in $@; do
echo "=========================================="
echo "Installing local version version '$ver'"
echo "=========================================="
make -C test clean cellinstall __DEBUG_VERSION=$ver __EPICS_BASE_LOCATION="$EPICS_BASE" __REQUIRE_VERSION="$REQUIRE_VER" E3_NO_TEST=true
done
function install_vers {
for ver in $@; do
echo "=========================================="
echo "Installing local version version '$ver'"
echo "=========================================="
make -C test clean cellinstall __DEBUG_VERSION=$ver __EPICS_BASE_LOCATION="$EPICS_BASE" __REQUIRE_VERSION="$REQUIRE_VER" E3_NO_TEST=true
done
}
function clean_vers
{
rm -rf test/cellMods
function clean_vers {
rm -rf test/cellMods
}
function test_require
{
if [ "$#" -lt "3" ]; then
usage
return
fi
required=$1
shift
expected=$1
shift
args=$@
if [ "$required" = "-" ]; then
req_str="$MODULENAME"
else
req_str="$MODULENAME,$required"
fi
echo "============================================================"
echo "Running test case:"
echo "Requested: $required"
echo "Expected: $expected"
echo "Installed: $args"
echo "============================================================"
required=$(sed 's/+/\\+/g' <<< $required)
expected=$(sed 's/+/\\+/g' <<< $expected)
clean_vers
install_vers $args
echo "=========================================="
echo "Running iocsh.bash -l cellMods -r $req_str"
echo "=========================================="
iocsh_args="-l test/cellMods -c 'var requireDebug 1' -r $req_str"
if [ "$expected" = "-" ]; then
search_string="^Module $MODULENAME (not available|version $required not available|version $required not available \(but other versions are available\))\$"
else
search_string="^Loaded $MODULENAME version $expected\$"
fi
# The funny sed command here is from https://unix.stackexchange.com/a/235016/445931
# The reason this is needed is because the "Starting iocInit" message seems to be threaded
# differently than the regular flow of output and sometimes will separate the strings that
# we are looking for. If we simply cut it out then we seem to be able to more consistently
# get meaningful tests.
echo exit | eval iocsh.bash "$iocsh_args" | \
sed -e '1h;2,$H;$!d;g' -e 's/Starting iocInit\niocRun: All initialization complete\n//' | \
function test_require {
if [ "$#" -lt "3" ]; then
usage
return
fi
required=$1
shift
expected=$1
shift
args=$@
if [ "$required" = "-" ]; then
req_str="$MODULENAME"
else
req_str="$MODULENAME,$required"
fi
echo "============================================================"
echo "Running test case:"
echo "Requested: $required"
echo "Expected: $expected"
echo "Installed: $args"
echo "============================================================"
required=$(sed 's/+/\\+/g' <<<$required)
expected=$(sed 's/+/\\+/g' <<<$expected)
clean_vers
install_vers $args
echo "=========================================="
echo "Running iocsh.bash -l cellMods -r $req_str"
echo "=========================================="
iocsh_args="-l test/cellMods -c 'var requireDebug 1' -r $req_str"
if [ "$expected" = "-" ]; then
search_string="^Module $MODULENAME (not available|version $required not available|version $required not available \(but other versions are available\))\$"
else
search_string="^Loaded $MODULENAME version $expected\$"
fi
# The funny sed command here is from https://unix.stackexchange.com/a/235016/445931
# The reason this is needed is because the "Starting iocInit" message seems to be threaded
# differently than the regular flow of output and sometimes will separate the strings that
# we are looking for. If we simply cut it out then we seem to be able to more consistently
# get meaningful tests.
echo exit | eval iocsh.bash "$iocsh_args" |
sed -e '1h;2,$H;$!d;g' -e 's/Starting iocInit\niocRun: All initialization complete\n//' |
$__SEARCH_COMMAND__ "${search_string}"
}
function format_output {
result=$1
shift
requested=$1
shift
expected=$1
shift
versions=$@
if [ "$result" = "0" ]; then
result_str="\033[32mpassed\033[0m"
else
result_str="\033[31mfailed\033[0m"
fi
printf "Test: $result_str\n"
printf "requested: %-20s expected: %-20s\n" "$requested" "$expected"
printf "Given versions: %s\n" "$versions"
printf "============================================================\n"
result=$1
shift
requested=$1
shift
expected=$1
shift
versions=$@
if [ "$result" = "0" ]; then
result_str="\033[32mpassed\033[0m"
else
result_str="\033[31mfailed\033[0m"
fi
printf "Test: $result_str\n"
printf "requested: %-20s expected: %-20s\n" "$requested" "$expected"
printf "Given versions: %s\n" "$versions"
printf "============================================================\n"
}
while getopts "hb:r:c:" opt; do
case $opt in
b) EPICS_BASE="$OPTARG"
;;
r) REQUIRE_VER="$OPTARG"
;;
c) COMMAND="$OPTARG"
;;
h) HELP=true
;;
*)
usage
exit 1
esac
case $opt in
b)
EPICS_BASE="$OPTARG"
;;
r)
REQUIRE_VER="$OPTARG"
;;
c)
COMMAND="$OPTARG"
;;
h)
HELP=true
;;
*)
usage
exit 1
;;
esac
done
shift $((OPTIND-1))
shift $((OPTIND - 1))
TESTFILE=$1
if [ "$HELP" = true ]; then
usage
exit 0
usage
exit 0
fi
rm -f "$LOGFILE"
ENV_SRC="$EPICS_BASE/require/$REQUIRE_VER/bin/setE3Env.bash"
if [ ! -f "$ENV_SRC" ]; then
echo "setE3Env.bash not found at location $ENV_SRC" >&2
exit 1
echo "setE3Env.bash not found at location $ENV_SRC" >&2
exit 1
fi
source "$ENV_SRC" &> /dev/null
source "$ENV_SRC" &>/dev/null
show_header
failed_tests=0
if [ -n "$COMMAND" ]; then
test_require $COMMAND &>> "$LOGFILE"
result=$?
[ "$result" = 0 ] || ((failed_tests++))
format_output $result $COMMAND
test_require $COMMAND &>>"$LOGFILE"
result=$?
[ "$result" = 0 ] || ((failed_tests++))
format_output $result $COMMAND
fi
if [ -f "$TESTFILE" ]; then
while read -r line; do
test_require $line &>> "$LOGFILE"
result=$?
[ "$result" = 0 ] || ((failed_tests++))
format_output $result $line
done < <(sed -e 's/[[:space:]]*#.*//; /^[[:space:]]*$/d' "$TESTFILE")
while read -r line; do
test_require $line &>>"$LOGFILE"
result=$?
[ "$result" = 0 ] || ((failed_tests++))
format_output $result $line
done < <(sed -e 's/[[:space:]]*#.*//; /^[[:space:]]*$/d' "$TESTFILE")
fi
[ "$failed_tests" = 0 ]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment