LCOV - code coverage report
Current view: top level - testsuite/unittests - test_lib_util_modules.c (source / functions) Hit Total Coverage
Test: coverage report for master 2f515e9b Lines: 26 26 100.0 %
Date: 2024-04-21 15:09:00 Functions: 4 4 100.0 %

          Line data    Source code
       1             : #include <stdarg.h>
       2             : #include <stddef.h>
       3             : #include <setjmp.h>
       4             : #include <cmocka.h>
       5             : 
       6             : #include <errno.h>
       7             : #include <stdio.h>
       8             : #include <stdint.h>
       9             : #include <stdbool.h>
      10             : #include <unistd.h>
      11             : #include <sys/stat.h>
      12             : #include <talloc.h>
      13             : 
      14             : #include "include/config.h"
      15             : #include "libcli/util/ntstatus.h"
      16             : #include "lib/util/samba_modules.h"
      17             : 
      18           2 : static int teardown(void **state)
      19             : {
      20           2 :         unsetenv("UNITTEST_DUMMY_MODULE_LOADED");
      21             : 
      22           2 :         return 0;
      23             : }
      24             : 
      25           1 : static void test_samba_module_probe_dummy(void **state)
      26             : {
      27           1 :         const char *module_env;
      28           1 :         NTSTATUS status;
      29             : 
      30           1 :         status = smb_probe_module("rpc", "test_dummy_module");
      31           1 :         assert_true(NT_STATUS_IS_OK(status));
      32             : 
      33           1 :         module_env = getenv("UNITTEST_DUMMY_MODULE_LOADED");
      34           1 :         assert_non_null(module_env);
      35           1 :         assert_string_equal(module_env, "TRUE");
      36           1 : }
      37             : 
      38           1 : static void test_samba_module_probe_slash(void **state)
      39             : {
      40           1 :         char dummy_module_path[4096] = {0};
      41           1 :         const char *module_env;
      42           1 :         NTSTATUS status;
      43             : 
      44           1 :         snprintf(dummy_module_path,
      45             :                  sizeof(dummy_module_path),
      46             :                  "%s/bin/modules/rpc/test_dummy_module.so",
      47             :                  SRCDIR);
      48             : 
      49           1 :         status = smb_probe_module("rpc", dummy_module_path);
      50           1 :         assert_true(NT_STATUS_IS_ERR(status));
      51             : 
      52           1 :         module_env = getenv("UNITTEST_DUMMY_MODULE_LOADED");
      53           1 :         assert_null(module_env);
      54           1 : }
      55             : 
      56           1 : int main(void) {
      57           1 :         const struct CMUnitTest tests[] = {
      58             :                 cmocka_unit_test_teardown(test_samba_module_probe_dummy,
      59             :                                           teardown),
      60             :                 cmocka_unit_test_teardown(test_samba_module_probe_slash,
      61             :                                           teardown),
      62             :         };
      63             : 
      64           1 :         cmocka_set_message_output(CM_OUTPUT_SUBUNIT);
      65           1 :         return cmocka_run_group_tests(tests, NULL, NULL);
      66             : }

Generated by: LCOV version 1.14