diff options
Diffstat (limited to 'tests/attr/attr_expect.h')
-rw-r--r-- | tests/attr/attr_expect.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/attr/attr_expect.h b/tests/attr/attr_expect.h new file mode 100644 index 000000000..70f1ab4f5 --- /dev/null +++ b/tests/attr/attr_expect.h @@ -0,0 +1,43 @@ +#ifndef __CLAR_TEST_ATTR_EXPECT__ +#define __CLAR_TEST_ATTR_EXPECT__ + +enum attr_expect_t { + EXPECT_FALSE, + EXPECT_TRUE, + EXPECT_UNDEFINED, + EXPECT_STRING +}; + +struct attr_expected { + const char *path; + const char *attr; + enum attr_expect_t expected; + const char *expected_str; +}; + +GIT_INLINE(void) attr_check_expected( + enum attr_expect_t expected, + const char *expected_str, + const char *name, + const char *value) +{ + switch (expected) { + case EXPECT_TRUE: + cl_assert_(GIT_ATTR_TRUE(value), name); + break; + + case EXPECT_FALSE: + cl_assert_(GIT_ATTR_FALSE(value), name); + break; + + case EXPECT_UNDEFINED: + cl_assert_(GIT_ATTR_UNSPECIFIED(value), name); + break; + + case EXPECT_STRING: + cl_assert_equal_s(expected_str, value); + break; + } +} + +#endif |