1/* 2 Unix SMB/CIFS implementation. 3 4 local testing of torture 5 6 Copyright (C) Jelmer Vernooij 2006 7 8 This program is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 3 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program. If not, see <http://www.gnu.org/licenses/>. 20*/ 21 22#include "includes.h" 23#include "torture/torture.h" 24#include "system/wait.h" 25#include "lib/events/events.h" 26#include "libcli/raw/libcliraw.h" 27#include "torture/util.h" 28#include "param/provision.h" 29 30static bool test_tempdir(struct torture_context *tctx) 31{ 32 char *location = NULL; 33 TALLOC_CTX *mem_ctx = tctx; 34 35 torture_assert_ntstatus_ok(tctx, torture_temp_dir(mem_ctx, "tempdir", &location), 36 "torture_temp_dir should return NT_STATUS_OK" ); 37 38 torture_assert(tctx, directory_exist(location), 39 "created dir doesn't exist"); 40 return true; 41} 42 43static bool test_provision(struct torture_context *tctx) 44{ 45 NTSTATUS status; 46 struct provision_settings *settings = talloc_zero(tctx, struct provision_settings); 47 struct provision_result result; 48 char *targetdir = NULL; 49 50 torture_assert_ntstatus_ok(tctx, torture_temp_dir(tctx, "torture_provision", &targetdir), 51 "torture_temp_dir should return NT_STATUS_OK" ); 52 settings->targetdir = talloc_steal(settings, targetdir); 53 54 settings->site_name = "SOME-SITE-NAME"; 55 settings->root_dn_str = "DC=EXAMPLE,DC=COM"; 56 settings->domain_dn_str = "DC=EXAMPLE,DC=COM"; 57 settings->config_dn_str = NULL; 58 settings->schema_dn_str = NULL; 59 settings->invocation_id = NULL; 60 settings->netbios_name = "FOO"; 61 settings->realm = "EXAMPLE.COM"; 62 settings->domain = "EXAMPLE"; 63 settings->netbios_name = "torture"; 64 settings->ntds_dn_str = NULL; 65 settings->machine_password = "geheim"; 66 67 status = provision_bare(settings, tctx->lp_ctx, settings, &result); 68 69 torture_assert_ntstatus_ok(tctx, status, "provision"); 70 71 torture_assert_str_equal(tctx, result.domaindn, "DC=EXAMPLE,DC=COM", 72 "domaindn incorrect"); 73 74 return true; 75} 76 77struct torture_suite *torture_local_torture(TALLOC_CTX *mem_ctx) 78{ 79 struct torture_suite *suite = torture_suite_create(mem_ctx, 80 "TORTURE"); 81 82 torture_suite_add_simple_test(suite, "tempdir", test_tempdir); 83 torture_suite_add_simple_test(suite, "provision", test_provision); 84 85 return suite; 86} 87