test_sss_idmap.c revision d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose Sumit Bose <sbose@redhat.com>
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose Copyright (C) 2013 Red Hat
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose SSSD tests: Unit tests for libsss_idmap
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose This program is free software; you can redistribute it and/or modify
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose it under the terms of the GNU General Public License as published by
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose the Free Software Foundation; either version 3 of the License, or
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose (at your option) any later version.
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose This program is distributed in the hope that it will be useful,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose but WITHOUT ANY WARRANTY; without even the implied warranty of
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose GNU General Public License for more details.
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose You should have received a copy of the GNU General Public License
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose along with this program. If not, see <http://www.gnu.org/licenses/>.
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose test_ctx = talloc_zero(global_talloc_context, struct test_ctx);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_init(idmap_talloc, test_ctx->mem_idmap, idmap_free,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bosevoid setup_ranges(struct test_ctx *test_ctx, bool external_mapping,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose const char *name;
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose const char *sid;
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_add_domain_ex(test_ctx->idmap_ctx, name, sid, &range, NULL,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_add_domain_ex(test_ctx->idmap_ctx, name, sid, &range, NULL,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bosevoid test_sss_idmap_setup_with_domains(void **state) {
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose test_ctx = talloc_get_type(*state, struct test_ctx);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bosevoid test_sss_idmap_setup_with_external_mappings(void **state) {
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose test_ctx = talloc_get_type(*state, struct test_ctx);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bosevoid test_sss_idmap_setup_with_both(void **state) {
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose test_ctx = talloc_get_type(*state, struct test_ctx);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose test_ctx = talloc_get_type(*state, struct test_ctx);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose test_ctx = talloc_get_type(*state, struct test_ctx);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_add_domain(test_ctx->idmap_ctx, TEST_DOM_NAME, TEST_DOM_SID,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_add_domain(test_ctx->idmap_ctx, TEST_DOM_NAME, TEST_DOM_SID,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_add_domain_ex(test_ctx->idmap_ctx, TEST_DOM_NAME,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_add_domain_ex(test_ctx->idmap_ctx, TEST_DOM_NAME,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_add_domain_ex(test_ctx->idmap_ctx, TEST_DOM_NAME"X",
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_add_domain_ex(test_ctx->idmap_ctx, TEST_DOM_NAME,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_add_domain_ex(test_ctx->idmap_ctx, TEST_DOM_NAME,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_add_domain_ex(test_ctx->idmap_ctx, TEST_DOM_NAME,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_add_domain_ex(test_ctx->idmap_ctx, TEST_DOM_NAME"-nosid",
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_add_domain_ex(test_ctx->idmap_ctx, TEST_DOM_NAME"-nosid",
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose test_ctx = talloc_get_type(*state, struct test_ctx);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_sid_to_unix(test_ctx->idmap_ctx, TEST_DOM_SID"1-1", &id);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_sid_to_unix(test_ctx->idmap_ctx, TEST_DOM_SID"-400000",
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_unix_to_sid(test_ctx->idmap_ctx, TEST_OFFSET - 1, &sid);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_sid_to_unix(test_ctx->idmap_ctx, TEST_DOM_SID"-0", &id);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_unix_to_sid(test_ctx->idmap_ctx, id, &sid);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose assert_int_equal(id, TEST_RANGE_MIN+TEST_OFFSET);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_unix_to_sid(test_ctx->idmap_ctx, id, &sid);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose assert_string_equal(sid, TEST_DOM_SID"-"TEST_OFFSET_STR);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose test_ctx = talloc_get_type(*state, struct test_ctx);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_sid_to_unix(test_ctx->idmap_ctx, TEST_DOM_SID"1-1", &id);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_sid_to_unix(test_ctx->idmap_ctx, TEST_DOM_SID"-400000",
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_unix_to_sid(test_ctx->idmap_ctx, TEST_OFFSET - 1, &sid);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_sid_to_unix(test_ctx->idmap_ctx, TEST_DOM_SID"-0", &id);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_unix_to_sid(test_ctx->idmap_ctx, TEST_RANGE_MIN, &sid);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose test_ctx = talloc_get_type(*state, struct test_ctx);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_check_sid_unix(test_ctx->idmap_ctx, TEST_DOM_SID"-400000",
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_check_sid_unix(test_ctx->idmap_ctx, TEST_DOM_SID"-400000",
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_check_sid_unix(test_ctx->idmap_ctx, TEST_DOM_SID"1-400000",
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_check_sid_unix(test_ctx->idmap_ctx, TEST_DOM_SID"-400000",
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_check_sid_unix(test_ctx->idmap_ctx, TEST_DOM_SID"-400000",
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose test_ctx = talloc_get_type(*state, struct test_ctx);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_domain_has_algorithmic_mapping(NULL, NULL, &use_id_mapping);
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_domain_has_algorithmic_mapping(NULL, TEST_DOM_SID,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_domain_has_algorithmic_mapping(test_ctx->idmap_ctx, NULL,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_domain_has_algorithmic_mapping(test_ctx->idmap_ctx,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_domain_has_algorithmic_mapping(test_ctx->idmap_ctx,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose err = sss_idmap_domain_has_algorithmic_mapping(test_ctx->idmap_ctx,
d064fef06dcbcb5f6c1be03e286b1a3433d6dfd7Sumit Bose /* Set debug level to invalid value so we can deside if -d 0 was used. */