add --warn-count and --crit-count test, and fix related bug

I should consider writing tests before features.  Sadly recently added new
options did not even work.  Oh well, at least I did not release them before
noticing this.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
Sami Kerola 2015-12-05 19:23:28 +00:00
parent 15802d6648
commit da4b7a783a
No known key found for this signature in database
GPG key ID: A9553245FDE9B739
4 changed files with 57 additions and 2 deletions

View file

@ -974,9 +974,9 @@ int output_alarming(void)
perc =
shared_p->available ==
0 ? 100 : (float)(100 * shared_p->used) / shared_p->available;
if (config.critical < perc && shared_p->available < config.crit_count)
if (config.critical < perc && shared_p->used < config.crit_count)
sc++;
else if (config.warning < perc && shared_p->available < config.warn_count)
else if (config.warning < perc && shared_p->used < config.warn_count)
sw++;
else
so++;

View file

@ -1,4 +1,5 @@
TESTS = \
tests/alarm-count-option \
tests/alarm-critical \
tests/alarm-critical-ranges \
tests/alarm-critical-snets \

37
tests/alarm-count-option Executable file
View file

@ -0,0 +1,37 @@
#!/bin/sh
#
# Alarm warning both ranges and shared networks.
IAM=$(basename $0)
if [ ! -d tests/outputs ]; then
mkdir tests/outputs
fi
echo '== warn count ==' > tests/outputs/$IAM
dhcpd-pools --config tests/confs/complete --leases tests/leases/complete \
--warning=40 --warn-count=20 --output=tests/outputs/$IAM-too
echo $? >> tests/outputs/$IAM-too
cat tests/outputs/$IAM-too >> tests/outputs/$IAM
echo '== crit count ==' >> tests/outputs/$IAM
dhcpd-pools --config tests/confs/complete --leases tests/leases/complete \
--critical=40 --crit-count=20 --output=tests/outputs/$IAM-too
echo $? >> tests/outputs/$IAM-too
cat tests/outputs/$IAM-too >> tests/outputs/$IAM
echo '== minsize ==' >> tests/outputs/$IAM
dhcpd-pools -c tests/confs/complete -l tests/leases/complete \
--warning=40 --warn-count=20 --minsize=40 -o tests/outputs/$IAM-too
echo $? >> tests/outputs/$IAM-too
cat tests/outputs/$IAM-too >> tests/outputs/$IAM
echo '== snet alarms ==' >> tests/outputs/$IAM
dhcpd-pools -c tests/confs/complete -l tests/leases/complete \
--warning=40 --snet-alarms -o tests/outputs/$IAM-too
echo $? >> tests/outputs/$IAM-too
cat tests/outputs/$IAM-too >> tests/outputs/$IAM
rm -f tests/outputs/$IAM-too
diff -u $top_srcdir/tests/expected/$IAM tests/outputs/$IAM
exit $?

View file

@ -0,0 +1,17 @@
== warn count ==
WARNING: dhcpd-pools: Ranges - crit: 0 warn: 3 ok: 2; | range_crit=0 range_warn=3 range_ok=2
Shared nets - crit: 0 warn: 1 ok: 1; | snet_crit=0 snet_warn=1 snet_ok=1
1
== crit count ==
CRITICAL: dhcpd-pools: Ranges - crit: 3 warn: 0 ok: 2; | range_crit=3 range_warn=0 range_ok=2
Shared nets - crit: 1 warn: 0 ok: 1; | snet_crit=1 snet_warn=0 snet_ok=1
2
== minsize ==
OK: Ranges - crit: 0 warn: 0 ok: 0 ignored: 5; | range_crit=0 range_warn=0 range_ok=0 range_ignored=5
Shared nets - crit: 0 warn: 0 ok: 0 ignored: 2; | snet_crit=0 snet_warn=0 snet_ok=0 snet_ignored=2
0
== snet alarms ==
WARNING: dhcpd-pools: Ranges - crit: 0 warn: 0 ok: 0; | range_crit=0 range_warn=0 range_ok=0
Shared nets - crit: 0 warn: 2 ok: 0; | snet_crit=0 snet_warn=2 snet_ok=0
1