LCOV - code coverage report
Current view: top level - source4/torture/libnetapi - libnetapi.c (source / functions) Hit Total Coverage
Test: coverage report for master 2b515b7d Lines: 27 36 75.0 %
Date: 2024-02-28 12:06:22 Functions: 3 3 100.0 %

          Line data    Source code
       1             : /*
       2             :    Unix SMB/CIFS implementation.
       3             :    SMB torture tester
       4             :    Copyright (C) Guenther Deschner 2009
       5             : 
       6             :    This program is free software; you can redistribute it and/or modify
       7             :    it under the terms of the GNU General Public License as published by
       8             :    the Free Software Foundation; either version 3 of the License, or
       9             :    (at your option) any later version.
      10             : 
      11             :    This program is distributed in the hope that it will be useful,
      12             :    but WITHOUT ANY WARRANTY; without even the implied warranty of
      13             :    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      14             :    GNU General Public License for more details.
      15             : 
      16             :    You should have received a copy of the GNU General Public License
      17             :    along with this program.  If not, see <http://www.gnu.org/licenses/>.
      18             : */
      19             : 
      20             : #include "source3/include/includes.h"
      21             : #include "torture/smbtorture.h"
      22             : #include "auth/credentials/credentials.h"
      23             : #include "lib/cmdline/cmdline.h"
      24             : #include "source3/lib/netapi/netapi.h"
      25             : #include "source3/lib/netapi/netapi_private.h"
      26             : #include "lib/param/param.h"
      27             : #include "torture/libnetapi/proto.h"
      28             : 
      29           4 : bool torture_libnetapi_init_context(struct torture_context *tctx,
      30             :                                     struct libnetapi_ctx **ctx_p)
      31             : {
      32           0 :         NET_API_STATUS status;
      33           0 :         struct libnetapi_ctx *ctx;
      34           4 :         TALLOC_CTX *frame = talloc_stackframe();
      35           4 :         struct cli_credentials *creds = samba_cmdline_get_creds();
      36             : 
      37           4 :         if (!lp_load_global(lpcfg_configfile(tctx->lp_ctx))) {
      38           0 :                 fprintf(stderr, "error loading %s\n", lpcfg_configfile(tctx->lp_ctx));
      39           0 :                 talloc_free(frame);
      40           0 :                 return W_ERROR_V(WERR_GEN_FAILURE);
      41             :         }
      42             : 
      43           4 :         load_interfaces();
      44             : 
      45           4 :         status = libnetapi_net_init(&ctx, tctx->lp_ctx, creds);
      46           4 :         if (status != 0) {
      47           0 :                 talloc_free(frame);
      48           0 :                 return false;
      49             :         }
      50             : 
      51           4 :         *ctx_p = ctx;
      52             : 
      53           4 :         talloc_free(frame);
      54           4 :         return true;
      55             : }
      56             : 
      57           1 : static bool torture_libnetapi_initialize(struct torture_context *tctx)
      58             : {
      59           0 :         NET_API_STATUS status;
      60           0 :         struct libnetapi_ctx *ctx;
      61             : 
      62             :         /* We must do this first, as otherwise we fail if we don't
      63             :          * have an smb.conf in the default path (we need to use the
      64             :          * torture smb.conf */
      65           1 :         torture_assert(tctx, torture_libnetapi_init_context(tctx, &ctx),
      66             :                        "failed to initialize libnetapi");
      67             : 
      68           1 :         status = libnetapi_init(&ctx);
      69             : 
      70           1 :         torture_assert(tctx, ctx != NULL, "Failed to get a libnetapi_ctx");
      71           1 :         torture_assert_int_equal(tctx, status, 0, "libnetapi_init failed despite already being set up");
      72             : 
      73           1 :         libnetapi_free(ctx);
      74             : 
      75           1 :         return true;
      76             : }
      77             : 
      78        2379 : NTSTATUS torture_libnetapi_init(TALLOC_CTX *ctx)
      79             : {
      80         125 :         struct torture_suite *suite;
      81             : 
      82        2379 :         suite = torture_suite_create(ctx, "netapi");
      83             : 
      84        2379 :         torture_suite_add_simple_test(suite, "server", torture_libnetapi_server);
      85        2379 :         torture_suite_add_simple_test(suite, "group", torture_libnetapi_group);
      86        2379 :         torture_suite_add_simple_test(suite, "user", torture_libnetapi_user);
      87        2379 :         torture_suite_add_simple_test(suite, "initialize", torture_libnetapi_initialize);
      88             : 
      89        2379 :         suite->description = talloc_strdup(suite, "libnetapi convenience interface tests");
      90             : 
      91        2379 :         torture_register_suite(ctx, suite);
      92             : 
      93        2379 :         return NT_STATUS_OK;
      94             : }

Generated by: LCOV version 1.14