diff --git a/test/runner.c b/test/runner.c index 91993ce..e4bb2ae 100644 --- a/test/runner.c +++ b/test/runner.c @@ -10,7 +10,7 @@ int main() { CU_TestInfo sleuth_tests[] = { { "gargoyle_find_brand", sleuth_test_find_brand }, -// { "gargoyle_find_emblem", sleuth_test_find_emblem }, + { "gargoyle_find_emblem", sleuth_test_find_emblem }, CU_TEST_INFO_NULL }; diff --git a/test/sleuth.c b/test/sleuth.c index 3836556..2515d62 100644 --- a/test/sleuth.c +++ b/test/sleuth.c @@ -68,5 +68,40 @@ void sleuth_test_find_brand(void) { } void sleuth_test_find_emblem(void) { - CU_ASSERT_TRUE(1); + struct gargoyle_opt optv[] = { + { GARGOYLE_MK_OPT("foo"), 'f', NULL, 0, GARGOYLE_TYPE_BOOL }, + { GARGOYLE_MK_OPT("bar"), 'b', NULL, 0, GARGOYLE_TYPE_UINT } + }; + + uint16_t optc = sizeof(optv) / sizeof(struct gargoyle_opt); + + struct gargoyle_opt *opt = gargoyle_find_emblem(optc, optv, 'f', 0); + CU_ASSERT_PTR_NOT_NULL(opt); + CU_ASSERT_NSTRING_EQUAL(opt->brand, "foo", opt->brand_sz); + + opt = gargoyle_find_emblem(optc, optv, 'f', GARGOYLE_FLG_ECASE); + CU_ASSERT_PTR_NOT_NULL(opt); + CU_ASSERT_NSTRING_EQUAL(opt->brand, "foo", opt->brand_sz); + + opt = gargoyle_find_emblem(optc, optv, 'F', 0); + CU_ASSERT_PTR_NULL(opt); + + opt = gargoyle_find_emblem(optc, optv, 'F', GARGOYLE_FLG_ECASE); + CU_ASSERT_PTR_NOT_NULL(opt); + CU_ASSERT_NSTRING_EQUAL(opt->brand, "foo", opt->brand_sz); + + opt = gargoyle_find_emblem(optc, optv, 'b', 0); + CU_ASSERT_PTR_NOT_NULL(opt); + CU_ASSERT_NSTRING_EQUAL(opt->brand, "bar", opt->brand_sz); + + opt = gargoyle_find_emblem(optc, optv, 'b', GARGOYLE_FLG_ECASE); + CU_ASSERT_PTR_NOT_NULL(opt); + CU_ASSERT_NSTRING_EQUAL(opt->brand, "bar", opt->brand_sz); + + opt = gargoyle_find_emblem(optc, optv, 'B', 0); + CU_ASSERT_PTR_NULL(opt); + + opt = gargoyle_find_emblem(optc, optv, 'B', GARGOYLE_FLG_ECASE); + CU_ASSERT_PTR_NOT_NULL(opt); + CU_ASSERT_NSTRING_EQUAL(opt->brand, "bar", opt->brand_sz); }