summaryrefslogtreecommitdiff
path: root/server/tests/krb5_utils-tests.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/tests/krb5_utils-tests.c')
-rw-r--r--server/tests/krb5_utils-tests.c307
1 files changed, 0 insertions, 307 deletions
diff --git a/server/tests/krb5_utils-tests.c b/server/tests/krb5_utils-tests.c
deleted file mode 100644
index 8676f3bf..00000000
--- a/server/tests/krb5_utils-tests.c
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
- SSSD
-
- Kerberos 5 Backend Module -- Utilities tests
-
- Authors:
- Sumit Bose <sbose@redhat.com>
-
- Copyright (C) 2009 Red Hat
-
- This program is free software; you can redistribute it and/or modify
- 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 <stdlib.h>
-#include <check.h>
-
-#include "providers/krb5/krb5_utils.h"
-#include "providers/krb5/krb5_auth.h"
-
-#define BASE "/abc/def"
-
-#define USERNAME "testuser"
-#define UID "12345"
-#define PRINCIPLE_NAME "testuser@EXAMPLE.COM"
-#define REALM "REALM.ORG"
-#define HOME_DIRECTORY "/home/testuser"
-#define CCACHE_DIR "/var/tmp"
-#define PID "4321"
-
-extern struct dp_option default_krb5_opts[];
-
-TALLOC_CTX *tmp_ctx = NULL;
-struct krb5child_req *kr;
-
-void setup_talloc_context(void)
-{
- int ret;
- int i;
-
- struct pam_data *pd;
- struct krb5_ctx *krb5_ctx;
- fail_unless(tmp_ctx == NULL, "Talloc context already initialized.");
- tmp_ctx = talloc_new(NULL);
- fail_unless(tmp_ctx != NULL, "Cannot create talloc context.");
-
- kr = talloc_zero(tmp_ctx, struct krb5child_req);
- fail_unless(kr != NULL, "Cannot create krb5child_req structure.");
-
- pd = talloc_zero(tmp_ctx, struct pam_data);
- fail_unless(pd != NULL, "Cannot create pam_data structure.");
-
- krb5_ctx = talloc_zero(tmp_ctx, struct krb5_ctx);
- fail_unless(pd != NULL, "Cannot create krb5_ctx structure.");
-
- pd->user = discard_const(USERNAME);
- pd->pw_uid = atoi(UID);
- pd->upn = PRINCIPLE_NAME;
- pd->cli_pid = atoi(PID);
-
- krb5_ctx->opts = talloc_zero_array(tmp_ctx, struct dp_option, KRB5_OPTS);
- fail_unless(krb5_ctx->opts != NULL, "Cannot created options.");
- for (i = 0; i < KRB5_OPTS; i++) {
- krb5_ctx->opts[i].opt_name = default_krb5_opts[i].opt_name;
- krb5_ctx->opts[i].type = default_krb5_opts[i].type;
- krb5_ctx->opts[i].def_val = default_krb5_opts[i].def_val;
- }
- ret = dp_opt_set_string(krb5_ctx->opts, KRB5_REALM, REALM);
- fail_unless(ret == EOK, "Failed to set Realm");
- ret = dp_opt_set_string(krb5_ctx->opts, KRB5_CCACHEDIR, CCACHE_DIR);
- fail_unless(ret == EOK, "Failed to set Ccache dir");
-
- kr->homedir = HOME_DIRECTORY;
-
- kr->pd = pd;
- kr->krb5_ctx = krb5_ctx;
-
-}
-
-void free_talloc_context(void)
-{
- int ret;
- fail_unless(tmp_ctx != NULL, "Talloc context already freed.");
- ret = talloc_free(tmp_ctx);
- tmp_ctx = NULL;
- fail_unless(ret == 0, "Connot free talloc context.");
-}
-
-START_TEST(test_multiple_substitutions)
-{
- const char *test_template = BASE"_%u_%U_%u";
- const char *expected = BASE"_"USERNAME"_"UID"_"USERNAME;
- char *result;
-
- result = expand_ccname_template(tmp_ctx, kr, test_template);
-
- fail_unless(result != NULL, "Cannot expand template [%s].", test_template);
- fail_unless(strcmp(result, expected) == 0,
- "Expansion failed, result [%s], expected [%s].",
- result, expected);
-}
-END_TEST
-
-START_TEST(test_username)
-{
- const char *test_template = BASE"_%u";
- const char *expected = BASE"_"USERNAME;
- char *result;
-
- result = expand_ccname_template(tmp_ctx, kr, test_template);
-
- fail_unless(result != NULL, "Cannot expand template [%s].", test_template);
- fail_unless(strcmp(result, expected) == 0,
- "Expansion failed, result [%s], expected [%s].",
- result, expected);
-}
-END_TEST
-
-START_TEST(test_uid)
-{
- const char *test_template = BASE"_%U";
- const char *expected = BASE"_"UID;
- char *result;
-
- result = expand_ccname_template(tmp_ctx, kr, test_template);
-
- fail_unless(result != NULL, "Cannot expand template [%s].", test_template);
- fail_unless(strcmp(result, expected) == 0,
- "Expansion failed, result [%s], expected [%s].",
- result, expected);
-}
-END_TEST
-
-START_TEST(test_upn)
-{
- const char *test_template = BASE"_%p";
- const char *expected = BASE"_"PRINCIPLE_NAME;
- char *result;
-
- result = expand_ccname_template(tmp_ctx, kr, test_template);
-
- fail_unless(result != NULL, "Cannot expand template [%s].", test_template);
- fail_unless(strcmp(result, expected) == 0,
- "Expansion failed, result [%s], expected [%s].",
- result, expected);
-}
-END_TEST
-
-START_TEST(test_realm)
-{
- const char *test_template = BASE"_%r";
- const char *expected = BASE"_"REALM;
- char *result;
-
- result = expand_ccname_template(tmp_ctx, kr, test_template);
-
- fail_unless(result != NULL, "Cannot expand template [%s].", test_template);
- fail_unless(strcmp(result, expected) == 0,
- "Expansion failed, result [%s], expected [%s].",
- result, expected);
-}
-END_TEST
-
-START_TEST(test_home)
-{
- const char *test_template = BASE"_%h";
- const char *expected = BASE"_"HOME_DIRECTORY;
- char *result;
-
- result = expand_ccname_template(tmp_ctx, kr, test_template);
-
- fail_unless(result != NULL, "Cannot expand template [%s].", test_template);
- fail_unless(strcmp(result, expected) == 0,
- "Expansion failed, result [%s], expected [%s].",
- result, expected);
-}
-END_TEST
-
-START_TEST(test_ccache_dir)
-{
- const char *test_template = BASE"_%d";
- const char *expected = BASE"_"CCACHE_DIR;
- char *result;
-
- result = expand_ccname_template(tmp_ctx, kr, test_template);
-
- fail_unless(result != NULL, "Cannot expand template [%s].", test_template);
- fail_unless(strcmp(result, expected) == 0,
- "Expansion failed, result [%s], expected [%s].",
- result, expected);
-}
-END_TEST
-
-START_TEST(test_pid)
-{
- const char *test_template = BASE"_%P";
- const char *expected = BASE"_"PID;
- char *result;
-
- result = expand_ccname_template(tmp_ctx, kr, test_template);
-
- fail_unless(result != NULL, "Cannot expand template [%s].", test_template);
- fail_unless(strcmp(result, expected) == 0,
- "Expansion failed, result [%s], expected [%s].",
- result, expected);
-}
-END_TEST
-
-START_TEST(test_percent)
-{
- const char *test_template = BASE"_%%";
- const char *expected = BASE"_%";
- char *result;
-
- result = expand_ccname_template(tmp_ctx, kr, test_template);
-
- fail_unless(result != NULL, "Cannot expand template [%s].", test_template);
- fail_unless(strcmp(result, expected) == 0,
- "Expansion failed, result [%s], expected [%s].",
- result, expected);
-}
-END_TEST
-
-START_TEST(test_unknow_template)
-{
- const char *test_template = BASE"_%X";
- char *result;
-
- result = expand_ccname_template(tmp_ctx, kr, test_template);
-
- fail_unless(result == NULL, "Unknown template [%s] should fail.",
- test_template);
-}
-END_TEST
-
-START_TEST(test_NULL)
-{
- char *test_template = NULL;
- char *result;
-
- result = expand_ccname_template(tmp_ctx, kr, test_template);
-
- fail_unless(result == NULL, "Expected NULL as a result for an empty input.",
- test_template);
-}
-END_TEST
-
-START_TEST(test_no_substitution)
-{
- const char *test_template = BASE;
- char *result;
-
- result = expand_ccname_template(tmp_ctx, kr, test_template);
-
- fail_unless(result != NULL, "Cannot expand template [%s].", test_template);
- fail_unless(strcmp(result, test_template) == 0,
- "Expansion failed, result [%s], expected [%s].",
- result, test_template);
-}
-END_TEST
-
-Suite *krb5_utils_suite (void)
-{
- Suite *s = suite_create ("krb5_utils");
-
- TCase *tc_ccname_template = tcase_create ("ccname_template");
- tcase_add_checked_fixture (tc_ccname_template, setup_talloc_context,
- free_talloc_context);
- tcase_add_test (tc_ccname_template, test_no_substitution);
- tcase_add_test (tc_ccname_template, test_NULL);
- tcase_add_test (tc_ccname_template, test_unknow_template);
- tcase_add_test (tc_ccname_template, test_username);
- tcase_add_test (tc_ccname_template, test_uid);
- tcase_add_test (tc_ccname_template, test_upn);
- tcase_add_test (tc_ccname_template, test_realm);
- tcase_add_test (tc_ccname_template, test_home);
- tcase_add_test (tc_ccname_template, test_ccache_dir);
- tcase_add_test (tc_ccname_template, test_pid);
- tcase_add_test (tc_ccname_template, test_percent);
- tcase_add_test (tc_ccname_template, test_multiple_substitutions);
- suite_add_tcase (s, tc_ccname_template);
-
- return s;
-}
-
-int main(void)
-{
- int number_failed;
- Suite *s = krb5_utils_suite ();
- SRunner *sr = srunner_create (s);
- /* If CK_VERBOSITY is set, use that, otherwise it defaults to CK_NORMAL */
- srunner_run_all(sr, CK_ENV);
- number_failed = srunner_ntests_failed (sr);
- srunner_free (sr);
- return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
-}
-