From 8f4c1855fa32a409b7244af0ef3b524e23dcf817 Mon Sep 17 00:00:00 2001 From: Jonatan Schlag Date: Sun, 16 Jun 2024 18:02:34 +0200 Subject: [PATCH] tests: Add function to test the ouput of a bash function Signed-off-by: Jonatan Schlag Signed-off-by: Michael Tremer --- tests/lib.sh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) 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}" +} -- 2.47.3