Files
PFVCluster/tests/unit/lmsensors-numeric.sh
T

65 lines
1.8 KiB
Bash

#!/bin/bash
# Unit tests for lmsensors-extend.sh -n numeric mode [#618]
set -euo pipefail
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
SCRIPT="$PROJECT_ROOT/dcinfra/sensors/temper/lmsensors-extend.sh"
failed=0
if [[ -f "$SCRIPT" ]] && (source "$SCRIPT"); then
echo "✅ script exists + sources cleanly"
else
echo "❌ script missing or fails to source: $SCRIPT"
exit 1
fi
# shellcheck disable=SC1091
source "$SCRIPT"
# numeric_pick: TEMPer external > TEMPer internal > first native/sysfs value
test_numeric_prefers_external() {
if [[ "$(numeric_pick "22.5" "18.2" "" )" == "18.2" ]]; then
echo "✅ numeric_pick prefers external probe"
else
echo "❌ numeric_pick external preference broken"
((++failed))
fi
}
test_numeric_falls_back_internal() {
if [[ "$(numeric_pick "22.5" "" "")" == "22.5" ]]; then
echo "✅ numeric_pick falls back to internal"
else
echo "❌ numeric_pick internal fallback broken"
((++failed))
fi
}
test_numeric_uses_first_line_value() {
if [[ "$(numeric_pick "" "" "temp1: +27.5°C (high = +84.0°C)")" == "27.5" ]]; then
echo "✅ numeric_pick parses first native temp"
else
echo "❌ numeric_pick native parse broken: got '$(numeric_pick "" "" "+27.5°C")'"
((++failed))
fi
}
test_numeric_empty_is_error() {
if numeric_pick "" "" "" >/dev/null 2>&1; then
echo "❌ numeric_pick should fail on no data"
((++failed))
else
echo "✅ numeric_pick errors on no data"
fi
}
test_numeric_prefers_external
test_numeric_falls_back_internal
test_numeric_uses_first_line_value
test_numeric_empty_is_error
if ((failed > 0)); then
echo "❌ $failed numeric-mode test(s) failed"
exit 1
fi
echo "✅ all numeric-mode tests passed"