[SSSD] [PATCH] TESTS: Check if option maps have the right number of members
Lukas Slebodnik
lslebodn at redhat.com
Mon Aug 11 15:48:02 UTC 2014
On (11/08/14 14:55), Jakub Hrozek wrote:
>Hi,
>
>in order to prevent mistakes like the sudo options misalignment, I wrote
>a unit test that fails of the last entry in the list is not a
>sentinel.
Test failed without patch "LDAP SUDO: sudo provider doesn't fetch 'EntryUSN'"
>From 250d5e526d16a6eac31da1e5f7db57bd52b2318a Mon Sep 17 00:00:00 2001
>From: Jakub Hrozek <jhrozek at redhat.com>
>Date: Mon, 11 Aug 2014 14:21:28 +0200
>Subject: [PATCH] TESTS: Check if option maps have the right number of members
>
>---
> src/tests/ipa_ldap_opt-tests.c | 84 ++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 84 insertions(+)
>
>diff --git a/src/tests/ipa_ldap_opt-tests.c b/src/tests/ipa_ldap_opt-tests.c
>index fffdc7e739fe5d7f9a0a52ffb2574958472eadef..3504092d444d89ab59e074237a3f8589aeebbcda 100644
>--- a/src/tests/ipa_ldap_opt-tests.c
>+++ b/src/tests/ipa_ldap_opt-tests.c
>@@ -169,6 +169,88 @@ START_TEST(test_compare_2307_with_2307bis)
> }
> END_TEST
>
>+static void fail_unless_dp_opt_is_terminator(struct dp_option *o)
>+{
>+ fail_unless(o->opt_name == NULL);
>+ fail_unless(o->type == 0);
>+ fail_unless(o->def_val.string == NULL);
>+ fail_unless(o->val.string == NULL);
>+}
>+
>+static void fail_unless_sdap_opt_is_terminator(struct sdap_attr_map *m)
>+{
>+ fail_unless(m->name == NULL);
>+ fail_unless(m->def_name == NULL);
>+ fail_unless(m->sys_name == NULL);
>+ fail_unless(m->opt_name == NULL);
>+}
>+
>+START_TEST(test_dp_opt_sentinel)
>+{
>+ fail_unless_dp_opt_is_terminator(&default_basic_opts[SDAP_OPTS_BASIC]);
>+
>+ fail_unless_dp_opt_is_terminator(&default_krb5_opts[KRB5_OPTS]);
>+
>+ fail_unless_dp_opt_is_terminator(&ad_basic_opts[AD_OPTS_BASIC]);
>+ fail_unless_dp_opt_is_terminator(&ad_def_ldap_opts[SDAP_OPTS_BASIC]);
>+ fail_unless_dp_opt_is_terminator(&ad_def_krb5_opts[KRB5_OPTS]);
>+
>+ fail_unless_dp_opt_is_terminator(&ipa_basic_opts[IPA_OPTS_BASIC]);
>+ fail_unless_dp_opt_is_terminator(&ipa_def_ldap_opts[SDAP_OPTS_BASIC]);
>+ fail_unless_dp_opt_is_terminator(&ipa_def_krb5_opts[KRB5_OPTS]);
>+
>+ fail_unless_dp_opt_is_terminator(&ad_dyndns_opts[DP_OPT_DYNDNS]);
>+ fail_unless_dp_opt_is_terminator(&ipa_dyndns_opts[DP_OPT_DYNDNS]);
All "struct dp_option" arrays are tested.
Compared with output of command: git grep "^struct dp_option.*\["
>+
>+START_TEST(test_sdap_opt_sentinel)
>+{
>+ fail_unless_sdap_opt_is_terminator(&generic_attr_map[SDAP_AT_GENERAL]);
>+ fail_unless_sdap_opt_is_terminator(&gen_ipa_attr_map[SDAP_AT_GENERAL]);
>+ fail_unless_sdap_opt_is_terminator(&gen_ad_attr_map[SDAP_AT_GENERAL]);
>+ fail_unless_sdap_opt_is_terminator(&ad_2008r2_attr_map[SDAP_AT_GENERAL]);
>+ fail_unless_sdap_opt_is_terminator(&ipa_attr_map[SDAP_AT_GENERAL]);
>+
>+ fail_unless_sdap_opt_is_terminator(&rfc2307_user_map[SDAP_OPTS_USER]);
>+ fail_unless_sdap_opt_is_terminator(&rfc2307bis_user_map[SDAP_OPTS_USER]);
>+ fail_unless_sdap_opt_is_terminator(&gen_ad2008r2_user_map[SDAP_OPTS_USER]);
>+ fail_unless_sdap_opt_is_terminator(&ad_2008r2_user_map[SDAP_OPTS_USER]);
>+ fail_unless_sdap_opt_is_terminator(&ipa_user_map[SDAP_OPTS_USER]);
>+
>+ fail_unless_sdap_opt_is_terminator(&rfc2307_group_map[SDAP_OPTS_GROUP]);
>+ fail_unless_sdap_opt_is_terminator(&rfc2307bis_group_map[SDAP_OPTS_GROUP]);
>+ fail_unless_sdap_opt_is_terminator(&gen_ad2008r2_group_map[SDAP_OPTS_GROUP]);
>+ fail_unless_sdap_opt_is_terminator(&ad_2008r2_group_map[SDAP_OPTS_GROUP]);
>+ fail_unless_sdap_opt_is_terminator(&ipa_group_map[SDAP_OPTS_GROUP]);
>+
>+ fail_unless_sdap_opt_is_terminator(&native_sudorule_map[SDAP_OPTS_SUDO]);
>+
>+ fail_unless_sdap_opt_is_terminator(&netgroup_map[SDAP_OPTS_NETGROUP]);
>+ fail_unless_sdap_opt_is_terminator(&ad_netgroup_map[SDAP_OPTS_NETGROUP]);
>+
>+ fail_unless_sdap_opt_is_terminator(&ipa_netgroup_map[IPA_OPTS_NETGROUP]);
>+
>+ fail_unless_sdap_opt_is_terminator(&ipa_host_map[IPA_OPTS_HOST]);
>+ fail_unless_sdap_opt_is_terminator(&ipa_hostgroup_map[IPA_OPTS_HOSTGROUP]);
>+ fail_unless_sdap_opt_is_terminator(&ipa_selinux_user_map[IPA_OPTS_SELINUX_USERMAP]);
>+
>+ fail_unless_sdap_opt_is_terminator(&service_map[SDAP_OPTS_SERVICES]);
>+ fail_unless_sdap_opt_is_terminator(&ad_service_map[SDAP_OPTS_SERVICES]);
>+ fail_unless_sdap_opt_is_terminator(&ipa_service_map[SDAP_OPTS_SERVICES]);
>+
>+ fail_unless_sdap_opt_is_terminator(&rfc2307_autofs_mobject_map[SDAP_OPTS_AUTOFS_MAP]);
>+ fail_unless_sdap_opt_is_terminator(&rfc2307bis_autofs_mobject_map[SDAP_OPTS_AUTOFS_MAP]);
>+ fail_unless_sdap_opt_is_terminator(&ad_autofs_mobject_map[SDAP_OPTS_AUTOFS_MAP]);
>+ fail_unless_sdap_opt_is_terminator(&ipa_autofs_mobject_map[SDAP_OPTS_AUTOFS_MAP]);
>+
>+ fail_unless_sdap_opt_is_terminator(&rfc2307_autofs_entry_map[SDAP_OPTS_AUTOFS_ENTRY]);
>+ fail_unless_sdap_opt_is_terminator(&rfc2307bis_autofs_entry_map[SDAP_OPTS_AUTOFS_ENTRY]);
>+ fail_unless_sdap_opt_is_terminator(&ad_autofs_entry_map[SDAP_OPTS_AUTOFS_ENTRY]);
>+ fail_unless_sdap_opt_is_terminator(&ipa_autofs_entry_map[SDAP_OPTS_AUTOFS_ENTRY]);
All "struct sdap_attr_ma" arrays are tested.
Compared with output of command: git grep "struct sdap_attr_map.*\["
> START_TEST(test_copy_opts)
> {
> errno_t ret;
>@@ -396,6 +478,8 @@ Suite *ipa_ldap_opt_suite (void)
> tcase_add_test (tc_ipa_ldap_opt, test_compare_opts);
> tcase_add_test (tc_ipa_ldap_opt, test_compare_sdap_attrs);
> tcase_add_test (tc_ipa_ldap_opt, test_compare_2307_with_2307bis);
>+ tcase_add_test (tc_ipa_ldap_opt, test_dp_opt_sentinel);
>+ tcase_add_test (tc_ipa_ldap_opt, test_sdap_opt_sentinel);
> suite_add_tcase (s, tc_ipa_ldap_opt);
ACK
LS
More information about the sssd-devel
mailing list