test_negcache.c revision 0393f0d44ac92035de29a8bc8b2005db6d90b640
2eeec5240b424984e3ee26296da1eeab6c6d739eChristian Maeder Pallavi Jha <pallavikumarijha@gmail.com>
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer Copyright (C) 2013 Red Hat
7520452bb30b5abbd471f82352fc4c1c937e02c5Till Mossakowski This program is free software; you can redistribute it and/or modify
7520452bb30b5abbd471f82352fc4c1c937e02c5Till Mossakowski it under the terms of the GNU General Public License as published by
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer the Free Software Foundation; either version 3 of the License, or
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer (at your option) any later version.
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer This program is distributed in the hope that it will be useful,
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer but WITHOUT ANY WARRANTY; without even the implied warranty of
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer GNU General Public License for more details.
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer You should have received a copy of the GNU General Public License
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer along with this program. If not, see <http://www.gnu.org/licenses/>.
331603b37dec12e37e2e1df9634ef0f2c5c73ddfThiemo Wiedemeyer#include "sss_client/idmap/sss_nss_idmap.h"
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer#define CERT "MIIECTCCAvGgAwIBAgIBCTANBgkqhkiG9w0BAQsFADA0MRIwEAYDVQQKDAlJUEEuREVWRUwxHjAcBgNVBAMMFUNlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xNTA0MjgxMDIxMTFaFw0xNzA0MjgxMDIxMTFaMDIxEjAQBgNVBAoMCUlQQS5ERVZFTDEcMBoGA1UEAwwTaXBhLWRldmVsLmlwYS5kZXZlbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALIykqtHuAwTVEofHikG/9BQy/dfeZFlsTkBg2qtnnc78w3XufbcnkpJp9Bmcsy/d9beqf5nlsxJ8TcjLsRQ9Ou6YtQjTfM3OILuOz8s0ICbF6qb66bd9hX/BrLO/9+KnpWFSR+E/YEmzgYyDTbKfBWBaGuPPrOi/K6vwkRYFZVA/FYZkYDtQhFmBO884HYzS4P6frRH3PvtRqWNCmaHpe97dGKsvnM2ybT+IMSB8/54GajQr3+BciRh2XaT4wvSTxkXM1fUgrDxqAP2AZmpuIyDyboZh+rWOwbrTPfx5SipELZG3uHhP8HMcr4qQ8b20LWgxCRuT73sIooHET350xUCAwEAAaOCASYwggEiMB8GA1UdIwQYMBaAFPKdQk4PxEglWC8czg+hPyLIVciRMDsGCCsGAQUFBwEBBC8wLTArBggrBgEFBQcwAYYfaHR0cDovL2lwYS1jYS5pcGEuZGV2ZWwvY2Evb2NzcDAOBgNVHQ8BAf8EBAMCBPAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMHQGA1UdHwRtMGswaaAxoC+GLWh0dHA6Ly9pcGEtY2EuaXBhLmRldmVsL2lwYS9jcmwvTWFzdGVyQ1JMLmJpbqI0pDIwMDEOMAwGA1UECgwFaXBhY2ExHjAcBgNVBAMMFUNlcnRpZmljYXRlIEF1dGhvcml0eTAdBgNVHQ4EFgQULSs/y/Wy/zIsqMIc3b2MgB7dMYIwDQYJKoZIhvcNAQELBQADggEBAJpHLlCnTR1TD8lxQgzl2n1JZOeryN/fAsGH0Vve2m8r5PC+ugnfAoULiuabBn1pOGxy/0x7Kg0/Iy8WRv8Fk7DqJCjXEqFXuFkZJfNDCtP9DzeNuMoV50iKoMfHS38BPFjXN+X/fSsBrA2fUWrlQCTmXlUN97gvQqxt5Slrxgukvxm9OSfu/sWz22LUvtJHupYwWv1iALgnXS86lAuVNYVALLxn34r58XsZlj5CSBMjBJWpaxEzgUdag3L2IPqOQXuPd0d8x11G9E/9gQquOSe2aiZjsdO/VYOCmzZsM2QPUMBVlBPDhfTVcWXQwN385uycW/ARtSzzSME2jKKWSIQ="
36f69d35e01d2d6b6bdc165b49661f2a80af8687Mihai Codescu/* register_cli_protocol_version is required in test since it links with
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyerstruct cli_protocol_version *register_cli_protocol_version(void)
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer static struct cli_protocol_version responder_test_cli_protocol_version[] = {
4e9e95ba35a68f3c767bc0b23ebf9e904e442517Christian Maeder return responder_test_cli_protocol_version;
ecd98975b8a8ab5a7bc075562bdab51cf47d2a90Christian Maeder/* Mock NSS structure */
f9e0b18852b238ddb649d341194e05d7200d1bbeChristian Maederstatic struct nss_ctx *
4c8d3c5a9e938633f6147b5a595b9b93bfca99e6Christian Maeder nctx = talloc_zero(mem_ctx, struct nss_ctx);
93eeaffa1087fc6eae3f19b8ca5affb7802799fdThiemo Wiedemeyer ret = sss_ncache_init(nctx, SHORTSPAN, &nctx->ncache);
ddc662fdf0207eae2034d7b68ae5e2225c575207Thiemo Wiedemeyer err = sss_idmap_init(sss_idmap_talloc, nctx, sss_idmap_talloc_free,
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu DEBUG(SSSDBG_FATAL_FAILURE, ("sss_idmap_init failed.\n"));
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_init(ts, SHORTSPAN, &ts->ctx);
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer struct test_state *ts = talloc_get_type_abort(*state, struct test_state);
0b8b26a22f136a9b2a8e99d655f6fe6b0b96008cThiemo Wiedemeyerstatic void test_sss_ncache_init(void **state)
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer ret = sss_ncache_init(memctx, SHORTSPAN, &ctx );
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer/* @test_sss_ncache_uid : test following functions
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer * sss_ncache_set_uid
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer * sss_ncache_check_uid
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyerstatic void test_sss_ncache_uid(void **state)
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ts = talloc_get_type_abort(*state, struct test_state);
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer /* test when uid not present in database */
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer ret = sss_ncache_check_uid(ts->ctx, NULL, uid);
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer /* test when uid is present in database */
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer ret = sss_ncache_reset_permanent(ts->ctx);
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer ret = sss_ncache_set_uid(ts->ctx, permanent, NULL, uid);
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer ret = sss_ncache_check_uid(ts->ctx, NULL, uid);
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer ret = sss_ncache_set_uid(ts->ctx, permanent, NULL, uid);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_check_uid(ts->ctx, NULL, uid);
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer ret = sss_ncache_check_uid(ts->ctx, NULL, uid);
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer ret = sss_ncache_set_uid(ts->ctx, permanent, NULL, uid);
92e96be605537638d75e9d3023ab698bd89cf889Thiemo Wiedemeyer ret = sss_ncache_check_uid(ts->ctx, NULL, uid);
92e96be605537638d75e9d3023ab698bd89cf889Thiemo Wiedemeyer ret = sss_ncache_check_uid(ts->ctx, NULL, uid);
92e96be605537638d75e9d3023ab698bd89cf889Thiemo Wiedemeyer ret = sss_ncache_set_uid(ts->ctx, permanent, NULL, uid);
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer/* @test_sss_ncache_gid : test following functions
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer * sss_ncache_set_gid
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer * sss_ncache_check_gid
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyerstatic void test_sss_ncache_gid(void **state)
d9f20cf968e246ec283f0c09f60af4b47b174398Thiemo Wiedemeyer ts = talloc_get_type_abort(*state, struct test_state);
d9f20cf968e246ec283f0c09f60af4b47b174398Thiemo Wiedemeyer /* test when gid is not present in database */
d9f20cf968e246ec283f0c09f60af4b47b174398Thiemo Wiedemeyer ret = sss_ncache_check_gid(ts->ctx, NULL, gid);
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer /* test when gid is present in database */
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_set_gid(ts->ctx, permanent, NULL, gid);
3e3efd4ce838940032e875e6d08712a177c9c1d0Thiemo Wiedemeyer ret = sss_ncache_check_gid(ts->ctx, NULL, gid);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_set_gid(ts->ctx, permanent, NULL, gid);
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder ret = sss_ncache_check_gid(ts->ctx, NULL, gid);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer/* @test_sss_ncache_sid : test following functions
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer * sss_ncache_set_sid
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder * sss_ncache_check_sid
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyerstatic void test_sss_ncache_sid(void **state)
370e81d7af7821f0ac6ee0643613e87a727841e7Thiemo Wiedemeyer ts = talloc_get_type_abort(*state, struct test_state);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer /*test when sid in not present in database */
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer /* test when sid is present in database */
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_set_sid(ts->ctx, permanent, sid);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_set_sid(ts->ctx, permanent, sid);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer/* @test_sss_ncache_cert : test following functions
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer * sss_ncache_set_cert
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer * sss_ncache_check_cert_
545d0cd78159cade346b579d06052638b19b0f72Thiemo Wiedemeyerstatic void test_sss_ncache_cert(void **state)
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ts = talloc_get_type_abort(*state, struct test_state);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer /*test when cert in not present in database */
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_check_cert(ts->ctx, cert);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu /* test when cert is present in database */
1a389234e68da7c3d087b038307ed8c66fc6dc32Thiemo Wiedemeyer ret = sss_ncache_set_cert(ts->ctx, permanent, cert);
8836fa284a241af325aa6f41234b5130b26ec4f9Thiemo Wiedemeyer ret = sss_ncache_check_cert(ts->ctx, cert);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_set_cert(ts->ctx, permanent, cert);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer ret = sss_ncache_check_cert(ts->ctx, cert);
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder/* @test_sss_ncache_user : test following functions
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu * sss_ncache_check_user
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer * sss_ncache_set_user
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyerstatic void test_sss_ncache_user(void **state)
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ts = talloc_get_type_abort(*state, struct test_state);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer dom->name = discard_const_p(char, TEST_DOM_NAME);
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer /* test when domain name is not present in database */
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_check_user(ts->ctx, dom, name);
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer ret = sss_ncache_check_user(ts->ctx, dom, name);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer /* test when domain name is present in database */
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer ret = sss_ncache_set_user(ts->ctx, permanent, dom, name);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_user(ts->ctx, dom, name);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_set_user(ts->ctx, permanent, dom, name);
0dba5bbaaef2f620f3b83a16ab6b229c3dd50c98Christian Maeder ret = sss_ncache_check_user(ts->ctx, dom, name);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer/* @test_sss_ncache_group : test following functions
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer * sss_ncache_check_group
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer * sss_ncache_set_group
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maederstatic void test_sss_ncache_group(void **state)
28ca54b0d63d1d26a991711c8c7e85c474994715Christian Maeder ts = talloc_get_type_abort(*state, struct test_state);
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder dom->name = discard_const_p(char, TEST_DOM_NAME);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu /* test when domain name is not present in database */
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_group(ts->ctx, dom, name);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_check_group(ts->ctx, dom, name);
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder /* test when domain name is present in database */
966a6c024c828387023fccb0cd0049f78687e5dcThiemo Wiedemeyer ret = sss_ncache_set_group(ts->ctx, permanent, dom, name);
1e3aca4178372af672efb237d16087c603fe5564Christian Maeder ret = sss_ncache_check_group(ts->ctx, dom, name);
966a6c024c828387023fccb0cd0049f78687e5dcThiemo Wiedemeyer ret = sss_ncache_set_group(ts->ctx, permanent, dom, name);
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer ret = sss_ncache_check_group(ts->ctx, dom, name);
28ca54b0d63d1d26a991711c8c7e85c474994715Christian Maeder/* @test_sss_ncache_netgr : test following functions
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maeder * sss_ncache_check_netgr
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maeder * sss_ncache_set_netgr
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maederstatic void test_sss_ncache_netgr(void **state)
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer ts = talloc_get_type_abort(*state, struct test_state);
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer dom->name = discard_const_p(char, TEST_DOM_NAME);
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder /* test when domain name is not present in database */
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_check_netgr(ts->ctx, dom, name);
38122cbf09ad3dcc31a826cc4093f630515a5cfcChristian Maeder ret = sss_ncache_check_netgr(ts->ctx, dom, name);
521045d36343cd17dd217a81d4b9422ad6ab6a07Christian Maeder /* test when domain name is present in database */
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder ret = sss_ncache_set_netgr(ts->ctx, permanent, dom, name);
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer ret = sss_ncache_check_netgr(ts->ctx, dom, name);
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder ret = sss_ncache_set_netgr(ts->ctx, permanent, dom, name);
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maeder ret = sss_ncache_check_netgr(ts->ctx, dom, name);
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder/* @test_sss_ncache_service_name : test following functions
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu * sss_ncache_check_service
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu * sss_ncache_set_service_name
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maederstatic void test_sss_ncache_service_name(void **state)
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer ts = talloc_get_type_abort(*state, struct test_state);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu dom->name = discard_const_p(char, TEST_DOM_NAME);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu /* test when domain name and protocol are not present in database */
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_service(ts->ctx, dom, name, PROTO);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_check_service(ts->ctx, dom, name, PROTO);
66b035879accdc5f8337726173f800286a87fd78Christian Maeder /* test when domain name and protocol are present in database */
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer ret = sss_ncache_set_service_name(ts->ctx, permanent, dom, name, PROTO);
66b035879accdc5f8337726173f800286a87fd78Christian Maeder ret = sss_ncache_check_service(ts->ctx, dom, name, PROTO);
66b035879accdc5f8337726173f800286a87fd78Christian Maeder ret = sss_ncache_set_service_name(ts->ctx, permanent, dom, name, PROTO);
66b035879accdc5f8337726173f800286a87fd78Christian Maeder ret = sss_ncache_check_service(ts->ctx, dom, name, PROTO);
03bbcb1fefdbd8bc4e8329ca2688809d84aff0a9Christian Maeder/* @test_sss_ncache_service_port : test following functions
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer * sss_ncache_check_service_port
12368e292c1abf7eaf975f20ee30ef7820ac5dd5Christian Maeder * sss_ncache_set_service_port
66b035879accdc5f8337726173f800286a87fd78Christian Maederstatic void test_sss_ncache_service_port(void **state)
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ts = talloc_get_type_abort(*state, struct test_state);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer dom->name = discard_const_p(char, TEST_DOM_NAME);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer /* test when domain name, port and protocol are not present in database */
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_check_service_port(ts->ctx, dom, (uint16_t)PORT,
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_check_service_port(ts->ctx, dom, (uint16_t)PORT,
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer /* test when domain name, port and protocol are present in database */
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_set_service_port(ts->ctx, permanent, dom, (uint16_t)PORT,
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_check_service_port(ts->ctx, dom, (uint16_t)PORT,
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder ret = sss_ncache_set_service_port(ts->ctx, permanent, dom, (uint16_t)PORT,
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer ret = sss_ncache_check_service_port(ts->ctx, dom, (uint16_t)PORT,
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanustatic void test_sss_ncache_reset_permanent(void **state)
e1c24b1dbf5cb1c9bb22b14a40167a4ba7806501Christian Maeder const bool permanent = true;
1e3aca4178372af672efb237d16087c603fe5564Christian Maeder ts = talloc_get_type_abort(*state, struct test_state);
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder ret = sss_ncache_set_uid(ts->ctx, permanent, NULL, 0);
40b73e7d13a858afeac95321fcdb9ac216bfbf01Thiemo Wiedemeyer ret = sss_ncache_check_uid(ts->ctx, NULL, 0);
e1c24b1dbf5cb1c9bb22b14a40167a4ba7806501Christian Maeder ret = sss_ncache_check_uid(ts->ctx, NULL, 0);
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maederstatic void test_sss_ncache_prepopulate(void **state)
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder { "filter_users", "testuser1, testuser2@"TEST_DOM_NAME", testuser3@somedomain" },
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder { "filter_groups", "testgroup1, testgroup2@"TEST_DOM_NAME", testgroup3@somedomain" },
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder ts = talloc_get_type_abort(*state, struct test_state);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder dom = talloc_zero(ts, struct sss_domain_info);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder dom->name = discard_const_p(char, TEST_DOM_NAME);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder tc = create_dom_test_ctx(ts, TESTS_PATH, TEST_CONF_DB,
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder ts->rctx = mock_rctx(ts, ev, dom, ts->nctx);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder ret = sss_names_init(ts, tc->confdb, TEST_DOM_NAME, &dom->names);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder ret = sss_ncache_prepopulate(ncache, tc->confdb, ts->rctx);
28ca54b0d63d1d26a991711c8c7e85c474994715Christian Maeder ret = sss_ncache_check_user(ncache, dom, "testuser1");
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder ret = sss_ncache_check_group(ncache, dom, "testgroup1");
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer ret = sss_ncache_check_user(ncache, dom, "testuser2");
966a6c024c828387023fccb0cd0049f78687e5dcThiemo Wiedemeyer ret = sss_ncache_check_group(ncache, dom, "testgroup2");
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross ret = sss_ncache_check_user(ncache, dom, "testuser3");
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross ret = sss_ncache_check_group(ncache, dom, "testgroup3");
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross ret = sss_ncache_check_user(ncache, dom, "testuser3@somedomain");
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross ret = sss_ncache_check_group(ncache, dom, "testgroup3@somedomain");
9a9860760c6f30558e5e60049692b6fc63904590Markus Grossstatic void test_sss_ncache_default_domain_suffix(void **state)
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder { "filter_users", "testuser1, testuser2@"TEST_DOM_NAME", testuser3@somedomain" },
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder { "filter_groups", "testgroup1, testgroup2@"TEST_DOM_NAME", testgroup3@somedomain" },
521045d36343cd17dd217a81d4b9422ad6ab6a07Christian Maeder ts = talloc_get_type_abort(*state, struct test_state);
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder dom = talloc_zero(ts, struct sss_domain_info);
521045d36343cd17dd217a81d4b9422ad6ab6a07Christian Maeder dom->name = discard_const_p(char, TEST_DOM_NAME);
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder tc = create_dom_test_ctx(ts, TESTS_PATH, TEST_CONF_DB,
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder ts->rctx = mock_rctx(ts, ev, dom, ts->nctx);
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder ts->rctx->default_domain = discard_const(TEST_DOM_NAME);
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder ret = sss_names_init(ts, tc->confdb, TEST_DOM_NAME, &dom->names);
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder ret = sss_ncache_prepopulate(ncache, tc->confdb, ts->rctx);
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder ret = sss_ncache_check_user(ncache, dom, "testuser1");
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder ret = sss_ncache_check_group(ncache, dom, "testgroup1");
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_check_user(ncache, dom, "testuser2");
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_group(ncache, dom, "testgroup2");
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_user(ncache, dom, "testuser3");
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_group(ncache, dom, "testgroup3");
0dba5bbaaef2f620f3b83a16ab6b229c3dd50c98Christian Maederstatic void test_sss_ncache_reset_prepopulate(void **state)
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer { "filter_users", "testuser1@"TEST_DOM_NAME", testuser2@"TEST_DOM_NAME"2" },
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer { "filter_groups", "testgroup1@"TEST_DOM_NAME", testgroup2@"TEST_DOM_NAME"2" },
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer const char *nss_filter_users[] = { params[0].value, NULL};
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer const char *nss_filter_groups[] = { params[1].value, NULL};
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer ts = talloc_get_type_abort(*state, struct test_state);
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer dom = talloc_zero(ts, struct sss_domain_info);
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer dom->name = discard_const_p(char, TEST_DOM_NAME);
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer tc = create_dom_test_ctx(ts, TESTS_PATH, TEST_CONF_DB,
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer ret = confdb_add_param(tc->confdb, true, "config/nss",
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer ret = confdb_add_param(tc->confdb, true, "config/nss",
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer ts->rctx = mock_rctx(ts, ev, dom, ts->nctx);
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer ts->rctx->default_domain = discard_const(TEST_DOM_NAME);
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer ret = sss_names_init(ts, tc->confdb, TEST_DOM_NAME, &dom->names);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer ret = sss_ncache_reset_repopulate_permanent(ts->rctx, ncache);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu /* Add another domain */
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder dom2 = talloc_zero(ts, struct sss_domain_info);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer dom2->name = discard_const_p(char, TEST_DOM_NAME"2");
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer /* First domain should not be known, the second not */
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_user(ncache, dom, "testuser1");
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_check_group(ncache, dom, "testgroup1");
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer ret = sss_ncache_check_user(ncache, dom2, "testuser2");
84ba39232a012abf2085c8a421ebce6abc52d56eThiemo Wiedemeyer ret = sss_ncache_check_group(ncache, dom2, "testgroup2");
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer ret = sss_ncache_reset_repopulate_permanent(ts->rctx, ncache);
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder /* First domain should not be known, the second not */
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_user(ncache, dom, "testuser1");
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer ret = sss_ncache_check_group(ncache, dom, "testgroup1");
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_user(ncache, dom2, "testuser2");
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_check_group(ncache, dom2, "testgroup2");
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_uid, setup, teardown),
84ba39232a012abf2085c8a421ebce6abc52d56eThiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_gid, setup, teardown),
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_sid, setup, teardown),
84ba39232a012abf2085c8a421ebce6abc52d56eThiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_cert, setup, teardown),
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_user, setup, teardown),
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_group, setup, teardown),
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_netgr, setup, teardown),
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_service_name, setup,
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_service_port,
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_reset_permanent, setup,
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_prepopulate,
84ba39232a012abf2085c8a421ebce6abc52d56eThiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_default_domain_suffix,
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_reset_prepopulate,
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME);
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder rv = cmocka_run_group_tests(tests, NULL, NULL);