test_negcache.c revision 0393f0d44ac92035de29a8bc8b2005db6d90b640
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer/*
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer SSSD
6b26240dca29e026900a83d51c75ca230a072a16Thiemo Wiedemeyer
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer NSS Responder
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer Authors:
2eeec5240b424984e3ee26296da1eeab6c6d739eChristian Maeder Pallavi Jha <pallavikumarijha@gmail.com>
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer Copyright (C) 2013 Red Hat
7520452bb30b5abbd471f82352fc4c1c937e02c5Till Mossakowski
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
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/>.
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer*/
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer#include <stdarg.h>
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer#include <stdlib.h>
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer#include <stddef.h>
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer#include <setjmp.h>
38122cbf09ad3dcc31a826cc4093f630515a5cfcChristian Maeder#include <errno.h>
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maeder#include <unistd.h>
521045d36343cd17dd217a81d4b9422ad6ab6a07Christian Maeder#include <sys/types.h>
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross#include <inttypes.h>
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer#include <cmocka.h>
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer#include "tests/cmocka/common_mock.h"
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer#include "tests/cmocka/common_mock_resp.h"
8836fa284a241af325aa6f41234b5130b26ec4f9Thiemo Wiedemeyer#include "responder/nss/nsssrv.h"
8836fa284a241af325aa6f41234b5130b26ec4f9Thiemo Wiedemeyer#include "responder/nss/nsssrv_private.h"
331603b37dec12e37e2e1df9634ef0f2c5c73ddfThiemo Wiedemeyer#include "sss_client/idmap/sss_nss_idmap.h"
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer#include "util/util_sss_idmap.h"
1a389234e68da7c3d087b038307ed8c66fc6dc32Thiemo Wiedemeyer#include "lib/idmap/sss_idmap.h"
38122cbf09ad3dcc31a826cc4093f630515a5cfcChristian Maeder#include "util/util.h"
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer#include "util/util_sss_idmap.h"
02a84229da51532505a93fc2abfca1ccf81b4446Razvan Pascanu#include "responder/common/responder.h"
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer#include "responder/common/negcache.h"
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer#define PORT 21
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer#define SID "S-1-2-3-4-5"
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="
1842453990fed8a1bd7a5ac792d7982c1d2bfcd5Christian Maeder#define PROTO "TCP"
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer#define SHORTSPAN 1
b6a59f004903ac7bc96323ee3ef09c01fd221157Christian Maeder#define NAME "foo_name"
8a1077f446e5a0e127e0805e2c1efe6bf5eeb0d8Christian Maeder#define TESTS_PATH "tp_" BASE_FILE_STEM
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer#define TEST_CONF_DB "test_nss_conf.ldb"
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer#define TEST_DOM_NAME "nss_test"
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer#define TEST_ID_PROVIDER "ldap"
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer
36f69d35e01d2d6b6bdc165b49661f2a80af8687Mihai Codescu/* register_cli_protocol_version is required in test since it links with
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer * responder_common.c module
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer */
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyerstruct cli_protocol_version *register_cli_protocol_version(void)
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer{
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer static struct cli_protocol_version responder_test_cli_protocol_version[] = {
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer {0, NULL, NULL}
4e9e95ba35a68f3c767bc0b23ebf9e904e442517Christian Maeder };
4e9e95ba35a68f3c767bc0b23ebf9e904e442517Christian Maeder
4e9e95ba35a68f3c767bc0b23ebf9e904e442517Christian Maeder return responder_test_cli_protocol_version;
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer}
79d103748927615310322af6f7806c7cef11a802Christian Maeder
ecd98975b8a8ab5a7bc075562bdab51cf47d2a90Christian Maeder/* Mock NSS structure */
f9e0b18852b238ddb649d341194e05d7200d1bbeChristian Maederstatic struct nss_ctx *
697e63e30aa3c309a1ef1f9357745111f8dfc5a9Christian Maedermock_nctx(TALLOC_CTX *mem_ctx)
1e3aca4178372af672efb237d16087c603fe5564Christian Maeder{
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer struct nss_ctx *nctx;
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder errno_t ret;
f456529a89bfb620d39e5fd5b0a53b24643db96dDominik Luecke enum idmap_error_code err;
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer
4c8d3c5a9e938633f6147b5a595b9b93bfca99e6Christian Maeder nctx = talloc_zero(mem_ctx, struct nss_ctx);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer if (!nctx) {
c745add71930134bc085a544783213179bd3e734Thiemo Wiedemeyer return NULL;
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer }
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer
93eeaffa1087fc6eae3f19b8ca5affb7802799fdThiemo Wiedemeyer ret = sss_ncache_init(nctx, SHORTSPAN, &nctx->ncache);
02a84229da51532505a93fc2abfca1ccf81b4446Razvan Pascanu if (ret != EOK) {
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder talloc_free(nctx);
2028dc2c091bb60343e15985948a59b955276cbfChristian Maeder return NULL;
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer }
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer nctx->neg_timeout = 10;
16e45483b5ce48f0b92d01c817242a8c9b8bae02Christian Maeder nctx->pwfield = discard_const("*");
40b73e7d13a858afeac95321fcdb9ac216bfbf01Thiemo Wiedemeyer
ddc662fdf0207eae2034d7b68ae5e2225c575207Thiemo Wiedemeyer err = sss_idmap_init(sss_idmap_talloc, nctx, sss_idmap_talloc_free,
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer &nctx->idmap_ctx);
28ca54b0d63d1d26a991711c8c7e85c474994715Christian Maeder if (err != IDMAP_SUCCESS) {
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu DEBUG(SSSDBG_FATAL_FAILURE, ("sss_idmap_init failed.\n"));
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu talloc_free(nctx);
02a84229da51532505a93fc2abfca1ccf81b4446Razvan Pascanu return NULL;
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu }
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer return nctx;
331603b37dec12e37e2e1df9634ef0f2c5c73ddfThiemo Wiedemeyer}
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyerstruct test_state {
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer struct sss_nc_ctx *ctx;
331603b37dec12e37e2e1df9634ef0f2c5c73ddfThiemo Wiedemeyer struct nss_ctx *nctx;
331603b37dec12e37e2e1df9634ef0f2c5c73ddfThiemo Wiedemeyer struct resp_ctx *rctx;
331603b37dec12e37e2e1df9634ef0f2c5c73ddfThiemo Wiedemeyer};
331603b37dec12e37e2e1df9634ef0f2c5c73ddfThiemo Wiedemeyer
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyerstatic int setup(void **state)
03bbcb1fefdbd8bc4e8329ca2688809d84aff0a9Christian Maeder{
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer int ret;
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder struct test_state *ts;
331603b37dec12e37e2e1df9634ef0f2c5c73ddfThiemo Wiedemeyer
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ts = talloc(NULL, struct test_state);
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer assert_non_null(ts);
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_init(ts, SHORTSPAN, &ts->ctx);
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer assert_int_equal(ret, EOK);
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer assert_non_null(ts->ctx);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer *state = (void *)ts;
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer return 0;
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer}
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyerstatic int teardown(void **state)
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer{
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer struct test_state *ts = talloc_get_type_abort(*state, struct test_state);
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer talloc_free(ts);
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer return 0;
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer}
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer
0b8b26a22f136a9b2a8e99d655f6fe6b0b96008cThiemo Wiedemeyerstatic void test_sss_ncache_init(void **state)
0b8b26a22f136a9b2a8e99d655f6fe6b0b96008cThiemo Wiedemeyer{
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer int ret;
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer TALLOC_CTX *memctx;
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer struct sss_nc_ctx *ctx;
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer memctx = talloc_new(NULL);
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer assert_non_null(memctx);
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer ret = sss_ncache_init(memctx, SHORTSPAN, &ctx );
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer assert_int_equal(ret, EOK);
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer assert_non_null(ctx);
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer talloc_free(memctx);
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer}
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer/* @test_sss_ncache_uid : test following functions
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer * sss_ncache_set_uid
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer * sss_ncache_check_uid
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer */
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyerstatic void test_sss_ncache_uid(void **state)
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer{
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer uid_t uid;
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer int ret;
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer bool permanent;
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer struct test_state *ts;
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer uid = getuid();
0b8b26a22f136a9b2a8e99d655f6fe6b0b96008cThiemo Wiedemeyer
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ts = talloc_get_type_abort(*state, struct test_state);
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer /* test when uid not present in database */
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer ret = sss_ncache_check_uid(ts->ctx, NULL, uid);
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer assert_int_equal(ret, ENOENT);
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer
ea76e25262c3325f293fbdd6560f180ca18f9be4Thiemo Wiedemeyer /* test when uid is present in database */
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer permanent = true;
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer ret = sss_ncache_reset_permanent(ts->ctx);
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer assert_int_equal(ret, EOK);
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer ret = sss_ncache_set_uid(ts->ctx, permanent, NULL, uid);
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer assert_int_equal(ret, EOK);
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer ret = sss_ncache_check_uid(ts->ctx, NULL, uid);
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer assert_int_equal(ret, EEXIST);
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer ret = sss_ncache_set_uid(ts->ctx, permanent, NULL, uid);
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer assert_int_equal(ret, EOK);
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_check_uid(ts->ctx, NULL, uid);
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer assert_int_equal(ret, EEXIST);
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer sleep(SHORTSPAN + 1);
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer ret = sss_ncache_check_uid(ts->ctx, NULL, uid);
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer assert_int_equal(ret, EEXIST);
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer permanent = false;
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer ret = sss_ncache_set_uid(ts->ctx, permanent, NULL, uid);
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer assert_int_equal(ret, EOK);
92e96be605537638d75e9d3023ab698bd89cf889Thiemo Wiedemeyer
92e96be605537638d75e9d3023ab698bd89cf889Thiemo Wiedemeyer ret = sss_ncache_check_uid(ts->ctx, NULL, uid);
92e96be605537638d75e9d3023ab698bd89cf889Thiemo Wiedemeyer assert_int_equal(ret, EEXIST);
92e96be605537638d75e9d3023ab698bd89cf889Thiemo Wiedemeyer
92e96be605537638d75e9d3023ab698bd89cf889Thiemo Wiedemeyer sleep(SHORTSPAN + 1);
92e96be605537638d75e9d3023ab698bd89cf889Thiemo Wiedemeyer
92e96be605537638d75e9d3023ab698bd89cf889Thiemo Wiedemeyer ret = sss_ncache_check_uid(ts->ctx, NULL, uid);
92e96be605537638d75e9d3023ab698bd89cf889Thiemo Wiedemeyer assert_int_equal(ret, ENOENT);
92e96be605537638d75e9d3023ab698bd89cf889Thiemo Wiedemeyer
92e96be605537638d75e9d3023ab698bd89cf889Thiemo Wiedemeyer ret = sss_ncache_set_uid(ts->ctx, permanent, NULL, uid);
92e96be605537638d75e9d3023ab698bd89cf889Thiemo Wiedemeyer assert_int_equal(ret, EOK);
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer}
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer/* @test_sss_ncache_gid : test following functions
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer * sss_ncache_set_gid
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer * sss_ncache_check_gid
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer */
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyerstatic void test_sss_ncache_gid(void **state)
aa21e7aa42fef563dea0cc77edbde76f66cdbe88Thiemo Wiedemeyer{
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer gid_t gid;
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer int ret;
d9f20cf968e246ec283f0c09f60af4b47b174398Thiemo Wiedemeyer bool permanent;
d9f20cf968e246ec283f0c09f60af4b47b174398Thiemo Wiedemeyer struct test_state *ts;
d9f20cf968e246ec283f0c09f60af4b47b174398Thiemo Wiedemeyer
d9f20cf968e246ec283f0c09f60af4b47b174398Thiemo Wiedemeyer gid = getgid();
d9f20cf968e246ec283f0c09f60af4b47b174398Thiemo Wiedemeyer ts = talloc_get_type_abort(*state, struct test_state);
d9f20cf968e246ec283f0c09f60af4b47b174398Thiemo Wiedemeyer
d9f20cf968e246ec283f0c09f60af4b47b174398Thiemo Wiedemeyer /* test when gid is not present in database */
d9f20cf968e246ec283f0c09f60af4b47b174398Thiemo Wiedemeyer ret = sss_ncache_check_gid(ts->ctx, NULL, gid);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer assert_int_equal(ret, ENOENT);
84ba39232a012abf2085c8a421ebce6abc52d56eThiemo Wiedemeyer
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer /* test when gid is present in database */
d71a37fb09bce02af6c98e7a5ab0aa5639058e4fThiemo Wiedemeyer permanent = true;
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_set_gid(ts->ctx, permanent, NULL, gid);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer assert_int_equal(ret, EOK);
3e3efd4ce838940032e875e6d08712a177c9c1d0Thiemo Wiedemeyer
3e3efd4ce838940032e875e6d08712a177c9c1d0Thiemo Wiedemeyer ret = sss_ncache_check_gid(ts->ctx, NULL, gid);
3e3efd4ce838940032e875e6d08712a177c9c1d0Thiemo Wiedemeyer assert_int_equal(ret, EEXIST);
3e3efd4ce838940032e875e6d08712a177c9c1d0Thiemo Wiedemeyer
3e3efd4ce838940032e875e6d08712a177c9c1d0Thiemo Wiedemeyer permanent = false;
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_set_gid(ts->ctx, permanent, NULL, gid);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer assert_int_equal(ret, EOK);
370e81d7af7821f0ac6ee0643613e87a727841e7Thiemo Wiedemeyer
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder ret = sss_ncache_check_gid(ts->ctx, NULL, gid);
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder assert_int_equal(ret, EEXIST);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer}
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer/* @test_sss_ncache_sid : test following functions
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer * sss_ncache_set_sid
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder * sss_ncache_check_sid
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer */
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyerstatic void test_sss_ncache_sid(void **state)
370e81d7af7821f0ac6ee0643613e87a727841e7Thiemo Wiedemeyer{
370e81d7af7821f0ac6ee0643613e87a727841e7Thiemo Wiedemeyer int ret;
84ba39232a012abf2085c8a421ebce6abc52d56eThiemo Wiedemeyer bool permanent;
370e81d7af7821f0ac6ee0643613e87a727841e7Thiemo Wiedemeyer const char *sid = NULL;
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer struct test_state *ts;
370e81d7af7821f0ac6ee0643613e87a727841e7Thiemo Wiedemeyer
370e81d7af7821f0ac6ee0643613e87a727841e7Thiemo Wiedemeyer sid = SID;
370e81d7af7821f0ac6ee0643613e87a727841e7Thiemo Wiedemeyer ts = talloc_get_type_abort(*state, struct test_state);
370e81d7af7821f0ac6ee0643613e87a727841e7Thiemo Wiedemeyer
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer /*test when sid in not present in database */
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_check_sid(ts->ctx, sid);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer assert_int_equal(ret, ENOENT);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer /* test when sid is present in database */
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder permanent = true;
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_set_sid(ts->ctx, permanent, sid);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer assert_int_equal(ret, EOK);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_check_sid(ts->ctx, sid);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer assert_int_equal(ret, EEXIST);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer permanent = false;
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_set_sid(ts->ctx, permanent, sid);
84ba39232a012abf2085c8a421ebce6abc52d56eThiemo Wiedemeyer assert_int_equal(ret, EOK);
370e81d7af7821f0ac6ee0643613e87a727841e7Thiemo Wiedemeyer
84ba39232a012abf2085c8a421ebce6abc52d56eThiemo Wiedemeyer ret = sss_ncache_check_sid(ts->ctx, sid);
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder assert_int_equal(ret, EEXIST);
370e81d7af7821f0ac6ee0643613e87a727841e7Thiemo Wiedemeyer}
84ba39232a012abf2085c8a421ebce6abc52d56eThiemo Wiedemeyer
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer/* @test_sss_ncache_cert : test following functions
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer * sss_ncache_set_cert
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer * sss_ncache_check_cert_
370e81d7af7821f0ac6ee0643613e87a727841e7Thiemo Wiedemeyer */
545d0cd78159cade346b579d06052638b19b0f72Thiemo Wiedemeyerstatic void test_sss_ncache_cert(void **state)
1a389234e68da7c3d087b038307ed8c66fc6dc32Thiemo Wiedemeyer{
1a389234e68da7c3d087b038307ed8c66fc6dc32Thiemo Wiedemeyer int ret;
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer bool permanent;
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer const char *cert = NULL;
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu struct test_state *ts;
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu cert = CERT;
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ts = talloc_get_type_abort(*state, struct test_state);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer /*test when cert in not present in database */
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_check_cert(ts->ctx, cert);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu assert_int_equal(ret, ENOENT);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu /* test when cert is present in database */
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer permanent = true;
1a389234e68da7c3d087b038307ed8c66fc6dc32Thiemo Wiedemeyer ret = sss_ncache_set_cert(ts->ctx, permanent, cert);
1a389234e68da7c3d087b038307ed8c66fc6dc32Thiemo Wiedemeyer assert_int_equal(ret, EOK);
8836fa284a241af325aa6f41234b5130b26ec4f9Thiemo Wiedemeyer
8836fa284a241af325aa6f41234b5130b26ec4f9Thiemo Wiedemeyer ret = sss_ncache_check_cert(ts->ctx, cert);
8836fa284a241af325aa6f41234b5130b26ec4f9Thiemo Wiedemeyer assert_int_equal(ret, EEXIST);
8836fa284a241af325aa6f41234b5130b26ec4f9Thiemo Wiedemeyer
8836fa284a241af325aa6f41234b5130b26ec4f9Thiemo Wiedemeyer permanent = false;
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_set_cert(ts->ctx, permanent, cert);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer assert_int_equal(ret, EOK);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer ret = sss_ncache_check_cert(ts->ctx, cert);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu assert_int_equal(ret, EEXIST);
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder}
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder/* @test_sss_ncache_user : test following functions
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu * sss_ncache_check_user
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer * sss_ncache_set_user
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer */
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyerstatic void test_sss_ncache_user(void **state)
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer{
109b67ffce2bad83667e2f4a319d2d7f380f91afThiemo Wiedemeyer int ret;
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer bool permanent;
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer const char *name = NAME;
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer struct test_state *ts;
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu struct sss_domain_info *dom;
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ts = talloc_get_type_abort(*state, struct test_state);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu dom = talloc(ts, struct sss_domain_info);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer dom->name = discard_const_p(char, TEST_DOM_NAME);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer /* test when domain name is not present in database */
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer dom->case_sensitive = false;
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_check_user(ts->ctx, dom, name);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer assert_int_equal(ret, ENOENT);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer dom->case_sensitive = true;
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer ret = sss_ncache_check_user(ts->ctx, dom, name);
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer assert_int_equal(ret, ENOENT);
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer /* test when domain name is present in database */
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer permanent = true;
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer ret = sss_ncache_set_user(ts->ctx, permanent, dom, name);
5107ba7da675778f2fded68493512b60eff8a455Christian Maeder assert_int_equal(ret, EOK);
966a6c024c828387023fccb0cd0049f78687e5dcThiemo Wiedemeyer
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_user(ts->ctx, dom, name);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu assert_int_equal(ret, EEXIST);
5107ba7da675778f2fded68493512b60eff8a455Christian Maeder
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu permanent = false;
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_set_user(ts->ctx, permanent, dom, name);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu assert_int_equal(ret, EOK);
966a6c024c828387023fccb0cd0049f78687e5dcThiemo Wiedemeyer
0dba5bbaaef2f620f3b83a16ab6b229c3dd50c98Christian Maeder ret = sss_ncache_check_user(ts->ctx, dom, name);
0dba5bbaaef2f620f3b83a16ab6b229c3dd50c98Christian Maeder assert_int_equal(ret, EEXIST);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer}
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer/* @test_sss_ncache_group : test following functions
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer * sss_ncache_check_group
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer * sss_ncache_set_group
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer */
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maederstatic void test_sss_ncache_group(void **state)
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer{
28ca54b0d63d1d26a991711c8c7e85c474994715Christian Maeder int ret;
1e3aca4178372af672efb237d16087c603fe5564Christian Maeder bool permanent;
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer const char *name = NAME;
370e81d7af7821f0ac6ee0643613e87a727841e7Thiemo Wiedemeyer struct test_state *ts;
ddc662fdf0207eae2034d7b68ae5e2225c575207Thiemo Wiedemeyer struct sss_domain_info *dom;
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer
28ca54b0d63d1d26a991711c8c7e85c474994715Christian Maeder ts = talloc_get_type_abort(*state, struct test_state);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu dom = talloc(ts, struct sss_domain_info);
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder dom->name = discard_const_p(char, TEST_DOM_NAME);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu /* test when domain name is not present in database */
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu dom->case_sensitive = false;
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_group(ts->ctx, dom, name);
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer assert_int_equal(ret, ENOENT);
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer dom->case_sensitive = true;
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_check_group(ts->ctx, dom, name);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer assert_int_equal(ret, ENOENT);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder /* test when domain name is present in database */
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer permanent = true;
966a6c024c828387023fccb0cd0049f78687e5dcThiemo Wiedemeyer ret = sss_ncache_set_group(ts->ctx, permanent, dom, name);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu assert_int_equal(ret, EOK);
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maeder
1e3aca4178372af672efb237d16087c603fe5564Christian Maeder ret = sss_ncache_check_group(ts->ctx, dom, name);
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer assert_int_equal(ret, EEXIST);
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer
966a6c024c828387023fccb0cd0049f78687e5dcThiemo Wiedemeyer permanent = false;
966a6c024c828387023fccb0cd0049f78687e5dcThiemo Wiedemeyer ret = sss_ncache_set_group(ts->ctx, permanent, dom, name);
79d103748927615310322af6f7806c7cef11a802Christian Maeder assert_int_equal(ret, EOK);
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer ret = sss_ncache_check_group(ts->ctx, dom, name);
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder assert_int_equal(ret, EEXIST);
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maeder}
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu
28ca54b0d63d1d26a991711c8c7e85c474994715Christian Maeder/* @test_sss_ncache_netgr : test following functions
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maeder * sss_ncache_check_netgr
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maeder * sss_ncache_set_netgr
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maeder */
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maederstatic void test_sss_ncache_netgr(void **state)
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu{
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer int ret;
966a6c024c828387023fccb0cd0049f78687e5dcThiemo Wiedemeyer bool permanent;
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer const char *name = NAME;
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder struct test_state *ts;
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer struct sss_domain_info *dom;
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer ts = talloc_get_type_abort(*state, struct test_state);
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer dom = talloc(ts, struct sss_domain_info);
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer dom->name = discard_const_p(char, TEST_DOM_NAME);
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder /* test when domain name is not present in database */
c40b7badd217089d8a256dabdf8f7d4e219ca215Thiemo Wiedemeyer dom->case_sensitive = false;
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_check_netgr(ts->ctx, dom, name);
38122cbf09ad3dcc31a826cc4093f630515a5cfcChristian Maeder assert_int_equal(ret, ENOENT);
38122cbf09ad3dcc31a826cc4093f630515a5cfcChristian Maeder
38122cbf09ad3dcc31a826cc4093f630515a5cfcChristian Maeder dom->case_sensitive = true;
38122cbf09ad3dcc31a826cc4093f630515a5cfcChristian Maeder ret = sss_ncache_check_netgr(ts->ctx, dom, name);
38122cbf09ad3dcc31a826cc4093f630515a5cfcChristian Maeder assert_int_equal(ret, ENOENT);
521045d36343cd17dd217a81d4b9422ad6ab6a07Christian Maeder
521045d36343cd17dd217a81d4b9422ad6ab6a07Christian Maeder /* test when domain name is present in database */
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer permanent = true;
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder ret = sss_ncache_set_netgr(ts->ctx, permanent, dom, name);
1e3aca4178372af672efb237d16087c603fe5564Christian Maeder assert_int_equal(ret, EOK);
836aa06d367f900bee9aa762250471bcd00b5a9dChristian Maeder
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer ret = sss_ncache_check_netgr(ts->ctx, dom, name);
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer assert_int_equal(ret, EEXIST);
66b035879accdc5f8337726173f800286a87fd78Christian Maeder
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder permanent = false;
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder ret = sss_ncache_set_netgr(ts->ctx, permanent, dom, name);
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder assert_int_equal(ret, EOK);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maeder ret = sss_ncache_check_netgr(ts->ctx, dom, name);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer assert_int_equal(ret, EEXIST);
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maeder}
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder/* @test_sss_ncache_service_name : test following functions
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu * sss_ncache_check_service
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu * sss_ncache_set_service_name
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maeder */
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maederstatic void test_sss_ncache_service_name(void **state)
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maeder{
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maeder int ret;
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maeder bool permanent;
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer const char *name = NAME;
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer struct test_state *ts;
83263d411f611d9902ef4d98c93be6ad9361c833Christian Maeder struct sss_domain_info *dom;
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer ts = talloc_get_type_abort(*state, struct test_state);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer dom = talloc(ts, struct sss_domain_info);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu dom->name = discard_const_p(char, TEST_DOM_NAME);
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu /* test when domain name and protocol are not present in database */
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu dom->case_sensitive = false;
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_service(ts->ctx, dom, name, PROTO);
1e3aca4178372af672efb237d16087c603fe5564Christian Maeder assert_int_equal(ret, ENOENT);
6c08e47c4275556c18f4f89521bf21fe94c28dd5Christian Maeder
6c08e47c4275556c18f4f89521bf21fe94c28dd5Christian Maeder dom->case_sensitive = true;
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_check_service(ts->ctx, dom, name, PROTO);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer assert_int_equal(ret, ENOENT);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer
66b035879accdc5f8337726173f800286a87fd78Christian Maeder /* test when domain name and protocol are present in database */
66b035879accdc5f8337726173f800286a87fd78Christian Maeder permanent = true;
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer ret = sss_ncache_set_service_name(ts->ctx, permanent, dom, name, PROTO);
66b035879accdc5f8337726173f800286a87fd78Christian Maeder assert_int_equal(ret, EOK);
66b035879accdc5f8337726173f800286a87fd78Christian Maeder
66b035879accdc5f8337726173f800286a87fd78Christian Maeder ret = sss_ncache_check_service(ts->ctx, dom, name, PROTO);
66b035879accdc5f8337726173f800286a87fd78Christian Maeder assert_int_equal(ret, EEXIST);
66b035879accdc5f8337726173f800286a87fd78Christian Maeder
66b035879accdc5f8337726173f800286a87fd78Christian Maeder permanent = false;
66b035879accdc5f8337726173f800286a87fd78Christian Maeder ret = sss_ncache_set_service_name(ts->ctx, permanent, dom, name, PROTO);
66b035879accdc5f8337726173f800286a87fd78Christian Maeder assert_int_equal(ret, EOK);
66b035879accdc5f8337726173f800286a87fd78Christian Maeder
66b035879accdc5f8337726173f800286a87fd78Christian Maeder ret = sss_ncache_check_service(ts->ctx, dom, name, PROTO);
66b035879accdc5f8337726173f800286a87fd78Christian Maeder assert_int_equal(ret, EEXIST);
66b035879accdc5f8337726173f800286a87fd78Christian Maeder}
9b01b265715d725c17d51619d297bbb97f37d1b5Thiemo Wiedemeyer
03bbcb1fefdbd8bc4e8329ca2688809d84aff0a9Christian Maeder/* @test_sss_ncache_service_port : test following functions
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer * sss_ncache_check_service_port
12368e292c1abf7eaf975f20ee30ef7820ac5dd5Christian Maeder * sss_ncache_set_service_port
12368e292c1abf7eaf975f20ee30ef7820ac5dd5Christian Maeder */
66b035879accdc5f8337726173f800286a87fd78Christian Maederstatic void test_sss_ncache_service_port(void **state)
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer{
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer int ret;
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer bool permanent;
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer struct test_state *ts;
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer struct sss_domain_info *dom;
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ts = talloc_get_type_abort(*state, struct test_state);
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer dom = talloc(ts, struct sss_domain_info);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer dom->name = discard_const_p(char, TEST_DOM_NAME);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer /* test when domain name, port and protocol are not present in database */
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer dom->case_sensitive = false;
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_check_service_port(ts->ctx, dom, (uint16_t)PORT,
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer PROTO);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer assert_int_equal(ret, ENOENT);
c41a1c38edbd787d8fd12b9b5f11b73a37dafe0fChristian Maeder
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer dom->case_sensitive = true;
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_check_service_port(ts->ctx, dom, (uint16_t)PORT,
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer PROTO);
c41a1c38edbd787d8fd12b9b5f11b73a37dafe0fChristian Maeder assert_int_equal(ret, ENOENT);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer /* test when domain name, port and protocol are present in database */
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer permanent = true;
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_set_service_port(ts->ctx, permanent, dom, (uint16_t)PORT,
c41a1c38edbd787d8fd12b9b5f11b73a37dafe0fChristian Maeder PROTO);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer assert_int_equal(ret, EOK);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer ret = sss_ncache_check_service_port(ts->ctx, dom, (uint16_t)PORT,
1e3aca4178372af672efb237d16087c603fe5564Christian Maeder PROTO);
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder assert_int_equal(ret, EEXIST);
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder permanent = false;
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder ret = sss_ncache_set_service_port(ts->ctx, permanent, dom, (uint16_t)PORT,
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder PROTO);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu assert_int_equal(ret, EOK);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer ret = sss_ncache_check_service_port(ts->ctx, dom, (uint16_t)PORT,
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu PROTO);
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder assert_int_equal(ret, EEXIST);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer}
dda4e358a429dc24dd09d42b409d709a19eff159Christian Maeder
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanustatic void test_sss_ncache_reset_permanent(void **state)
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder{
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer int ret;
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder struct test_state *ts;
e1c24b1dbf5cb1c9bb22b14a40167a4ba7806501Christian Maeder const bool permanent = true;
e1c24b1dbf5cb1c9bb22b14a40167a4ba7806501Christian Maeder
1e3aca4178372af672efb237d16087c603fe5564Christian Maeder ts = talloc_get_type_abort(*state, struct test_state);
63324a97283728a30932828a612c7b0b0f687624Christian Maeder
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder ret = sss_ncache_set_uid(ts->ctx, permanent, NULL, 0);
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder assert_int_equal(ret, EOK);
1e3aca4178372af672efb237d16087c603fe5564Christian Maeder
40b73e7d13a858afeac95321fcdb9ac216bfbf01Thiemo Wiedemeyer ret = sss_ncache_check_uid(ts->ctx, NULL, 0);
1e3aca4178372af672efb237d16087c603fe5564Christian Maeder assert_int_equal(ret, EEXIST);
16e45483b5ce48f0b92d01c817242a8c9b8bae02Christian Maeder
e1c24b1dbf5cb1c9bb22b14a40167a4ba7806501Christian Maeder ret = sss_ncache_reset_permanent(ts->ctx);
16e45483b5ce48f0b92d01c817242a8c9b8bae02Christian Maeder assert_int_equal(ret, EOK);
9b01b265715d725c17d51619d297bbb97f37d1b5Thiemo Wiedemeyer
e1c24b1dbf5cb1c9bb22b14a40167a4ba7806501Christian Maeder ret = sss_ncache_check_uid(ts->ctx, NULL, 0);
e1c24b1dbf5cb1c9bb22b14a40167a4ba7806501Christian Maeder assert_int_equal(ret, ENOENT);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer}
8244e8866cad2be73b7e2b76a6659535f0f728ccChristian Maeder
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maederstatic void test_sss_ncache_prepopulate(void **state)
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder{
28ca54b0d63d1d26a991711c8c7e85c474994715Christian Maeder int ret;
28ca54b0d63d1d26a991711c8c7e85c474994715Christian Maeder struct test_state *ts;
28ca54b0d63d1d26a991711c8c7e85c474994715Christian Maeder struct tevent_context *ev;
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder struct sss_nc_ctx *ncache;
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder struct sss_test_ctx *tc;
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder struct sss_domain_info *dom;
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder struct sss_test_conf_param params[] = {
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder { "filter_users", "testuser1, testuser2@"TEST_DOM_NAME", testuser3@somedomain" },
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder { "filter_groups", "testgroup1, testgroup2@"TEST_DOM_NAME", testgroup3@somedomain" },
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder { NULL, NULL },
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder };
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder ts = talloc_get_type_abort(*state, struct test_state);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder ev = tevent_context_init(ts);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder assert_non_null(ev);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder dom = talloc_zero(ts, struct sss_domain_info);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder assert_non_null(dom);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder dom->name = discard_const_p(char, TEST_DOM_NAME);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder ts->nctx = mock_nctx(ts);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder assert_non_null(ts->nctx);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder tc = create_dom_test_ctx(ts, TESTS_PATH, TEST_CONF_DB,
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder TEST_DOM_NAME, TEST_ID_PROVIDER, params);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder assert_non_null(tc);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder ncache = ts->ctx;
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder ts->rctx = mock_rctx(ts, ev, dom, ts->nctx);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder assert_non_null(ts->rctx);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder ret = sss_names_init(ts, tc->confdb, TEST_DOM_NAME, &dom->names);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder assert_int_equal(ret, EOK);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder ret = sss_ncache_prepopulate(ncache, tc->confdb, ts->rctx);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder assert_int_equal(ret, EOK);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder sleep(SHORTSPAN);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder
28ca54b0d63d1d26a991711c8c7e85c474994715Christian Maeder ret = sss_ncache_check_user(ncache, dom, "testuser1");
28ca54b0d63d1d26a991711c8c7e85c474994715Christian Maeder assert_int_equal(ret, EEXIST);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder ret = sss_ncache_check_group(ncache, dom, "testgroup1");
95cb954c00f873306bf1a60b62d3209d3cff4102Christian Maeder assert_int_equal(ret, EEXIST);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer ret = sss_ncache_check_user(ncache, dom, "testuser2");
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder assert_int_equal(ret, EEXIST);
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder
966a6c024c828387023fccb0cd0049f78687e5dcThiemo Wiedemeyer ret = sss_ncache_check_group(ncache, dom, "testgroup2");
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross assert_int_equal(ret, EEXIST);
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross ret = sss_ncache_check_user(ncache, dom, "testuser3");
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross assert_int_equal(ret, ENOENT);
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross ret = sss_ncache_check_group(ncache, dom, "testgroup3");
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross assert_int_equal(ret, ENOENT);
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross ret = sss_ncache_check_user(ncache, dom, "testuser3@somedomain");
85a6f36073352ad1732560fbfc958c3c80dfeb80Christian Maeder assert_int_equal(ret, ENOENT);
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross ret = sss_ncache_check_group(ncache, dom, "testgroup3@somedomain");
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross assert_int_equal(ret, ENOENT);
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross}
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross
9a9860760c6f30558e5e60049692b6fc63904590Markus Grossstatic void test_sss_ncache_default_domain_suffix(void **state)
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross{
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross int ret;
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross struct test_state *ts;
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross struct tevent_context *ev;
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross struct sss_nc_ctx *ncache;
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer struct sss_test_ctx *tc;
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross struct sss_domain_info *dom;
9a9860760c6f30558e5e60049692b6fc63904590Markus Gross
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder struct sss_test_conf_param params[] = {
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder { "filter_users", "testuser1, testuser2@"TEST_DOM_NAME", testuser3@somedomain" },
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder { "filter_groups", "testgroup1, testgroup2@"TEST_DOM_NAME", testgroup3@somedomain" },
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder { NULL, NULL },
521045d36343cd17dd217a81d4b9422ad6ab6a07Christian Maeder };
521045d36343cd17dd217a81d4b9422ad6ab6a07Christian Maeder
521045d36343cd17dd217a81d4b9422ad6ab6a07Christian Maeder ts = talloc_get_type_abort(*state, struct test_state);
521045d36343cd17dd217a81d4b9422ad6ab6a07Christian Maeder
888fefaddbeb8d75a861b1d689b191b44d1853e1Thiemo Wiedemeyer ev = tevent_context_init(ts);
9b01b265715d725c17d51619d297bbb97f37d1b5Thiemo Wiedemeyer assert_non_null(ev);
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder dom = talloc_zero(ts, struct sss_domain_info);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer assert_non_null(dom);
521045d36343cd17dd217a81d4b9422ad6ab6a07Christian Maeder dom->name = discard_const_p(char, TEST_DOM_NAME);
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder ts->nctx = mock_nctx(ts);
28ca54b0d63d1d26a991711c8c7e85c474994715Christian Maeder assert_non_null(ts->nctx);
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder tc = create_dom_test_ctx(ts, TESTS_PATH, TEST_CONF_DB,
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder TEST_DOM_NAME, TEST_ID_PROVIDER, params);
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder assert_non_null(tc);
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder ncache = ts->ctx;
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder ts->rctx = mock_rctx(ts, ev, dom, ts->nctx);
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder assert_non_null(ts->rctx);
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder ts->rctx->default_domain = discard_const(TEST_DOM_NAME);
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder ret = sss_names_init(ts, tc->confdb, TEST_DOM_NAME, &dom->names);
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder assert_int_equal(ret, EOK);
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder ret = sss_ncache_prepopulate(ncache, tc->confdb, ts->rctx);
28ca54b0d63d1d26a991711c8c7e85c474994715Christian Maeder assert_int_equal(ret, EOK);
28ca54b0d63d1d26a991711c8c7e85c474994715Christian Maeder
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder ret = sss_ncache_check_user(ncache, dom, "testuser1");
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder assert_int_equal(ret, EEXIST);
d7aa4e1cbe00f7f3add4da911673b3b176b140c3Thiemo Wiedemeyer
8618f6dc90d5392c661114468b47c71e4ae4e9beChristian Maeder ret = sss_ncache_check_group(ncache, dom, "testgroup1");
f456529a89bfb620d39e5fd5b0a53b24643db96dDominik Luecke assert_int_equal(ret, EEXIST);
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_check_user(ncache, dom, "testuser2");
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer assert_int_equal(ret, EEXIST);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_group(ncache, dom, "testgroup2");
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder assert_int_equal(ret, EEXIST);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_user(ncache, dom, "testuser3");
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer assert_int_equal(ret, ENOENT);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_group(ncache, dom, "testgroup3");
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu assert_int_equal(ret, ENOENT);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer}
0dba5bbaaef2f620f3b83a16ab6b229c3dd50c98Christian Maeder
0dba5bbaaef2f620f3b83a16ab6b229c3dd50c98Christian Maederstatic void test_sss_ncache_reset_prepopulate(void **state)
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer{
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer int ret;
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer struct test_state *ts;
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer struct tevent_context *ev;
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer struct sss_nc_ctx *ncache;
53e76316f409f6b1b57ed3d2e5cb9cfe1cb511e5Thiemo Wiedemeyer struct sss_test_ctx *tc;
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer struct sss_domain_info *dom;
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer struct sss_domain_info *dom2;
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer struct sss_test_conf_param params[] = {
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 { NULL, NULL },
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer };
1e3aca4178372af672efb237d16087c603fe5564Christian Maeder
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer const char *nss_filter_users[] = { params[0].value, NULL};
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer const char *nss_filter_groups[] = { params[1].value, NULL};
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer ts = talloc_get_type_abort(*state, struct test_state);
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer ev = tevent_context_init(ts);
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer assert_non_null(ev);
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer dom = talloc_zero(ts, struct sss_domain_info);
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer assert_non_null(dom);
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer dom->name = discard_const_p(char, TEST_DOM_NAME);
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer ts->nctx = mock_nctx(ts);
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer assert_non_null(ts->nctx);
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer tc = create_dom_test_ctx(ts, TESTS_PATH, TEST_CONF_DB,
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer TEST_DOM_NAME, TEST_ID_PROVIDER, params);
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer assert_non_null(tc);
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer ret = confdb_add_param(tc->confdb, true, "config/nss",
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer "filter_users", nss_filter_users);
1e3aca4178372af672efb237d16087c603fe5564Christian Maeder assert_int_equal(ret, EOK);
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer ret = confdb_add_param(tc->confdb, true, "config/nss",
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer "filter_groups", nss_filter_groups);
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer assert_int_equal(ret, EOK);
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer ncache = ts->ctx;
b021998bf955c87c7cdcc69f0667dc2880b3ce1fThiemo Wiedemeyer ts->rctx = mock_rctx(ts, ev, dom, ts->nctx);
c7e03d0708369f944b6f235057b39142a21599f2Mihai Codescu assert_non_null(ts->rctx);
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer ts->rctx->default_domain = discard_const(TEST_DOM_NAME);
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer ts->rctx->cdb = tc->confdb;
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer ret = sss_names_init(ts, tc->confdb, TEST_DOM_NAME, &dom->names);
84ba39232a012abf2085c8a421ebce6abc52d56eThiemo Wiedemeyer assert_int_equal(ret, EOK);
84ba39232a012abf2085c8a421ebce6abc52d56eThiemo Wiedemeyer
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer ret = sss_ncache_reset_repopulate_permanent(ts->rctx, ncache);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer assert_int_equal(ret, EOK);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu /* Add another domain */
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder dom2 = talloc_zero(ts, struct sss_domain_info);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu assert_non_null(dom2);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer dom2->name = discard_const_p(char, TEST_DOM_NAME"2");
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer dom->next = dom2;
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer dom2->names = dom->names;
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer
d1066b8fb69179973dcab47154858d77e72760a7Thiemo Wiedemeyer /* First domain should not be known, the second not */
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_user(ncache, dom, "testuser1");
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu assert_int_equal(ret, EEXIST);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_check_group(ncache, dom, "testgroup1");
93eeaffa1087fc6eae3f19b8ca5affb7802799fdThiemo Wiedemeyer assert_int_equal(ret, EEXIST);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer ret = sss_ncache_check_user(ncache, dom2, "testuser2");
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer assert_int_equal(ret, ENOENT);
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer
84ba39232a012abf2085c8a421ebce6abc52d56eThiemo Wiedemeyer ret = sss_ncache_check_group(ncache, dom2, "testgroup2");
84ba39232a012abf2085c8a421ebce6abc52d56eThiemo Wiedemeyer assert_int_equal(ret, ENOENT);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer ret = sss_ncache_reset_repopulate_permanent(ts->rctx, ncache);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer assert_int_equal(ret, EOK);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder /* First domain should not be known, the second not */
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_user(ncache, dom, "testuser1");
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu assert_int_equal(ret, EEXIST);
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer ret = sss_ncache_check_group(ncache, dom, "testgroup1");
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu assert_int_equal(ret, EEXIST);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu ret = sss_ncache_check_user(ncache, dom2, "testuser2");
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer assert_int_equal(ret, EEXIST);
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer ret = sss_ncache_check_group(ncache, dom2, "testgroup2");
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu assert_int_equal(ret, EEXIST);
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer}
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyerint main(void)
84ba39232a012abf2085c8a421ebce6abc52d56eThiemo Wiedemeyer{
84ba39232a012abf2085c8a421ebce6abc52d56eThiemo Wiedemeyer int rv;
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer const struct CMUnitTest tests[] = {
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer cmocka_unit_test(test_sss_ncache_init),
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,
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder teardown),
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_service_port,
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder setup, teardown),
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_reset_permanent, setup,
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer teardown),
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_prepopulate,
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer setup, teardown),
84ba39232a012abf2085c8a421ebce6abc52d56eThiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_default_domain_suffix,
7ae38566aaf40710cd83ffa3ba25655c4ad22741Thiemo Wiedemeyer setup, teardown),
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer cmocka_unit_test_setup_teardown(test_sss_ncache_reset_prepopulate,
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer setup, teardown),
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu };
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu tests_set_cwd();
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer test_dom_suite_setup(TESTS_PATH);
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder rv = cmocka_run_group_tests(tests, NULL, NULL);
44c1fff98bd6c54db237bef5030657d3f47058a5Thiemo Wiedemeyer if (rv == 0) {
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME);
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder }
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder return rv;
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer}
66fd8f017efdb8a6c862c3f1856dfaef90865dd5Thiemo Wiedemeyer