From 4790f7b3cff3800df92b232aec1d779db52c72b1 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Wed, 28 Mar 2012 11:51:21 -0400 Subject: Add better dp_option tests --- src/tests/common.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/tests/common.c') diff --git a/src/tests/common.c b/src/tests/common.c index cd13507c..118684dd 100644 --- a/src/tests/common.c +++ b/src/tests/common.c @@ -41,3 +41,29 @@ tests_set_cwd(void) } } } + +/* Check that the option names of the two maps are the same + * and appear in the same order. + */ +errno_t +compare_dp_options(struct dp_option *map1, size_t size1, + struct dp_option *map2) +{ + size_t i; + + for (i = 0; i < size1; i++) { + /* Check for a valid option */ + if (map1[i].opt_name == NULL) return EINVAL; + + /* Check whether we've gone past the end of map2 */ + if (map2[i].opt_name == NULL) return ERANGE; + + /* Ensure that the option names are the same */ + if(strcmp(map1[i].opt_name, map2[i].opt_name) != 0) return EINVAL; + } + + /* Leftover options in map2 */ + if (map2[i].opt_name != NULL) return ERANGE; + + return EOK; +} -- cgit