mirror of
https://github.com/samba-team/samba.git
synced 2025-01-27 14:04:05 +03:00
b8d0602e59
This avoids running the test while samba is modifying and locking the same database, as this can lead to a deadlock. The deadlock is not seen in production as the LDB read lock is not held while waiting for another process, but this test needs to do this to demonstrate the locking safety. Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org> Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org> Autobuild-Date(master): Fri Dec 8 21:47:55 CET 2017 on sn-devel-144
66 lines
2.3 KiB
Python
66 lines
2.3 KiB
Python
# Unix SMB/CIFS implementation. Tests for SamDB
|
|
# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2008
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
|
|
"""Tests for samba.samdb."""
|
|
|
|
import logging
|
|
import os
|
|
import uuid
|
|
import shutil
|
|
|
|
from samba.auth import system_session
|
|
from samba.provision import provision
|
|
from samba.tests import TestCaseInTempDir
|
|
from samba.dsdb import DS_DOMAIN_FUNCTION_2008_R2
|
|
|
|
|
|
class SamDBTestCase(TestCaseInTempDir):
|
|
"""Base-class for tests with a Sam Database.
|
|
|
|
This is used by the Samba SamDB-tests, but e.g. also by the OpenChange
|
|
provisioning tests (which need a Sam).
|
|
"""
|
|
|
|
def setUp(self):
|
|
super(SamDBTestCase, self).setUp()
|
|
self.session = system_session()
|
|
logger = logging.getLogger("selftest")
|
|
domain = "dsdb"
|
|
realm = "dsdb.samba.example.com"
|
|
host_name = "test"
|
|
server_role = "active directory domain controller"
|
|
dns_backend = "SAMBA_INTERNAL"
|
|
self.result = provision(logger,
|
|
self.session, targetdir=self.tempdir,
|
|
realm=realm, domain=domain,
|
|
hostname=host_name,
|
|
use_ntvfs=True,
|
|
serverrole=server_role,
|
|
dns_backend="SAMBA_INTERNAL",
|
|
dom_for_fun_level=DS_DOMAIN_FUNCTION_2008_R2)
|
|
self.samdb = self.result.samdb
|
|
self.lp = self.result.lp
|
|
|
|
def tearDown(self):
|
|
for f in ['names.tdb']:
|
|
os.remove(os.path.join(self.tempdir, f))
|
|
|
|
for d in ['etc', 'msg.lock', 'private', 'state']:
|
|
shutil.rmtree(os.path.join(self.tempdir, d))
|
|
|
|
super(SamDBTestCase, self).tearDown()
|