LCOV - code coverage report
Current view: top level - tests - sss_config-tests.c (source / functions) Hit Total Coverage
Test: .coverage.total Lines: 292 303 96.4 %
Date: 2015-10-19 Functions: 30 30 100.0 %

          Line data    Source code
       1             : /*
       2             :     Authors:
       3             :         Pavel Březina <pbrezina@redhat.com>
       4             : 
       5             :     Copyright (C) 2014 Red Hat
       6             : 
       7             :     This program is free software; you can redistribute it and/or modify
       8             :     it under the terms of the GNU General Public License as published by
       9             :     the Free Software Foundation; either version 3 of the License, or
      10             :     (at your option) any later version.
      11             : 
      12             :     This program is distributed in the hope that it will be useful,
      13             :     but WITHOUT ANY WARRANTY; without even the implied warranty of
      14             :     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      15             :     GNU General Public License for more details.
      16             : 
      17             :     You should have received a copy of the GNU General Public License
      18             :     along with this program.  If not, see <http://www.gnu.org/licenses/>.
      19             : */
      20             : 
      21             : #include <check.h>
      22             : #include <stdio.h>
      23             : #include <talloc.h>
      24             : #include <errno.h>
      25             : #include <string.h>
      26             : #include <sys/stat.h>
      27             : #include "util/util.h"
      28             : #include "util/sss_config.h"
      29             : #include "tests/common.h"
      30             : #include "tests/common_check.h"
      31             : 
      32             : #define TEST_SUBDIR "test_sss_config"
      33             : #define TEST_FILE TEST_SUBDIR "/sss_config_test.conf"
      34             : #define TEST_FILE_BACKUP TEST_FILE ".augsave"
      35             : 
      36             : /* input files */
      37             : 
      38             : const char *test_orig =
      39             : "[sssd]\n\
      40             : services = nss, pam\n\
      41             : domains = LDAP\n\
      42             : debug_level = 0x0ff0\n\
      43             : [domain/LDAP]\n\
      44             : debug_level = 0x0ff0\n\
      45             : [domain/IPA]\n\
      46             : debug_level = 0x0ff0\n";
      47             : 
      48             : const char *test_svc_one =
      49             : "[sssd]\n\
      50             : services = nss\n\
      51             : domains = LDAP\n\
      52             : debug_level = 0x0ff0\n\
      53             : [domain/LDAP]\n\
      54             : debug_level = 0x0ff0\n\
      55             : [domain/IPA]\n\
      56             : debug_level = 0x0ff0\n";
      57             : 
      58             : const char *test_svc_empty =
      59             : "[sssd]\n\
      60             : services =\n\
      61             : domains = LDAP\n\
      62             : debug_level = 0x0ff0\n\
      63             : [domain/LDAP]\n\
      64             : debug_level = 0x0ff0\n\
      65             : [domain/IPA]\n\
      66             : debug_level = 0x0ff0\n";
      67             : 
      68             : const char *test_svc_missing =
      69             : "[sssd]\n\
      70             : domains = LDAP\n\
      71             : debug_level = 0x0ff0\n\
      72             : [domain/LDAP]\n\
      73             : debug_level = 0x0ff0\n\
      74             : [domain/IPA]\n\
      75             : debug_level = 0x0ff0\n";
      76             : 
      77             : const char *test_dom_empty =
      78             : "[sssd]\n\
      79             : services = nss, pam\n\
      80             : domains =\n\
      81             : debug_level = 0x0ff0\n\
      82             : [domain/LDAP]\n\
      83             : debug_level = 0x0ff0\n\
      84             : [domain/IPA]\n\
      85             : debug_level = 0x0ff0\n";
      86             : 
      87             : const char *test_dom_missing =
      88             : "[sssd]\n\
      89             : services = nss, pam\n\
      90             : debug_level = 0x0ff0\n\
      91             : [domain/LDAP]\n\
      92             : debug_level = 0x0ff0\n\
      93             : [domain/IPA]\n\
      94             : debug_level = 0x0ff0\n";
      95             : 
      96             : const char *test_dom_two =
      97             : "[sssd]\n\
      98             : services = nss, pam\n\
      99             : domains = LDAP, IPA\n\
     100             : debug_level = 0x0ff0\n\
     101             : [domain/LDAP]\n\
     102             : debug_level = 0x0ff0\n\
     103             : [domain/IPA]\n\
     104             : debug_level = 0x0ff0\n";
     105             : 
     106             : /* expected */
     107             : 
     108             : const char *exp_debug_level_exist =
     109             : "[sssd]\n\
     110             : services = nss, pam\n\
     111             : domains = LDAP\n\
     112             : debug_level = 0x0ff0\n\
     113             : [domain/LDAP]\n\
     114             : debug_level = 0x0330\n\
     115             : [domain/IPA]\n\
     116             : debug_level = 0x0ff0\n";
     117             : 
     118             : const char *exp_debug_level_notexist =
     119             : "[sssd]\n\
     120             : services = nss, pam\n\
     121             : domains = LDAP\n\
     122             : debug_level = 0x0ff0\n\
     123             : [domain/LDAP]\n\
     124             : debug_level = 0x0ff0\n\
     125             : [domain/IPA]\n\
     126             : debug_level = 0x0ff0\n\
     127             : [nss]\n\
     128             : debug_level=0x0330\n";
     129             : 
     130             : const char *exp_svc =
     131             : "[sssd]\n\
     132             : services = nss, pam, pac\n\
     133             : domains = LDAP\n\
     134             : debug_level = 0x0ff0\n\
     135             : [domain/LDAP]\n\
     136             : debug_level = 0x0ff0\n\
     137             : [domain/IPA]\n\
     138             : debug_level = 0x0ff0\n";
     139             : 
     140             : const char *exp_svc_empty =
     141             : "[sssd]\n\
     142             : services =pac\n\
     143             : domains = LDAP\n\
     144             : debug_level = 0x0ff0\n\
     145             : [domain/LDAP]\n\
     146             : debug_level = 0x0ff0\n\
     147             : [domain/IPA]\n\
     148             : debug_level = 0x0ff0\n";
     149             : 
     150             : const char *exp_svc_missing =
     151             : "[sssd]\n\
     152             : domains = LDAP\n\
     153             : debug_level = 0x0ff0\n\
     154             : services=pac\n\
     155             : [domain/LDAP]\n\
     156             : debug_level = 0x0ff0\n\
     157             : [domain/IPA]\n\
     158             : debug_level = 0x0ff0\n";
     159             : 
     160             : const char *exp_svc_disable =
     161             : "[sssd]\n\
     162             : services = pam\n\
     163             : domains = LDAP\n\
     164             : debug_level = 0x0ff0\n\
     165             : [domain/LDAP]\n\
     166             : debug_level = 0x0ff0\n\
     167             : [domain/IPA]\n\
     168             : debug_level = 0x0ff0\n";
     169             : 
     170             : const char *exp_svc_disable_one =
     171             : "[sssd]\n\
     172             : domains = LDAP\n\
     173             : debug_level = 0x0ff0\n\
     174             : [domain/LDAP]\n\
     175             : debug_level = 0x0ff0\n\
     176             : [domain/IPA]\n\
     177             : debug_level = 0x0ff0\n";
     178             : 
     179             : const char *exp_svc_disable_empty =
     180             : "[sssd]\n\
     181             : services =\n\
     182             : domains = LDAP\n\
     183             : debug_level = 0x0ff0\n\
     184             : [domain/LDAP]\n\
     185             : debug_level = 0x0ff0\n\
     186             : [domain/IPA]\n\
     187             : debug_level = 0x0ff0\n";
     188             : 
     189             : const char *exp_svc_disable_missing =
     190             : "[sssd]\n\
     191             : domains = LDAP\n\
     192             : debug_level = 0x0ff0\n\
     193             : [domain/LDAP]\n\
     194             : debug_level = 0x0ff0\n\
     195             : [domain/IPA]\n\
     196             : debug_level = 0x0ff0\n";
     197             : 
     198             : const char *exp_dom =
     199             : "[sssd]\n\
     200             : services = nss, pam\n\
     201             : domains = LDAP, IPA\n\
     202             : debug_level = 0x0ff0\n\
     203             : [domain/LDAP]\n\
     204             : debug_level = 0x0ff0\n\
     205             : [domain/IPA]\n\
     206             : debug_level = 0x0ff0\n";
     207             : 
     208             : const char *exp_dom_empty =
     209             : "[sssd]\n\
     210             : services = nss, pam\n\
     211             : domains =IPA\n\
     212             : debug_level = 0x0ff0\n\
     213             : [domain/LDAP]\n\
     214             : debug_level = 0x0ff0\n\
     215             : [domain/IPA]\n\
     216             : debug_level = 0x0ff0\n";
     217             : 
     218             : const char *exp_dom_missing =
     219             : "[sssd]\n\
     220             : services = nss, pam\n\
     221             : debug_level = 0x0ff0\n\
     222             : domains=IPA\n\
     223             : [domain/LDAP]\n\
     224             : debug_level = 0x0ff0\n\
     225             : [domain/IPA]\n\
     226             : debug_level = 0x0ff0\n";
     227             : 
     228             : const char *exp_dom_disable =
     229             : "[sssd]\n\
     230             : services = nss, pam\n\
     231             : debug_level = 0x0ff0\n\
     232             : [domain/LDAP]\n\
     233             : debug_level = 0x0ff0\n\
     234             : [domain/IPA]\n\
     235             : debug_level = 0x0ff0\n";
     236             : 
     237             : const char *exp_dom_disable_two =
     238             : "[sssd]\n\
     239             : services = nss, pam\n\
     240             : domains = IPA\n\
     241             : debug_level = 0x0ff0\n\
     242             : [domain/LDAP]\n\
     243             : debug_level = 0x0ff0\n\
     244             : [domain/IPA]\n\
     245             : debug_level = 0x0ff0\n";
     246             : 
     247             : const char *exp_dom_disable_empty =
     248             : "[sssd]\n\
     249             : services = nss, pam\n\
     250             : domains =\n\
     251             : debug_level = 0x0ff0\n\
     252             : [domain/LDAP]\n\
     253             : debug_level = 0x0ff0\n\
     254             : [domain/IPA]\n\
     255             : debug_level = 0x0ff0\n";
     256             : 
     257             : struct sss_config_ctx *config_ctx;
     258             : 
     259             : static bool
     260          28 : check_file_content(const char *filename, const char *expected)
     261             : {
     262          28 :     FILE *file = NULL;
     263             :     size_t i;
     264             :     int c;
     265             :     bool result;
     266             : 
     267          28 :     file = fopen(filename, "r");
     268          28 :     fail_if(file == NULL, "unable to open test file");
     269             : 
     270          28 :     i = 0;
     271        3630 :     while ((c = fgetc(file)) != EOF) {
     272        3574 :         if (c != expected[i]) {
     273           0 :             printf("\nnot match: %d %c == %d %c\n", c, c, expected[i], expected[i]);
     274           0 :             result = false;
     275           0 :             goto done;
     276             :         }
     277             : 
     278        3574 :         i++;
     279             :     }
     280             : 
     281          28 :     if (expected[i] != '\0') {
     282           0 :         printf("\nnot end: %d %c == %d %c\n", c, c, expected[i], expected[i]);
     283           0 :         result = false;
     284           0 :         goto done;
     285             :     }
     286             : 
     287          28 :     result = true;
     288             : 
     289             : done:
     290          28 :     fclose(file);
     291          28 :     return result;
     292             : }
     293             : 
     294          24 : static void test_setup(const char *configuration)
     295             : {
     296          24 :     FILE *file = NULL;
     297             :     size_t ret;
     298             : 
     299          24 :     file = fopen(TEST_FILE, "w+");
     300          24 :     fail_if(file == NULL, "unable to create test file");
     301             : 
     302          24 :     ret = fputs(configuration, file);
     303          24 :     fail_if(ret == EOF, "unable to write test file");
     304             : 
     305          24 :     fail_if(fclose(file) != 0, "unable to close test file");
     306             : 
     307          24 :     config_ctx = sss_config_open(NULL, TEST_DIR, TEST_FILE);
     308          24 :     fail_if(config_ctx == NULL, "config_ctx is NULL");
     309          24 : }
     310             : 
     311          24 : static void setup(void)
     312             : {
     313             :     errno_t ret;
     314             : 
     315          24 :     ret = mkdir(TEST_SUBDIR, S_IRWXU);
     316          24 :     if (ret != EOK) {
     317           0 :         ret = errno;
     318           0 :         fail("unable to create test dir [%d]: %s", ret, strerror(ret));
     319             :     }
     320             : 
     321          24 :     ck_leak_check_setup();
     322          24 : }
     323             : 
     324          24 : static void teardown(void)
     325             : {
     326             :     errno_t ret;
     327             : 
     328          24 :     sss_config_close(&config_ctx);
     329          24 :     fail_if(config_ctx != NULL, "config_ctx is not NULL");
     330             : 
     331          24 :     unlink(TEST_FILE);
     332          24 :     unlink(TEST_FILE_BACKUP);
     333             : 
     334          24 :     ret = rmdir(TEST_SUBDIR);
     335          24 :     if (ret != EOK) {
     336           0 :         ret = errno;
     337           0 :         fail("unable to remove test dir [%d]: %s", ret, strerror(ret));
     338             :     }
     339             : 
     340          24 :     ck_leak_check_teardown();
     341          24 : }
     342             : 
     343           1 : START_TEST(test_sss_config_set_debug_level_exist)
     344             : {
     345             :     errno_t ret;
     346             :     bool result;
     347             : 
     348           1 :     test_setup(test_orig);
     349             : 
     350           1 :     ret = sss_config_set_debug_level(config_ctx, "domain/LDAP", 0x0330);
     351           1 :     fail_if(ret != EOK, "unable change configuration");
     352             : 
     353           1 :     ret = sss_config_save(config_ctx);
     354           1 :     fail_if(ret != EOK, "unable save configuration");
     355             : 
     356           1 :     result = check_file_content(TEST_FILE, exp_debug_level_exist);
     357           1 :     fail_if(result == false, "file does not match");
     358             : 
     359           1 :     result = check_file_content(TEST_FILE_BACKUP, test_orig);
     360           1 :     fail_if(result == false, "backup file does not match");
     361             : }
     362           1 : END_TEST
     363             : 
     364           1 : START_TEST(test_sss_config_set_debug_level_notexist)
     365             : {
     366             :     errno_t ret;
     367             :     bool result;
     368             : 
     369           1 :     test_setup(test_orig);
     370             : 
     371           1 :     ret = sss_config_set_debug_level(config_ctx, "nss", 0x0330);
     372           1 :     fail_if(ret != EOK, "unable change configuration [%d]: %s",
     373             :                         ret, strerror(ret));
     374             : 
     375           1 :     ret = sss_config_save(config_ctx);
     376           1 :     fail_if(ret != EOK, "unable save configuration [%d]: %s",
     377             :                         ret, strerror(ret));
     378             : 
     379           1 :     result = check_file_content(TEST_FILE, exp_debug_level_notexist);
     380           1 :     fail_if(result == false, "file does not match");
     381             : 
     382           1 :     result = check_file_content(TEST_FILE_BACKUP, test_orig);
     383           1 :     fail_if(result == false, "backup file does not match");
     384             : }
     385           1 : END_TEST
     386             : 
     387           1 : START_TEST(test_sss_config_service_enabled)
     388             : {
     389             :     errno_t ret;
     390             :     bool result;
     391             : 
     392           1 :     test_setup(test_orig);
     393             : 
     394           1 :     ret = sss_config_service_is_enabled(config_ctx, "nss", &result);
     395           1 :     fail_if(ret != EOK, "unable to read configuration [%d]: %s",
     396             :                         ret, strerror(ret));
     397             : 
     398           1 :     fail_if(result == false, "wrong result");
     399             : }
     400           1 : END_TEST
     401             : 
     402           1 : START_TEST(test_sss_config_service_disabled)
     403             : {
     404             :     errno_t ret;
     405             :     bool result;
     406             : 
     407           1 :     test_setup(test_orig);
     408             : 
     409           1 :     ret = sss_config_service_is_enabled(config_ctx, "pac", &result);
     410           1 :     fail_if(ret != EOK, "unable to read configuration [%d]: %s",
     411             :                         ret, strerror(ret));
     412             : 
     413           1 :     fail_if(result == true, "wrong result");
     414             : }
     415           1 : END_TEST
     416             : 
     417           1 : START_TEST(test_sss_config_service_disabled_empty)
     418             : {
     419             :     errno_t ret;
     420             :     bool result;
     421             : 
     422           1 :     test_setup(test_svc_empty);
     423             : 
     424           1 :     ret = sss_config_service_is_enabled(config_ctx, "pac", &result);
     425           1 :     fail_if(ret != EOK, "unable to read configuration [%d]: %s",
     426             :                         ret, strerror(ret));
     427             : 
     428           1 :     fail_if(result == true, "wrong result");
     429             : }
     430           1 : END_TEST
     431             : 
     432           1 : START_TEST(test_sss_config_service_disabled_missing)
     433             : {
     434             :     errno_t ret;
     435             :     bool result;
     436             : 
     437           1 :     test_setup(test_svc_missing);
     438             : 
     439           1 :     ret = sss_config_service_is_enabled(config_ctx, "pac", &result);
     440           1 :     fail_if(ret != EOK, "unable to read configuration [%d]: %s",
     441             :                         ret, strerror(ret));
     442             : 
     443           1 :     fail_if(result == true, "wrong result");
     444             : }
     445           1 : END_TEST
     446             : 
     447           1 : START_TEST(test_sss_config_service_enable)
     448             : {
     449             :     errno_t ret;
     450             :     bool result;
     451             : 
     452           1 :     test_setup(test_orig);
     453             : 
     454           1 :     ret = sss_config_service_enable(config_ctx, "pac");
     455           1 :     fail_if(ret != EOK, "unable change configuration [%d]: %s",
     456             :                         ret, strerror(ret));
     457             : 
     458           1 :     ret = sss_config_save(config_ctx);
     459           1 :     fail_if(ret != EOK, "unable save configuration [%d]: %s",
     460             :                         ret, strerror(ret));
     461             : 
     462           1 :     result = check_file_content(TEST_FILE, exp_svc);
     463           1 :     fail_if(result == false, "file does not match");
     464             : 
     465           1 :     result = check_file_content(TEST_FILE_BACKUP, test_orig);
     466           1 :     fail_if(result == false, "backup file does not match");
     467             : }
     468           1 : END_TEST
     469             : 
     470           1 : START_TEST(test_sss_config_service_enable_empty)
     471             : {
     472             :     errno_t ret;
     473             :     bool result;
     474             : 
     475           1 :     test_setup(test_svc_empty);
     476             : 
     477           1 :     ret = sss_config_service_enable(config_ctx, "pac");
     478           1 :     fail_if(ret != EOK, "unable change configuration [%d]: %s",
     479             :                         ret, strerror(ret));
     480             : 
     481           1 :     ret = sss_config_save(config_ctx);
     482           1 :     fail_if(ret != EOK, "unable save configuration [%d]: %s",
     483             :                         ret, strerror(ret));
     484             : 
     485           1 :     result = check_file_content(TEST_FILE, exp_svc_empty);
     486           1 :     fail_if(result == false, "file does not match");
     487             : 
     488           1 :     result = check_file_content(TEST_FILE_BACKUP, test_svc_empty);
     489           1 :     fail_if(result == false, "backup file does not match");
     490             : }
     491           1 : END_TEST
     492             : 
     493           1 : START_TEST(test_sss_config_service_enable_missing)
     494             : {
     495             :     errno_t ret;
     496             :     bool result;
     497             : 
     498           1 :     test_setup(test_svc_missing);
     499             : 
     500           1 :     ret = sss_config_service_enable(config_ctx, "pac");
     501           1 :     fail_if(ret != EOK, "unable change configuration [%d]: %s",
     502             :                         ret, strerror(ret));
     503             : 
     504           1 :     ret = sss_config_save(config_ctx);
     505           1 :     fail_if(ret != EOK, "unable save configuration [%d]: %s",
     506             :                         ret, strerror(ret));
     507             : 
     508           1 :     result = check_file_content(TEST_FILE, exp_svc_missing);
     509           1 :     fail_if(result == false, "file does not match");
     510             : 
     511           1 :     result = check_file_content(TEST_FILE_BACKUP, test_svc_missing);
     512           1 :     fail_if(result == false, "backup file does not match");
     513             : }
     514           1 : END_TEST
     515             : 
     516           1 : START_TEST(test_sss_config_service_disable)
     517             : {
     518             :     errno_t ret;
     519             :     bool result;
     520             : 
     521           1 :     test_setup(test_orig);
     522             : 
     523           1 :     ret = sss_config_service_disable(config_ctx, "nss");
     524           1 :     fail_if(ret != EOK, "unable change configuration [%d]: %s",
     525             :                         ret, strerror(ret));
     526             : 
     527           1 :     ret = sss_config_save(config_ctx);
     528           1 :     fail_if(ret != EOK, "unable save configuration [%d]: %s",
     529             :                         ret, strerror(ret));
     530             : 
     531           1 :     result = check_file_content(TEST_FILE, exp_svc_disable);
     532           1 :     fail_if(result == false, "file does not match");
     533             : 
     534           1 :     result = check_file_content(TEST_FILE_BACKUP, test_orig);
     535           1 :     fail_if(result == false, "backup file does not match");
     536             : }
     537           1 : END_TEST
     538             : 
     539           1 : START_TEST(test_sss_config_service_disable_one)
     540             : {
     541             :     errno_t ret;
     542             :     bool result;
     543             : 
     544           1 :     test_setup(test_svc_one);
     545             : 
     546           1 :     ret = sss_config_service_disable(config_ctx, "nss");
     547           1 :     fail_if(ret != EOK, "unable change configuration [%d]: %s",
     548             :                         ret, strerror(ret));
     549             : 
     550           1 :     ret = sss_config_save(config_ctx);
     551           1 :     fail_if(ret != EOK, "unable save configuration [%d]: %s",
     552             :                         ret, strerror(ret));
     553             : 
     554           1 :     result = check_file_content(TEST_FILE, exp_svc_disable_one);
     555           1 :     fail_if(result == false, "file does not match");
     556             : 
     557           1 :     result = check_file_content(TEST_FILE_BACKUP, test_svc_one);
     558           1 :     fail_if(result == false, "backup file does not match");
     559             : }
     560           1 : END_TEST
     561             : 
     562           1 : START_TEST(test_sss_config_service_disable_empty)
     563             : {
     564             :     errno_t ret;
     565             :     bool result;
     566             : 
     567           1 :     test_setup(test_svc_empty);
     568             : 
     569           1 :     ret = sss_config_service_disable(config_ctx, "nss");
     570           1 :     fail_if(ret != EOK, "unable change configuration [%d]: %s",
     571             :                         ret, strerror(ret));
     572             : 
     573           1 :     ret = sss_config_save(config_ctx);
     574           1 :     fail_if(ret != EOK, "unable save configuration [%d]: %s",
     575             :                         ret, strerror(ret));
     576             : 
     577           1 :     result = check_file_content(TEST_FILE, exp_svc_disable_empty);
     578           1 :     fail_if(result == false, "file does not match");
     579             : 
     580             :     /* no backup file created */
     581             : }
     582           1 : END_TEST
     583             : 
     584           1 : START_TEST(test_sss_config_service_disable_missing)
     585             : {
     586             :     errno_t ret;
     587             :     bool result;
     588             : 
     589           1 :     test_setup(test_svc_missing);
     590             : 
     591           1 :     ret = sss_config_service_disable(config_ctx, "nss");
     592           1 :     fail_if(ret != EOK, "unable change configuration [%d]: %s",
     593             :                         ret, strerror(ret));
     594             : 
     595           1 :     ret = sss_config_save(config_ctx);
     596           1 :     fail_if(ret != EOK, "unable save configuration [%d]: %s",
     597             :                         ret, strerror(ret));
     598             : 
     599           1 :     result = check_file_content(TEST_FILE, exp_svc_disable_missing);
     600           1 :     fail_if(result == false, "file does not match");
     601             : 
     602             :     /* no backup file created */
     603             : }
     604           1 : END_TEST
     605             : 
     606           1 : START_TEST(test_sss_config_domain_enabled)
     607             : {
     608             :     errno_t ret;
     609             :     bool result;
     610             : 
     611           1 :     test_setup(test_orig);
     612             : 
     613           1 :     ret = sss_config_domain_is_enabled(config_ctx, "LDAP", &result);
     614           1 :     fail_if(ret != EOK, "unable to read configuration [%d]: %s",
     615             :                         ret, strerror(ret));
     616             : 
     617           1 :     fail_if(result == false, "wrong result");
     618             : }
     619           1 : END_TEST
     620             : 
     621           1 : START_TEST(test_sss_config_domain_disabled)
     622             : {
     623             :     errno_t ret;
     624             :     bool result;
     625             : 
     626           1 :     test_setup(test_orig);
     627             : 
     628           1 :     ret = sss_config_domain_is_enabled(config_ctx, "AD", &result);
     629           1 :     fail_if(ret != EOK, "unable to read configuration [%d]: %s",
     630             :                         ret, strerror(ret));
     631             : 
     632           1 :     fail_if(result == true, "wrong result");
     633             : }
     634           1 : END_TEST
     635             : 
     636           1 : START_TEST(test_sss_config_domain_disabled_empty)
     637             : {
     638             :     errno_t ret;
     639             :     bool result;
     640             : 
     641           1 :     test_setup(test_dom_empty);
     642             : 
     643           1 :     ret = sss_config_domain_is_enabled(config_ctx, "LDAP", &result);
     644           1 :     fail_if(ret != EOK, "unable to read configuration [%d]: %s",
     645             :                         ret, strerror(ret));
     646             : 
     647           1 :     fail_if(result == true, "wrong result");
     648             : }
     649           1 : END_TEST
     650             : 
     651           1 : START_TEST(test_sss_config_domain_disabled_missing)
     652             : {
     653             :     errno_t ret;
     654             :     bool result;
     655             : 
     656           1 :     test_setup(test_dom_missing);
     657             : 
     658           1 :     ret = sss_config_domain_is_enabled(config_ctx, "LDAP", &result);
     659           1 :     fail_if(ret != EOK, "unable to read configuration [%d]: %s",
     660             :                         ret, strerror(ret));
     661             : 
     662           1 :     fail_if(result == true, "wrong result");
     663             : }
     664           1 : END_TEST
     665             : 
     666           1 : START_TEST(test_sss_config_domain_enable)
     667             : {
     668             :     errno_t ret;
     669             :     bool result;
     670             : 
     671           1 :     test_setup(test_orig);
     672             : 
     673           1 :     ret = sss_config_domain_enable(config_ctx, "IPA");
     674           1 :     fail_if(ret != EOK, "unable change configuration [%d]: %s",
     675             :                         ret, strerror(ret));
     676             : 
     677           1 :     ret = sss_config_save(config_ctx);
     678           1 :     fail_if(ret != EOK, "unable save configuration [%d]: %s",
     679             :                         ret, strerror(ret));
     680             : 
     681           1 :     result = check_file_content(TEST_FILE, exp_dom);
     682           1 :     fail_if(result == false, "file does not match");
     683             : 
     684           1 :     result = check_file_content(TEST_FILE_BACKUP, test_orig);
     685           1 :     fail_if(result == false, "backup file does not match");
     686             : }
     687           1 : END_TEST
     688             : 
     689           1 : START_TEST(test_sss_config_domain_enable_empty)
     690             : {
     691             :     errno_t ret;
     692             :     bool result;
     693             : 
     694           1 :     test_setup(test_dom_empty);
     695             : 
     696           1 :     ret = sss_config_domain_enable(config_ctx, "IPA");
     697           1 :     fail_if(ret != EOK, "unable change configuration [%d]: %s",
     698             :                         ret, strerror(ret));
     699             : 
     700           1 :     ret = sss_config_save(config_ctx);
     701           1 :     fail_if(ret != EOK, "unable save configuration [%d]: %s",
     702             :                         ret, strerror(ret));
     703             : 
     704           1 :     result = check_file_content(TEST_FILE, exp_dom_empty);
     705           1 :     fail_if(result == false, "file does not match");
     706             : 
     707           1 :     result = check_file_content(TEST_FILE_BACKUP, test_dom_empty);
     708           1 :     fail_if(result == false, "backup file does not match");
     709             : }
     710           1 : END_TEST
     711             : 
     712           1 : START_TEST(test_sss_config_domain_enable_missing)
     713             : {
     714             :     errno_t ret;
     715             :     bool result;
     716             : 
     717           1 :     test_setup(test_dom_missing);
     718             : 
     719           1 :     ret = sss_config_domain_enable(config_ctx, "IPA");
     720           1 :     fail_if(ret != EOK, "unable change configuration [%d]: %s",
     721             :                         ret, strerror(ret));
     722             : 
     723           1 :     ret = sss_config_save(config_ctx);
     724           1 :     fail_if(ret != EOK, "unable save configuration [%d]: %s",
     725             :                         ret, strerror(ret));
     726             : 
     727           1 :     result = check_file_content(TEST_FILE, exp_dom_missing);
     728           1 :     fail_if(result == false, "file does not match");
     729             : 
     730           1 :     result = check_file_content(TEST_FILE_BACKUP, test_dom_missing);
     731           1 :     fail_if(result == false, "backup file does not match");
     732             : }
     733           1 : END_TEST
     734             : 
     735           1 : START_TEST(test_sss_config_domain_disable)
     736             : {
     737             :     errno_t ret;
     738             :     bool result;
     739             : 
     740           1 :     test_setup(test_orig);
     741             : 
     742           1 :     ret = sss_config_domain_disable(config_ctx, "LDAP");
     743           1 :     fail_if(ret != EOK, "unable change configuration [%d]: %s",
     744             :                         ret, strerror(ret));
     745             : 
     746           1 :     ret = sss_config_save(config_ctx);
     747           1 :     fail_if(ret != EOK, "unable save configuration [%d]: %s",
     748             :                         ret, strerror(ret));
     749             : 
     750           1 :     result = check_file_content(TEST_FILE, exp_dom_disable);
     751           1 :     fail_if(result == false, "file does not match");
     752             : 
     753           1 :     result = check_file_content(TEST_FILE_BACKUP, test_orig);
     754           1 :     fail_if(result == false, "backup file does not match");
     755             : }
     756           1 : END_TEST
     757             : 
     758           1 : START_TEST(test_sss_config_domain_disable_two)
     759             : {
     760             :     errno_t ret;
     761             :     bool result;
     762             : 
     763           1 :     test_setup(test_dom_two);
     764             : 
     765           1 :     ret = sss_config_domain_disable(config_ctx, "LDAP");
     766           1 :     fail_if(ret != EOK, "unable change configuration [%d]: %s",
     767             :                         ret, strerror(ret));
     768             : 
     769           1 :     ret = sss_config_save(config_ctx);
     770           1 :     fail_if(ret != EOK, "unable save configuration [%d]: %s",
     771             :                         ret, strerror(ret));
     772             : 
     773           1 :     result = check_file_content(TEST_FILE, exp_dom_disable_two);
     774           1 :     fail_if(result == false, "file does not match");
     775             : 
     776           1 :     result = check_file_content(TEST_FILE_BACKUP, test_dom_two);
     777           1 :     fail_if(result == false, "backup file does not match");
     778             : }
     779           1 : END_TEST
     780             : 
     781           1 : START_TEST(test_sss_config_domain_disable_empty)
     782             : {
     783             :     errno_t ret;
     784             :     bool result;
     785             : 
     786           1 :     test_setup(test_dom_empty);
     787             : 
     788           1 :     ret = sss_config_domain_disable(config_ctx, "LDAP");
     789           1 :     fail_if(ret != EOK, "unable change configuration [%d]: %s",
     790             :                         ret, strerror(ret));
     791             : 
     792           1 :     ret = sss_config_save(config_ctx);
     793           1 :     fail_if(ret != EOK, "unable save configuration [%d]: %s",
     794             :                         ret, strerror(ret));
     795             : 
     796           1 :     result = check_file_content(TEST_FILE, exp_dom_disable_empty);
     797           1 :     fail_if(result == false, "file does not match");
     798             : 
     799             :     /* no backup file created */
     800             : }
     801           1 : END_TEST
     802             : 
     803           1 : START_TEST(test_sss_config_domain_disable_missing)
     804             : {
     805             :     errno_t ret;
     806             :     bool result;
     807             : 
     808           1 :     test_setup(test_dom_missing);
     809             : 
     810           1 :     ret = sss_config_domain_disable(config_ctx, "LDAP");
     811           1 :     fail_if(ret != EOK, "unable change configuration [%d]: %s",
     812             :                         ret, strerror(ret));
     813             : 
     814           1 :     ret = sss_config_save(config_ctx);
     815           1 :     fail_if(ret != EOK, "unable save configuration [%d]: %s",
     816             :                         ret, strerror(ret));
     817             : 
     818           1 :     result = check_file_content(TEST_FILE, exp_dom_disable);
     819           1 :     fail_if(result == false, "file does not match");
     820             : 
     821             :     /* no backup file created */
     822             : }
     823           1 : END_TEST
     824             : 
     825           1 : Suite *sss_config_suite(void)
     826             : {
     827           1 :     Suite *s = suite_create("sss_config");
     828           1 :     TCase *tc = tcase_create("sss_config");
     829             : 
     830           1 :     tcase_add_checked_fixture(tc, setup, teardown);
     831             : 
     832           1 :     tcase_add_test(tc, test_sss_config_set_debug_level_exist);
     833           1 :     tcase_add_test(tc, test_sss_config_set_debug_level_notexist);
     834           1 :     tcase_add_test(tc, test_sss_config_service_enabled);
     835           1 :     tcase_add_test(tc, test_sss_config_service_disabled);
     836           1 :     tcase_add_test(tc, test_sss_config_service_disabled_empty);
     837           1 :     tcase_add_test(tc, test_sss_config_service_disabled_missing);
     838           1 :     tcase_add_test(tc, test_sss_config_service_enable);
     839           1 :     tcase_add_test(tc, test_sss_config_service_enable_empty);
     840           1 :     tcase_add_test(tc, test_sss_config_service_enable_missing);
     841           1 :     tcase_add_test(tc, test_sss_config_service_disable);
     842           1 :     tcase_add_test(tc, test_sss_config_service_disable_one);
     843           1 :     tcase_add_test(tc, test_sss_config_service_disable_empty);
     844           1 :     tcase_add_test(tc, test_sss_config_service_disable_missing);
     845           1 :     tcase_add_test(tc, test_sss_config_domain_enabled);
     846           1 :     tcase_add_test(tc, test_sss_config_domain_disabled);
     847           1 :     tcase_add_test(tc, test_sss_config_domain_disabled_empty);
     848           1 :     tcase_add_test(tc, test_sss_config_domain_disabled_missing);
     849           1 :     tcase_add_test(tc, test_sss_config_domain_enable);
     850           1 :     tcase_add_test(tc, test_sss_config_domain_enable_empty);
     851           1 :     tcase_add_test(tc, test_sss_config_domain_enable_missing);
     852           1 :     tcase_add_test(tc, test_sss_config_domain_disable);
     853           1 :     tcase_add_test(tc, test_sss_config_domain_disable_two);
     854           1 :     tcase_add_test(tc, test_sss_config_domain_disable_empty);
     855           1 :     tcase_add_test(tc, test_sss_config_domain_disable_missing);
     856             : 
     857             : 
     858             : 
     859           1 :     tcase_set_timeout(tc, 60);
     860             : 
     861           1 :     suite_add_tcase(s, tc);
     862             : 
     863           1 :     return s;
     864             : }
     865             : 
     866           1 : int main(int argc, const char *argv[])
     867             : {
     868             :     int number_failed;
     869             : 
     870           1 :     tests_set_cwd();
     871             : 
     872           1 :     Suite *s = sss_config_suite();
     873           1 :     SRunner *sr = srunner_create(s);
     874             : 
     875           1 :     srunner_run_all(sr, CK_NORMAL);
     876           1 :     number_failed = srunner_ntests_failed(sr);
     877           1 :     srunner_free(sr);
     878             : 
     879           1 :     if (number_failed == 0) {
     880           1 :         return EXIT_SUCCESS;
     881             :     }
     882             : 
     883           0 :     return EXIT_FAILURE;
     884             : }

Generated by: LCOV version 1.10