ipa_ldap_opt-tests.c revision b1593daeecdb40c72ef8c58546bda65c57d4e35c
/*
SSSD
Tests if IPA and LDAP backend options are in sync
Authors:
Jakub Hrozek <jhrozek@redhat.com>
Copyright (C) 2010 Red Hat
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <check.h>
#include <stdlib.h>
#include <talloc.h>
#include "providers/ipa/ipa_common.h"
#include "providers/ipa/ipa_opts.h"
#include "providers/ldap/ldap_opts.h"
#include "providers/krb5/krb5_opts.h"
#include "providers/krb5/krb5_common.h"
#include "providers/dp_dyndns.h"
struct test_domain {
const char *domain;
const char *basedn;
};
struct test_domain test_domains[] = {
{ "abc", "dc=abc"},
{ "a.b.c", "dc=a,dc=b,dc=c"},
{ "A.B.C", "dc=a,dc=b,dc=c"},
};
/* Mock parsing search base without overlinking the test */
struct sdap_search_base ***_search_bases)
{
return EOK;
}
{
int ret;
int i;
char *basedn;
"domain_to_basedn does not fail with EINVAL if domain is NULL");
"domain_to_basedn does not fail with EINVAL if basedn is NULL");
"domain_to_basedn returned wrong basedn, "
}
}
{
}
{
/* General Attributes */
/* User Attributes */
/* Group Attributes */
/* Service Attributes */
/* AutoFS Attributes */
}
{
/* User Attributes */
/* Group Attributes */
/* AutoFS Attributes */
}
static void fail_unless_dp_opt_is_terminator(struct dp_option *o)
{
fail_unless(o->type == 0);
}
static void fail_unless_sdap_opt_is_terminator(struct sdap_attr_map *m)
{
}
{
}
{
}
{
for (int i=0; i < SDAP_OPTS_BASIC; i++) {
case DP_OPT_STRING:
"Option %s does not have default value after copy\n",
}
break;
case DP_OPT_NUMBER:
"Option %s does not have default value after copy\n",
break;
case DP_OPT_BOOL:
"Option %s does not have default value after copy\n",
break;
case DP_OPT_BLOB:
"Blobs differ in size for option %s\n",
"Blobs differ in value for option %s\n",
}
}
}
{
struct sdap_attr_map *out_map;
}
{
discard_const("baz:bar"),
NULL };
struct sdap_attr_map *in_map;
struct sdap_attr_map *out_map;
SDAP_OPTS_USER, &in_map);
/* Two extra and sentinel */
/* Foo would be saved to sysdb verbatim */
/* Bar would be saved to sysdb as baz */
}
{
struct sdap_attr_map *in_map;
struct sdap_attr_map *out_map;
SDAP_OPTS_USER, &in_map);
NULL,
/* Attributes and sentinel */
}
{
discard_const("bar:"),
NULL };
struct sdap_attr_map *in_map;
struct sdap_attr_map *out_map;
SDAP_OPTS_USER, &in_map);
/* The faulty attributes would be just skipped */
}
{
NULL };
struct sdap_attr_map *in_map;
struct sdap_attr_map *out_map;
SDAP_OPTS_USER, &in_map);
}
Suite *ipa_ldap_opt_suite (void)
{
suite_add_tcase (s, tc_ipa_utils);
suite_add_tcase (s, tc_dp_opts);
suite_add_tcase (s, tc_sdap_opts);
suite_add_tcase (s, tc_extra_opts);
return s;
}
int main(void)
{
int number_failed;
Suite *s = ipa_ldap_opt_suite ();
/* If CK_VERBOSITY is set, use that, otherwise it defaults to CK_NORMAL */
srunner_free (sr);
}