[v2,06/18] test_value_in_array: Check if the key is defined

Message ID 20240616160245.18865-7-jonatan.schlag@ipfire.org
State New
Headers
Series [v2,01/18] tests: Add bash lib |

Commit Message

Jonatan Schlag June 16, 2024, 4:02 p.m. UTC
  Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
---
 tests/lib.sh | 8 ++++++++
 1 file changed, 8 insertions(+)
  

Patch

diff --git a/tests/lib.sh b/tests/lib.sh
index f49a94748..af8c632cf 100644
--- a/tests/lib.sh
+++ b/tests/lib.sh
@@ -48,6 +48,14 @@  test_value_in_array() {
 		return 1
 	fi
 
+	# If key is not defined we return _
+	# If the key is defined we return nothing
+	# See also https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html
+	if [[ "${array["${key}"]+_}" == ""  ]]; then
+		log_test_failed "The array does not contain the key '${key}', valid keys are: ${!array[*]}"
+		return 1
+	fi
+
 	if [[ "${array[${key}]}" == "${value}" ]] ; then
 		log_test_succeded "The array '${1}' contains the value '${value}' under the key '${key}'"
 		return 0