From: Jonatan Schlag Date: Sun, 16 Jun 2024 16:02:34 +0000 (+0200) Subject: tests: Add function to test the ouput of a bash function X-Git-Tag: v2.29-core189~65^2~87 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8f4c1855fa32a409b7244af0ef3b524e23dcf817;p=ipfire-2.x.git tests: Add function to test the ouput of a bash function Signed-off-by: Jonatan Schlag Signed-off-by: Michael Tremer --- diff --git a/tests/lib.sh b/tests/lib.sh index af8c632cf1..4110ed2d89 100644 --- a/tests/lib.sh +++ b/tests/lib.sh @@ -64,3 +64,32 @@ test_value_in_array() { return 1 fi } + +test_that_output_is(){ + local reference_output_file="${1}" + local file_descriptor="${2}" + shift + shift + + local command="$@" + + local temp="$(mktemp)" + + case "${file_descriptor}" in + "stdout"|"1") + $command 1> "${temp}" 2>/dev/null + ;; + "stderr"|"2") + $command 2> "${temp}" 1>/dev/null + ;; + esac + + if diff -u "${temp}" "${reference_output_file}" &> /dev/null; then + log_test_succeded "The output of command '${command}' on file descriptor '${file_descriptor}' is equal to the reference output." + else + log_test_failed "The output of command '${command}' on file descriptor '${file_descriptor}' is unequal to the reference output." + diff -u --color "${reference_output_file}" "${temp}" + fi + + rm "${temp}" +}