b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina/*
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina Authors:
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina Pavel Březina <pbrezina@redhat.com>
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina Copyright (C) 2015 Red Hat
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina This program is free software; you can redistribute it and/or modify
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina it under the terms of the GNU General Public License as published by
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina the Free Software Foundation; either version 3 of the License, or
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina (at your option) any later version.
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina This program is distributed in the hope that it will be useful,
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina but WITHOUT ANY WARRANTY; without even the implied warranty of
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina GNU General Public License for more details.
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina You should have received a copy of the GNU General Public License
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina along with this program. If not, see <http://www.gnu.org/licenses/>.
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina*/
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina#include <talloc.h>
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina#include <errno.h>
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina#include <popt.h>
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina#include "tests/cmocka/common_mock.h"
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina#include "providers/ipa/ipa_dn.h"
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina#define TESTS_PATH "tp_" BASE_FILE_STEM
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina#define TEST_CONF_DB "test_ipa_dn_conf.ldb"
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina#define TEST_DOM_NAME "ipa_dn_test"
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina#define TEST_ID_PROVIDER "ipa"
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březinastruct ipa_dn_test_ctx {
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina struct sss_test_ctx *tctx;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina struct sysdb_ctx *sysdb;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina};
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březinastatic int ipa_dn_test_setup(void **state)
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina{
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina struct ipa_dn_test_ctx *test_ctx = NULL;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina test_ctx = talloc_zero(NULL, struct ipa_dn_test_ctx);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_non_null(test_ctx);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina *state = test_ctx;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina /* initialize domain */
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina test_ctx->tctx = create_dom_test_ctx(test_ctx, TESTS_PATH, TEST_CONF_DB,
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina TEST_DOM_NAME,
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina TEST_ID_PROVIDER, NULL);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_non_null(test_ctx->tctx);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina test_ctx->sysdb = test_ctx->tctx->sysdb;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina return 0;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina}
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březinastatic int ipa_dn_test_teardown(void **state)
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina{
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina talloc_zfree(*state);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina return 0;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina}
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březinastatic void ipa_check_rdn_test(void **state)
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina{
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina struct ipa_dn_test_ctx *test_ctx = NULL;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina errno_t ret;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina test_ctx = talloc_get_type_abort(*state, struct ipa_dn_test_ctx);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ret = ipa_check_rdn(test_ctx->sysdb, "cn=rdn,dc=example,dc=com", "cn");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_int_equal(ret, EOK);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ret = ipa_check_rdn(test_ctx->sysdb, "cn=rdn,attr1=value1,dc=example,dc=com", "cn", "attr1", "value1");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_int_equal(ret, EOK);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ret = ipa_check_rdn(test_ctx->sysdb, "cn=rdn,attr1=value1,attr2=value2,dc=example,dc=com", "cn", "attr1", "value1", "attr2", "value2");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_int_equal(ret, EOK);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ret = ipa_check_rdn(test_ctx->sysdb, "cn=rdn,dc=example,dc=com", "nope");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_int_equal(ret, ENOENT);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ret = ipa_check_rdn(test_ctx->sysdb, "cn=rdn,attr1=value1,dc=example,dc=com", "cn", "nope", "value1");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_int_equal(ret, ENOENT);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ret = ipa_check_rdn(test_ctx->sysdb, "cn=rdn,attr1=value1,attr2=value2,dc=example,dc=com", "cn", "attr1", "nope");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_int_equal(ret, ENOENT);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ret = ipa_check_rdn(test_ctx->sysdb, "cn=rdn,attr1=value1,dc=example,dc=com", "cn", "attr1");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_int_equal(ret, ENOENT);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ret = ipa_check_rdn(test_ctx->sysdb, "cn=rdn,attr1=value1", "cn", "attr1", "value1");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_int_equal(ret, ENOENT);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina}
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březinastatic void ipa_check_rdn_bool_test(void **state)
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina{
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina struct ipa_dn_test_ctx *test_ctx = NULL;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina bool bret;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina test_ctx = talloc_get_type_abort(*state, struct ipa_dn_test_ctx);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina bret = ipa_check_rdn_bool(test_ctx->sysdb, "cn=rdn,dc=example,dc=com", "cn");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_true(bret);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina bret = ipa_check_rdn_bool(test_ctx->sysdb, "cn=rdn,attr1=value1,dc=example,dc=com", "cn", "attr1", "value1");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_true(bret);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina bret = ipa_check_rdn_bool(test_ctx->sysdb, "cn=rdn,attr1=value1,attr2=value2,dc=example,dc=com", "cn", "attr1", "value1", "attr2", "value2");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_true(bret);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina bret = ipa_check_rdn_bool(test_ctx->sysdb, "cn=rdn,dc=example,dc=com", "nope");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_false(bret);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina bret = ipa_check_rdn_bool(test_ctx->sysdb, "cn=rdn,attr1=value1,dc=example,dc=com", "cn", "nope", "value1");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_false(bret);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina bret = ipa_check_rdn_bool(test_ctx->sysdb, "cn=rdn,attr1=value1,attr2=value2,dc=example,dc=com", "cn", "attr1", "nope");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_false(bret);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina bret = ipa_check_rdn_bool(test_ctx->sysdb, "cn=rdn,attr1=value1,dc=example,dc=com", "cn", "attr1");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_false(bret);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina bret = ipa_check_rdn_bool(test_ctx->sysdb, "cn=rdn,attr1=value1", "cn", "attr1", "value1");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_false(bret);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina}
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březinastatic void ipa_get_rdn_test(void **state)
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina{
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina struct ipa_dn_test_ctx *test_ctx = NULL;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina const char *exprdn = "rdn";
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina char *rdn = NULL;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina errno_t ret;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina test_ctx = talloc_get_type_abort(*state, struct ipa_dn_test_ctx);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ret = ipa_get_rdn(test_ctx, test_ctx->sysdb, "cn=rdn,dc=example,dc=com", &rdn, "cn");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_int_equal(ret, EOK);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_non_null(rdn);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_string_equal(exprdn, rdn);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ret = ipa_get_rdn(test_ctx, test_ctx->sysdb, "cn=rdn,attr1=value1,dc=example,dc=com", &rdn, "cn", "attr1", "value1");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_int_equal(ret, EOK);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_non_null(rdn);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_string_equal(exprdn, rdn);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ret = ipa_get_rdn(test_ctx, test_ctx->sysdb, "cn=rdn,attr1=value1,attr2=value2,dc=example,dc=com", &rdn, "cn", "attr1", "value1", "attr2", "value2");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_int_equal(ret, EOK);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_non_null(rdn);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_string_equal(exprdn, rdn);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina rdn = NULL;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ret = ipa_get_rdn(test_ctx, test_ctx->sysdb, "cn=rdn,dc=example,dc=com", &rdn, "nope");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_int_equal(ret, ENOENT);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_null(rdn);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ret = ipa_get_rdn(test_ctx, test_ctx->sysdb, "cn=rdn,attr1=value1,dc=example,dc=com", &rdn, "cn", "nope", "value1");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_int_equal(ret, ENOENT);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_null(rdn);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ret = ipa_get_rdn(test_ctx, test_ctx->sysdb, "cn=rdn,attr1=value1,attr2=value2,dc=example,dc=com", &rdn, "cn", "attr1", "nope");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_int_equal(ret, ENOENT);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_null(rdn);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ret = ipa_get_rdn(test_ctx, test_ctx->sysdb, "cn=rdn,attr1=value1,dc=example,dc=com", &rdn, "cn", "attr1");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_int_equal(ret, ENOENT);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_null(rdn);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ret = ipa_get_rdn(test_ctx, test_ctx->sysdb, "cn=rdn,attr1=value1", &rdn, "cn", "attr1", "value1");
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_int_equal(ret, ENOENT);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina assert_null(rdn);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina}
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březinaint main(int argc, const char *argv[])
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina{
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina int rv;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina int no_cleanup = 0;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina poptContext pc;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina int opt;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina struct poptOption long_options[] = {
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina POPT_AUTOHELP
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina SSSD_DEBUG_OPTS
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina {"no-cleanup", 'n', POPT_ARG_NONE, &no_cleanup, 0,
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina _("Do not delete the test database after a test run"), NULL },
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina POPT_TABLEEND
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina };
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina const struct CMUnitTest tests[] = {
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina cmocka_unit_test_setup_teardown(ipa_check_rdn_test,
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ipa_dn_test_setup,
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ipa_dn_test_teardown),
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina cmocka_unit_test_setup_teardown(ipa_check_rdn_bool_test,
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ipa_dn_test_setup,
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ipa_dn_test_teardown),
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina cmocka_unit_test_setup_teardown(ipa_get_rdn_test,
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ipa_dn_test_setup,
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina ipa_dn_test_teardown)
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina };
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina /* Set debug level to invalid value so we can deside if -d 0 was used. */
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina debug_level = SSSDBG_INVALID;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina pc = poptGetContext(argv[0], argc, argv, long_options, 0);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina while((opt = poptGetNextOpt(pc)) != -1) {
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina switch(opt) {
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina default:
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina fprintf(stderr, "\nInvalid option %s: %s\n\n",
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina poptBadOption(pc, 0), poptStrerror(opt));
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina poptPrintUsage(pc, stderr, 0);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina return 1;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina }
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina }
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina poptFreeContext(pc);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina DEBUG_CLI_INIT(debug_level);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina /* Even though normally the tests should clean up after themselves
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina * they might not after a failed run. Remove the old db to be sure */
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina tests_set_cwd();
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina test_dom_suite_setup(TESTS_PATH);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina rv = cmocka_run_group_tests(tests, NULL, NULL);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina if (rv == 0 && !no_cleanup) {
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME);
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina }
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina return rv;
b407fe0474a674bb42f0f42ab47c7f530a07a367Pavel Březina}