diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/tests/common.c | 21 | ||||
-rw-r--r-- | src/tests/common.h | 8 |
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__ */ |