summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/tests/common.c21
-rw-r--r--src/tests/common.h8
2 files changed, 29 insertions, 0 deletions
diff --git a/src/tests/common.c b/src/tests/common.c
index 9655cd3ce..8ba73a2ef 100644
--- a/src/tests/common.c
+++ b/src/tests/common.c
@@ -118,3 +118,24 @@ bool ldb_modules_path_is_set(void)
return false;
}
+
+/* Returns true if all values are in array (else returns false) */
+bool are_values_in_array(const char **values, size_t values_len,
+ const char **array, size_t array_len)
+{
+ bool is_value_in_element = false;
+ bool is_value_in_array = false;
+ bool ret = true;
+
+ for (size_t i = 0; i < values_len; i++) {
+ is_value_in_array = false;
+ for (size_t j = 0; j < array_len; j++) {
+ is_value_in_element = strcmp(values[i], array[j]) == 0 ? \
+ true : false;
+ is_value_in_array = is_value_in_array || is_value_in_element;
+ }
+ ret = ret && is_value_in_array;
+ }
+
+ return ret;
+}
diff --git a/src/tests/common.h b/src/tests/common.h
index 794218c5b..c9b3815cd 100644
--- a/src/tests/common.h
+++ b/src/tests/common.h
@@ -143,4 +143,12 @@ struct sss_domain_info *named_domain(TALLOC_CTX *mem_ctx,
const char *name,
struct sss_domain_info *parent);
+/* Returns true if all values are in array (else returns false) */
+bool are_values_in_array(const char **values, size_t values_len,
+ const char **array, size_t array_len);
+
+#define tc_are_values_in_array(values, array) \
+ are_values_in_array(values, talloc_array_length(values), \
+ array, talloc_array_length(array))
+
#endif /* !__TESTS_COMMON_H__ */