wxrx/test/test_schedule.sh

68 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/bash
prog="$0"
me=`basename "$prog"`
unit=$(realpath $(dirname "$0")/../schedule.sh)
fixture_dir=$(realpath $(dirname "$0")/fixtures)
printf "WARNING! The unit under test may use atd. Check your atd queues.\n"
setUp() {
cd "${SHUNIT_TMPDIR}"
cp ${fixture_dir}/satellites.tle ${SHUNIT_TMPDIR}
stdoutF="${SHUNIT_TMPDIR}/stdout"
stderrF="${SHUNIT_TMPDIR}/stderr"
>"${stdoutF}"
>"${stderrF}"
}
mock_i=1
mock_at() {
cat > ${SHUNIT_TMPDIR}/at-input
printf "job %s at Foo Bar\n" "${mock_i}"
echo "FOO!" 1>&2
mock_i=`expr ${mock_i} + 1`
}
test_satellite_name_flag() {
source ${unit}
assertSame "--noaa-15" "`satellite_name_flag 'NOAA 15'`"
assertSame "--noaa-16" "`satellite_name_flag 'NOAA 16'`"
assertSame "--noaa-19" "`satellite_name_flag 'NOAA 19'`"
}
test_schedule_pass() {
source ${unit}
schedule_pass 'mock_at' '202207052000.05' '1234' 'NOAA-17' >${stdoutF} 2>${stderrF}
assertTrue "unexpected error status" $?
assertNull "unexpected error output" "`cat ${stderrF}`"
assertNull "unexpected stdout" "`cat ${stdoutF}`"
assertNotNull "no input to at" "`cat ${SHUNIT_TMPDIR}/at-input`"
cat <<EOF >expected
sleep 05
wxrx run --noaa-17 --duration 1234 >> ./wxrx-log
EOF
assertSame "`cat expected`" "`cat ${SHUNIT_TMPDIR}/at-input`"
}
test_schedule_passes() {
source ${unit}
schedule_passes 'mock_at' <<EOF > "${stdoutF}" 2>"${stderrF}"
202207052019.43 917 NOAA 15
202207052249.35 946 NOAA 18
202207060837.35 904 NOAA 15
202207060936.43 932 NOAA 19
EOF
assertTrue "unexpected error status" $?
assertNull "unexpected error output" "`cat ${stderrF}`"
cat ${stderrF}
cat ${stdoutF}
}
. shunit2