dlopen-tests.c revision bacc66dc6f446d47be18b61d569721481d70386b
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce Simo Sorce <simo@redhat.com>
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce Copyright (C) 2013 Red Hat
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce This program is free software; you can redistribute it and/or modify
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce it under the terms of the GNU General Public License as published by
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce the Free Software Foundation; either version 3 of the License, or
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce (at your option) any later version.
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce This program is distributed in the hope that it will be useful,
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce but WITHOUT ANY WARRANTY; without even the implied warranty of
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce GNU General Public License for more details.
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce You should have received a copy of the GNU General Public License
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce along with this program. If not, see <http://www.gnu.org/licenses/>.
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce const char *name;
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce { "libsss_debug.so", { LIBPFX"libsss_debug.so", NULL } },
42ec8af02ecf1937e4db9b1ecc6216022634f0f9Michal Zidek { "libsss_semanage.so", { LIBPFX"libsss_semanage.so", NULL } },
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce { "libipa_hbac.so", { LIBPFX"libipa_hbac.so", NULL } },
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce { "libsss_idmap.so", { LIBPFX"libsss_idmap.so", NULL } },
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce { "libsss_nss_idmap.so", { LIBPFX"libsss_nss_idmap.so", NULL } },
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce { "libnss_sss.so", { LIBPFX"libnss_sss.so", NULL } },
885386b7e3f1c3e74b354576b98a092b0835d64eSumit Bose { "libwbclient.so", { LIBPFX"libwbclient.so", NULL } },
25cd72fd477acaecbb827b68f0a425ccb79c184cSumit Bose#endif /* BUILD_LIBWBCLIENT */
7a6a7db9a535d6cceb61c080594c67feccbcea12Lukas Slebodnik { "libsss_simpleifp.so", { LIBPFX"libsss_simpleifp.so", NULL } },
7a6a7db9a535d6cceb61c080594c67feccbcea12Lukas Slebodnik#endif /* BUILD_IFP */
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce { "libsss_sudo.so", { LIBPFX"libsss_sudo.so", NULL } },
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce { "libsss_autofs.so", { LIBPFX"libsss_autofs.so", NULL } },
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce { "sssd_krb5_locator_plugin.so", { LIBPFX"sssd_krb5_locator_plugin.so",
8a5e793a0576250da80371e53aa3e7eba15cdb63Sumit Bose { "sssd_krb5_localauth_plugin.so", { LIBPFX"sssd_krb5_localauth_plugin.so",
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce { "sssd_pac_plugin.so", { LIBPFX"sssd_pac_plugin.so", NULL } },
af4ffe1001adcc0a96897e426d26444f07af9aa1Benjamin Franzke { "cifs_idmap_sss.so", { LIBPFX"cifs_idmap_sss.so", NULL } },
1d1a0a019d8d4d9ab0f51ada03604cd2cada287eSumit Bose { "winbind_idmap_sss.so", { LIBPFX"libdlopen_test_winbind_idmap.so",
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce { "memberof.so", { LIBPFX"memberof.so", NULL } },
5a05b6127064c74349f1edae32e5e13032c386feLukas Slebodnik { "libsss_child.so", { LIBPFX"libsss_util.so",
5a05b6127064c74349f1edae32e5e13032c386feLukas Slebodnik { "libsss_crypt.so", { LIBPFX"libsss_crypt.so", NULL } },
5a05b6127064c74349f1edae32e5e13032c386feLukas Slebodnik { "libsss_util.so", { LIBPFX"libsss_util.so", NULL } },
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce { "libsss_simple.so", { LIBPFX"libdlopen_test_providers.so",
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce { "libsss_ad.so", { LIBPFX"libdlopen_test_providers.so",
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce { "libsss_ipa.so", { LIBPFX"libdlopen_test_providers.so",
a2e417f38c57ed87c956ddcecf4dafca93842b65Lukas Slebodnik#endif /* BUILD_SAMBA */
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce { "libsss_krb5.so", { LIBPFX"libdlopen_test_providers.so",
a25942bc2f6ac9b3b2817ede35fa2b445373c6e4Lukas Slebodnik { "libsss_krb5_common.so", { LIBPFX"libdlopen_test_providers.so",
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce { "libsss_ldap.so", { LIBPFX"libdlopen_test_providers.so",
a25942bc2f6ac9b3b2817ede35fa2b445373c6e4Lukas Slebodnik { "libsss_ldap_common.so", { LIBPFX"libdlopen_test_providers.so",
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce { "libsss_proxy.so", { LIBPFX"libdlopen_test_providers.so",
a25942bc2f6ac9b3b2817ede35fa2b445373c6e4Lukas Slebodnik { "libdlopen_test_providers.so", { LIBPFX"libdlopen_test_providers.so",
889706cbc739358c2a0aac2ba6bc054fdc8e048bLukas Slebodnik { "_py2hbac.so", { LIBPFX"_py2hbac.so", NULL } },
889706cbc739358c2a0aac2ba6bc054fdc8e048bLukas Slebodnik { "_py2sss.so", { LIBPFX"_py2sss.so", NULL } },
889706cbc739358c2a0aac2ba6bc054fdc8e048bLukas Slebodnik { "_py2sss_murmur.so", { LIBPFX"_py2sss_murmur.so", NULL } },
889706cbc739358c2a0aac2ba6bc054fdc8e048bLukas Slebodnik { "_py2sss_nss_idmap.so", { LIBPFX"_py2sss_nss_idmap.so", NULL } },
889706cbc739358c2a0aac2ba6bc054fdc8e048bLukas Slebodnik { "_py3hbac.so", { LIBPFX"_py3hbac.so", NULL } },
889706cbc739358c2a0aac2ba6bc054fdc8e048bLukas Slebodnik { "_py3sss.so", { LIBPFX"_py3sss.so", NULL } },
889706cbc739358c2a0aac2ba6bc054fdc8e048bLukas Slebodnik { "_py3sss_murmur.so", { LIBPFX"_py3sss_murmur.so", NULL } },
889706cbc739358c2a0aac2ba6bc054fdc8e048bLukas Slebodnik { "_py3sss_nss_idmap.so", { LIBPFX"_py3sss_nss_idmap.so", NULL } },
3fc158e59eebbc2f538fe0076a03928d0d4eab9fPavel Březina { "libsss_config.so", { LIBPFX"libsss_config.so", NULL } },
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorcestatic bool recursive_dlopen(const char **name, int round, char **errmsg)
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce handle = dlopen(name[round], RTLD_GLOBAL|RTLD_NOW);
569bbc59e4060160a986d0fea31601a7b7d998feBenjamin Franzke if (asprintf(errmsg, "dlopen() failed: %s", dlerror()) == -1)
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce return false;
36ccdecd053a9ad88dce86b8c84770dc2aa11d21Simo Sorce fail_unless(ok, "Error opening %s: [%s]", so[i].name, errmsg);