1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-28 01:58:17 +03:00

dsdb pytests: test the effect of reordering modify requests

Do we interpret these the same way as Windows? In many cases, no.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
Douglas Bagnall 2019-04-13 00:23:26 +12:00 committed by Andrew Bartlett
parent 865e464d5e
commit c73888ff6f
16 changed files with 4311 additions and 0 deletions

View File

@ -0,0 +1,5 @@
samba4.ldap_modify_order.python.+ModifyOrderTests.test_modify_order_account_locality_device
samba4.ldap_modify_order.python.+ModifyOrderTests.test_modify_order_container_flags_multivalue
samba4.ldap_modify_order.python.+ModifyOrderTests.test_modify_order_objectclass
samba4.ldap_modify_order.python.+ModifyOrderTests.test_modify_order_objectclass2
samba4.ldap_modify_order.python.+ModifyOrderTests.test_modify_order_singlevalue

View File

@ -0,0 +1,353 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2008-2011
#
# 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/>.
from __future__ import print_function
import optparse
import sys
import os
from itertools import permutations
import traceback
sys.path.insert(0, "bin/python")
import samba
from samba.tests.subunitrun import SubunitOptions, TestProgram
import samba.getopt as options
from samba.auth import system_session
from ldb import SCOPE_BASE, LdbError
from ldb import Message, MessageElement, Dn
from ldb import FLAG_MOD_ADD, FLAG_MOD_REPLACE, FLAG_MOD_DELETE
from samba.samdb import SamDB
from samba.tests import delete_force
TEST_DATA_DIR = os.path.join(
os.path.dirname(__file__),
'testdata')
LDB_STRERR = {}
def _build_ldb_strerr():
import ldb
for k, v in vars(ldb).items():
if k.startswith('ERR_') and isinstance(v, int):
LDB_STRERR[v] = k
_build_ldb_strerr()
class ModifyOrderTests(samba.tests.TestCase):
def setUp(self):
super().setUp()
self.dsdb = get_dsdb()
self.base_dn = self.dsdb.domain_dn()
def delete_object(self, dn):
delete_force(self.dsdb, dn)
def _test_modify_order(self,
start_attrs,
mod_attrs,
extra_search_attrs=(),
name=None):
# We are using Message objects here for add (rather than the
# more convenient dict) because we maybe care about the order
# in which attributes are added.
if name is None:
name = traceback.extract_stack()[-2][2][5:]
sig = []
op_lut = ['', 'add', 'replace', 'delete']
search_attrs = set(extra_search_attrs)
lines = [name, "initial attrs:"]
for k, v in start_attrs:
lines.append("%20s: %r" % (k, v))
search_attrs.add(k)
for k, v, op in mod_attrs:
search_attrs.add(k)
search_attrs = sorted(search_attrs)
header = "\n".join(lines)
sig.append(header)
clusters = {}
for i, attrs in enumerate(permutations(mod_attrs)):
# for each permuation we construct a string describing the
# requested operations, and a string describing the result
# (which may be an exception). The we cluster the
# attribute strings by their results.
dn = "cn=ldaptest_%s_%d,cn=users,%s" % (name, i, self.base_dn)
m = Message()
m.dn = Dn(self.dsdb, dn)
for k, v in start_attrs:
m[k] = MessageElement(v, 0, k)
self.dsdb.add(m)
self.addCleanup(self.delete_object, dn)
m = Message()
m.dn = Dn(self.dsdb, dn)
attr_lines = []
for k, v, op in attrs:
if v is None:
v = dn
m[k] = MessageElement(v, op, k)
attr_lines.append("%16s %-8s %s" % (k, op_lut[op], v))
attr_str = '\n'.join(attr_lines)
try:
self.dsdb.modify(m)
except LdbError as e:
err, _ = e.args
s = LDB_STRERR.get(err, "unknown error")
result_str = "%s (%d)" % (s, err)
else:
res = self.dsdb.search(base=dn, scope=SCOPE_BASE,
attrs=search_attrs)
lines = []
for k, v in sorted(dict(res[0]).items()):
if k != "dn" or k in extra_search_attrs:
lines.append("%20s: %r" % (k, sorted(v)))
result_str = '\n'.join(lines)
clusters.setdefault(result_str, []).append(attr_str)
for s, attrs in sorted(clusters.items()):
sig.extend([
"== result ===[%3d]=======================" % len(attrs),
s,
"-- operations ---------------------------"])
for a in attrs:
sig.append(a)
sig.append("-" * 34)
sig = '\n'.join(sig).replace(self.base_dn, "{base dn}")
if opts.verbose:
print(sig)
if opts.rewrite_ground_truth:
f = open(os.path.join(TEST_DATA_DIR, name + '.expected'), 'w')
f.write(sig)
f.close()
f = open(os.path.join(TEST_DATA_DIR, name + '.expected'))
expected = f.read()
f.close()
self.assertStringsEqual(sig, expected)
def test_modify_order_mixed(self):
start_attrs = [("objectclass", "user"),
("carLicense", ["1", "2", "3"]),
("otherTelephone", "123")]
mod_attrs = [("carLicense", "3", FLAG_MOD_DELETE),
("carLicense", "4", FLAG_MOD_ADD),
("otherTelephone", "4", FLAG_MOD_REPLACE),
("otherTelephone", "123", FLAG_MOD_DELETE)]
self._test_modify_order(start_attrs, mod_attrs)
def test_modify_order_mixed2(self):
start_attrs = [("objectclass", "user"),
("carLicense", ["1", "2", "3"]),
("ipPhone", "123")]
mod_attrs = [("carLicense", "3", FLAG_MOD_DELETE),
("carLicense", "4", FLAG_MOD_ADD),
("ipPhone", "4", FLAG_MOD_REPLACE),
("ipPhone", "123", FLAG_MOD_DELETE)]
self._test_modify_order(start_attrs, mod_attrs)
def test_modify_order_telephone(self):
start_attrs = [("objectclass", "user"),
("otherTelephone", "123")]
mod_attrs = [("carLicense", "3", FLAG_MOD_REPLACE),
("carLicense", "4", FLAG_MOD_ADD),
("otherTelephone", "4", FLAG_MOD_REPLACE),
("otherTelephone", "4", FLAG_MOD_ADD),
("otherTelephone", "123", FLAG_MOD_DELETE)]
self._test_modify_order(start_attrs, mod_attrs)
def test_modify_order_telephone_delete_delete(self):
start_attrs = [("objectclass", "user"),
("otherTelephone", "123")]
mod_attrs = [("carLicense", "3", FLAG_MOD_REPLACE),
("carLicense", "4", FLAG_MOD_DELETE),
("otherTelephone", "4", FLAG_MOD_REPLACE),
("otherTelephone", "4", FLAG_MOD_DELETE),
("otherTelephone", "123", FLAG_MOD_DELETE)]
self._test_modify_order(start_attrs, mod_attrs)
def test_modify_order_objectclass(self):
start_attrs = [("objectclass", "user"),
("otherTelephone", "123")]
mod_attrs = [("objectclass", "computer", FLAG_MOD_REPLACE),
("objectclass", "user", FLAG_MOD_DELETE),
("objectclass", "person", FLAG_MOD_DELETE)]
self._test_modify_order(start_attrs, mod_attrs)
def test_modify_order_objectclass2(self):
start_attrs = [("objectclass", "user")]
mod_attrs = [("objectclass", "computer", FLAG_MOD_REPLACE),
("objectclass", "user", FLAG_MOD_ADD),
("objectclass", "attributeSchema", FLAG_MOD_REPLACE),
("objectclass", "inetOrgPerson", FLAG_MOD_ADD),
("objectclass", "person", FLAG_MOD_DELETE)]
self._test_modify_order(start_attrs, mod_attrs)
def test_modify_order_singlevalue(self):
start_attrs = [("objectclass", "user"),
("givenName", "a")]
mod_attrs = [("givenName", "a", FLAG_MOD_REPLACE),
("givenName", ["b", "a"], FLAG_MOD_REPLACE),
("givenName", "b", FLAG_MOD_DELETE),
("givenName", "a", FLAG_MOD_DELETE),
("givenName", "c", FLAG_MOD_ADD)]
self._test_modify_order(start_attrs, mod_attrs)
def test_modify_order_inapplicable(self):
#attrbutes that don't go on a user
start_attrs = [("objectclass", "user"),
("givenName", "a")]
mod_attrs = [("dhcpSites", "b", FLAG_MOD_REPLACE),
("dhcpSites", "b", FLAG_MOD_DELETE),
("dhcpSites", "c", FLAG_MOD_ADD)]
self._test_modify_order(start_attrs, mod_attrs)
def test_modify_order_sometimes_inapplicable(self):
# attributes that don't go on a user, but do on a computer,
# which we sometimes change into.
start_attrs = [("objectclass", "user"),
("givenName", "a")]
mod_attrs = [("objectclass", "computer", FLAG_MOD_REPLACE),
("objectclass", "person", FLAG_MOD_DELETE),
("dnsHostName", "b", FLAG_MOD_ADD),
("dnsHostName", "c", FLAG_MOD_REPLACE)]
self._test_modify_order(start_attrs, mod_attrs)
def test_modify_order_account_locality_device(self):
# account, locality, and device all take l (locality name) but
# only device takes owner. We shouldn't be able to change
# objectclass at all.
start_attrs = [("objectclass", "account"),
("l", "a")]
mod_attrs = [("objectclass", ["device", "top"], FLAG_MOD_REPLACE),
("l", "a", FLAG_MOD_DELETE),
("owner", "c", FLAG_MOD_ADD)
]
self._test_modify_order(start_attrs, mod_attrs)
def test_modify_order_container_flags_multivalue(self):
# account, locality, and device all take l (locality name)
# but only device takes owner
start_attrs = [("objectclass", "container"),
("wWWHomePage", "a")]
mod_attrs = [("flags", ["0", "1"], FLAG_MOD_ADD),
("flags", "65355", FLAG_MOD_ADD),
("flags", "65355", FLAG_MOD_DELETE),
("flags", ["2", "101"], FLAG_MOD_REPLACE),
]
self._test_modify_order(start_attrs, mod_attrs)
def test_modify_order_container_flags(self):
#flags should be an integer
start_attrs = [("objectclass", "container")]
mod_attrs = [("flags", "0x6", FLAG_MOD_ADD),
("flags", "5", FLAG_MOD_ADD),
("flags", "101", FLAG_MOD_REPLACE),
("flags", "c", FLAG_MOD_DELETE),
]
self._test_modify_order(start_attrs, mod_attrs)
def test_modify_order_member(self):
name = "modify_order_member_other_group"
dn2 = "cn=%s,%s" % (name, self.base_dn)
m = Message()
m.dn = Dn(self.dsdb, dn2)
self.dsdb.add({"dn": dn2, "objectclass": "group"})
self.addCleanup(self.delete_object, dn2)
start_attrs = [("objectclass", "group"),
("member", dn2)]
mod_attrs = [("member", None, FLAG_MOD_DELETE),
("member", None, FLAG_MOD_REPLACE),
("member", dn2, FLAG_MOD_DELETE),
("member", None, FLAG_MOD_ADD),
]
self._test_modify_order(start_attrs, mod_attrs, ["memberOf"])
def get_dsdb():
dsdb = SamDB(host,
credentials=creds,
session_info=system_session(lp),
lp=lp)
return dsdb
parser = optparse.OptionParser("ldap_modify_order.py [options] <host>")
sambaopts = options.SambaOptions(parser)
parser.add_option_group(sambaopts)
parser.add_option_group(options.VersionOptions(parser))
credopts = options.CredentialsOptions(parser)
parser.add_option_group(credopts)
subunitopts = SubunitOptions(parser)
parser.add_option_group(subunitopts)
parser.add_option("--rewrite-ground-truth", action="store_true",
help="write expected values")
parser.add_option("-v", "--verbose", action="store_true")
opts, args = parser.parse_args()
if len(args) < 1:
parser.print_usage()
sys.exit(1)
host = args[0]
lp = sambaopts.get_loadparm()
creds = credopts.get_credentials(lp)
if "://" not in host:
if os.path.isfile(host):
host = "tdb://%s" % host
else:
host = "ldap://%s" % host
TestProgram(module=__name__, opts=subunitopts)

View File

@ -0,0 +1,34 @@
modify_order_account_locality_device
initial attrs:
objectclass: 'account'
l: 'a'
== result ===[ 3]=======================
ERR_CONSTRAINT_VIOLATION (19)
-- operations ---------------------------
l delete a
owner add c
objectclass replace ['device', 'top']
----------------------------------
owner add c
objectclass replace ['device', 'top']
l delete a
----------------------------------
owner add c
l delete a
objectclass replace ['device', 'top']
----------------------------------
== result ===[ 3]=======================
ERR_OBJECT_CLASS_VIOLATION (65)
-- operations ---------------------------
objectclass replace ['device', 'top']
l delete a
owner add c
----------------------------------
objectclass replace ['device', 'top']
owner add c
l delete a
----------------------------------
l delete a
objectclass replace ['device', 'top']
owner add c
----------------------------------

View File

@ -0,0 +1,134 @@
modify_order_container_flags
initial attrs:
objectclass: 'container'
== result ===[ 6]=======================
flags: [b'101']
objectClass: [b'container', b'top']
-- operations ---------------------------
flags add 0x6
flags add 5
flags delete c
flags replace 101
----------------------------------
flags add 0x6
flags delete c
flags add 5
flags replace 101
----------------------------------
flags add 5
flags add 0x6
flags delete c
flags replace 101
----------------------------------
flags add 5
flags delete c
flags add 0x6
flags replace 101
----------------------------------
flags delete c
flags add 0x6
flags add 5
flags replace 101
----------------------------------
flags delete c
flags add 5
flags add 0x6
flags replace 101
----------------------------------
== result ===[ 6]=======================
flags: [b'5']
objectClass: [b'container', b'top']
-- operations ---------------------------
flags add 0x6
flags replace 101
flags delete c
flags add 5
----------------------------------
flags add 0x6
flags delete c
flags replace 101
flags add 5
----------------------------------
flags replace 101
flags add 0x6
flags delete c
flags add 5
----------------------------------
flags replace 101
flags delete c
flags add 0x6
flags add 5
----------------------------------
flags delete c
flags add 0x6
flags replace 101
flags add 5
----------------------------------
flags delete c
flags replace 101
flags add 0x6
flags add 5
----------------------------------
== result ===[ 12]=======================
ERR_INVALID_ATTRIBUTE_SYNTAX (21)
-- operations ---------------------------
flags add 0x6
flags add 5
flags replace 101
flags delete c
----------------------------------
flags add 0x6
flags replace 101
flags add 5
flags delete c
----------------------------------
flags add 5
flags add 0x6
flags replace 101
flags delete c
----------------------------------
flags add 5
flags replace 101
flags add 0x6
flags delete c
----------------------------------
flags add 5
flags replace 101
flags delete c
flags add 0x6
----------------------------------
flags add 5
flags delete c
flags replace 101
flags add 0x6
----------------------------------
flags replace 101
flags add 0x6
flags add 5
flags delete c
----------------------------------
flags replace 101
flags add 5
flags add 0x6
flags delete c
----------------------------------
flags replace 101
flags add 5
flags delete c
flags add 0x6
----------------------------------
flags replace 101
flags delete c
flags add 5
flags add 0x6
----------------------------------
flags delete c
flags add 5
flags replace 101
flags add 0x6
----------------------------------
flags delete c
flags replace 101
flags add 5
flags add 0x6
----------------------------------

View File

@ -0,0 +1,138 @@
modify_order_container_flags_multivalue
initial attrs:
objectclass: 'container'
wWWHomePage: 'a'
== result ===[ 6]=======================
flags: [b'65355']
objectClass: [b'container', b'top']
wWWHomePage: [b'a']
-- operations ---------------------------
flags add ['0', '1']
flags delete 65355
flags replace ['2', '101']
flags add 65355
----------------------------------
flags add ['0', '1']
flags replace ['2', '101']
flags delete 65355
flags add 65355
----------------------------------
flags delete 65355
flags add ['0', '1']
flags replace ['2', '101']
flags add 65355
----------------------------------
flags delete 65355
flags replace ['2', '101']
flags add ['0', '1']
flags add 65355
----------------------------------
flags replace ['2', '101']
flags add ['0', '1']
flags delete 65355
flags add 65355
----------------------------------
flags replace ['2', '101']
flags delete 65355
flags add ['0', '1']
flags add 65355
----------------------------------
== result ===[ 6]=======================
ERR_ATTRIBUTE_OR_VALUE_EXISTS (20)
-- operations ---------------------------
flags add 65355
flags delete 65355
flags replace ['2', '101']
flags add ['0', '1']
----------------------------------
flags add 65355
flags replace ['2', '101']
flags delete 65355
flags add ['0', '1']
----------------------------------
flags delete 65355
flags add 65355
flags replace ['2', '101']
flags add ['0', '1']
----------------------------------
flags delete 65355
flags replace ['2', '101']
flags add 65355
flags add ['0', '1']
----------------------------------
flags replace ['2', '101']
flags add 65355
flags delete 65355
flags add ['0', '1']
----------------------------------
flags replace ['2', '101']
flags delete 65355
flags add 65355
flags add ['0', '1']
----------------------------------
== result ===[ 6]=======================
ERR_CONSTRAINT_VIOLATION (19)
-- operations ---------------------------
flags add ['0', '1']
flags add 65355
flags delete 65355
flags replace ['2', '101']
----------------------------------
flags add ['0', '1']
flags delete 65355
flags add 65355
flags replace ['2', '101']
----------------------------------
flags add 65355
flags add ['0', '1']
flags delete 65355
flags replace ['2', '101']
----------------------------------
flags add 65355
flags delete 65355
flags add ['0', '1']
flags replace ['2', '101']
----------------------------------
flags delete 65355
flags add ['0', '1']
flags add 65355
flags replace ['2', '101']
----------------------------------
flags delete 65355
flags add 65355
flags add ['0', '1']
flags replace ['2', '101']
----------------------------------
== result ===[ 6]=======================
ERR_NO_SUCH_ATTRIBUTE (16)
-- operations ---------------------------
flags add ['0', '1']
flags add 65355
flags replace ['2', '101']
flags delete 65355
----------------------------------
flags add ['0', '1']
flags replace ['2', '101']
flags add 65355
flags delete 65355
----------------------------------
flags add 65355
flags add ['0', '1']
flags replace ['2', '101']
flags delete 65355
----------------------------------
flags add 65355
flags replace ['2', '101']
flags add ['0', '1']
flags delete 65355
----------------------------------
flags replace ['2', '101']
flags add ['0', '1']
flags add 65355
flags delete 65355
----------------------------------
flags replace ['2', '101']
flags add 65355
flags add ['0', '1']
flags delete 65355
----------------------------------

View File

@ -0,0 +1,34 @@
modify_order_inapplicable
initial attrs:
objectclass: 'user'
givenName: 'a'
== result ===[ 2]=======================
ERR_NO_SUCH_ATTRIBUTE (16)
-- operations ---------------------------
dhcpSites replace b
dhcpSites add c
dhcpSites delete b
----------------------------------
dhcpSites add c
dhcpSites replace b
dhcpSites delete b
----------------------------------
== result ===[ 4]=======================
ERR_OBJECT_CLASS_VIOLATION (65)
-- operations ---------------------------
dhcpSites replace b
dhcpSites delete b
dhcpSites add c
----------------------------------
dhcpSites delete b
dhcpSites replace b
dhcpSites add c
----------------------------------
dhcpSites delete b
dhcpSites add c
dhcpSites replace b
----------------------------------
dhcpSites add c
dhcpSites delete b
dhcpSites replace b
----------------------------------

View File

@ -0,0 +1,190 @@
modify_order_member
initial attrs:
objectclass: 'group'
member: 'cn=modify_order_member_other_group,{base dn}'
== result ===[ 1]=======================
member: [b'CN=ldaptest_modify_order_member_0,CN=Users,{base dn}', b'CN=modify_order_member_other_group,{base dn}']
memberOf: [b'CN=ldaptest_modify_order_member_0,CN=Users,{base dn}']
objectClass: [b'group', b'top']
-- operations ---------------------------
member delete cn=ldaptest_modify_order_member_0,cn=users,{base dn}
member replace cn=ldaptest_modify_order_member_0,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
member add cn=ldaptest_modify_order_member_0,cn=users,{base dn}
----------------------------------
== result ===[ 1]=======================
member: [b'CN=ldaptest_modify_order_member_12,CN=Users,{base dn}', b'CN=modify_order_member_other_group,{base dn}']
memberOf: [b'CN=ldaptest_modify_order_member_12,CN=Users,{base dn}']
objectClass: [b'group', b'top']
-- operations ---------------------------
member delete cn=modify_order_member_other_group,{base dn}
member delete cn=ldaptest_modify_order_member_12,cn=users,{base dn}
member replace cn=ldaptest_modify_order_member_12,cn=users,{base dn}
member add cn=ldaptest_modify_order_member_12,cn=users,{base dn}
----------------------------------
== result ===[ 1]=======================
member: [b'CN=ldaptest_modify_order_member_13,CN=Users,{base dn}']
memberOf: [b'CN=ldaptest_modify_order_member_13,CN=Users,{base dn}']
objectClass: [b'group', b'top']
-- operations ---------------------------
member delete cn=modify_order_member_other_group,{base dn}
member delete cn=ldaptest_modify_order_member_13,cn=users,{base dn}
member add cn=ldaptest_modify_order_member_13,cn=users,{base dn}
member replace cn=ldaptest_modify_order_member_13,cn=users,{base dn}
----------------------------------
== result ===[ 1]=======================
member: [b'CN=ldaptest_modify_order_member_14,CN=Users,{base dn}', b'CN=modify_order_member_other_group,{base dn}']
memberOf: [b'CN=ldaptest_modify_order_member_14,CN=Users,{base dn}']
objectClass: [b'group', b'top']
-- operations ---------------------------
member delete cn=modify_order_member_other_group,{base dn}
member replace cn=ldaptest_modify_order_member_14,cn=users,{base dn}
member delete cn=ldaptest_modify_order_member_14,cn=users,{base dn}
member add cn=ldaptest_modify_order_member_14,cn=users,{base dn}
----------------------------------
== result ===[ 1]=======================
member: [b'CN=ldaptest_modify_order_member_16,CN=Users,{base dn}']
memberOf: [b'CN=ldaptest_modify_order_member_16,CN=Users,{base dn}']
objectClass: [b'group', b'top']
-- operations ---------------------------
member delete cn=modify_order_member_other_group,{base dn}
member add cn=ldaptest_modify_order_member_16,cn=users,{base dn}
member delete cn=ldaptest_modify_order_member_16,cn=users,{base dn}
member replace cn=ldaptest_modify_order_member_16,cn=users,{base dn}
----------------------------------
== result ===[ 1]=======================
member: [b'CN=ldaptest_modify_order_member_19,CN=Users,{base dn}']
memberOf: [b'CN=ldaptest_modify_order_member_19,CN=Users,{base dn}']
objectClass: [b'group', b'top']
-- operations ---------------------------
member add cn=ldaptest_modify_order_member_19,cn=users,{base dn}
member delete cn=ldaptest_modify_order_member_19,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
member replace cn=ldaptest_modify_order_member_19,cn=users,{base dn}
----------------------------------
== result ===[ 1]=======================
member: [b'CN=ldaptest_modify_order_member_2,CN=Users,{base dn}', b'CN=modify_order_member_other_group,{base dn}']
memberOf: [b'CN=ldaptest_modify_order_member_2,CN=Users,{base dn}']
objectClass: [b'group', b'top']
-- operations ---------------------------
member delete cn=ldaptest_modify_order_member_2,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
member replace cn=ldaptest_modify_order_member_2,cn=users,{base dn}
member add cn=ldaptest_modify_order_member_2,cn=users,{base dn}
----------------------------------
== result ===[ 1]=======================
member: [b'CN=ldaptest_modify_order_member_22,CN=Users,{base dn}']
memberOf: [b'CN=ldaptest_modify_order_member_22,CN=Users,{base dn}']
objectClass: [b'group', b'top']
-- operations ---------------------------
member add cn=ldaptest_modify_order_member_22,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
member delete cn=ldaptest_modify_order_member_22,cn=users,{base dn}
member replace cn=ldaptest_modify_order_member_22,cn=users,{base dn}
----------------------------------
== result ===[ 1]=======================
member: [b'CN=ldaptest_modify_order_member_3,CN=Users,{base dn}']
memberOf: [b'CN=ldaptest_modify_order_member_3,CN=Users,{base dn}']
objectClass: [b'group', b'top']
-- operations ---------------------------
member delete cn=ldaptest_modify_order_member_3,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
member add cn=ldaptest_modify_order_member_3,cn=users,{base dn}
member replace cn=ldaptest_modify_order_member_3,cn=users,{base dn}
----------------------------------
== result ===[ 1]=======================
member: [b'CN=ldaptest_modify_order_member_5,CN=Users,{base dn}']
memberOf: [b'CN=ldaptest_modify_order_member_5,CN=Users,{base dn}']
objectClass: [b'group', b'top']
-- operations ---------------------------
member delete cn=ldaptest_modify_order_member_5,cn=users,{base dn}
member add cn=ldaptest_modify_order_member_5,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
member replace cn=ldaptest_modify_order_member_5,cn=users,{base dn}
----------------------------------
== result ===[ 1]=======================
member: [b'CN=ldaptest_modify_order_member_6,CN=Users,{base dn}', b'CN=modify_order_member_other_group,{base dn}']
memberOf: [b'CN=ldaptest_modify_order_member_6,CN=Users,{base dn}']
objectClass: [b'group', b'top']
-- operations ---------------------------
member replace cn=ldaptest_modify_order_member_6,cn=users,{base dn}
member delete cn=ldaptest_modify_order_member_6,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
member add cn=ldaptest_modify_order_member_6,cn=users,{base dn}
----------------------------------
== result ===[ 1]=======================
member: [b'CN=ldaptest_modify_order_member_8,CN=Users,{base dn}', b'CN=modify_order_member_other_group,{base dn}']
memberOf: [b'CN=ldaptest_modify_order_member_8,CN=Users,{base dn}']
objectClass: [b'group', b'top']
-- operations ---------------------------
member replace cn=ldaptest_modify_order_member_8,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
member delete cn=ldaptest_modify_order_member_8,cn=users,{base dn}
member add cn=ldaptest_modify_order_member_8,cn=users,{base dn}
----------------------------------
== result ===[ 6]=======================
objectClass: [b'group', b'top']
-- operations ---------------------------
member delete cn=ldaptest_modify_order_member_1,cn=users,{base dn}
member replace cn=ldaptest_modify_order_member_1,cn=users,{base dn}
member add cn=ldaptest_modify_order_member_1,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
----------------------------------
member delete cn=ldaptest_modify_order_member_4,cn=users,{base dn}
member add cn=ldaptest_modify_order_member_4,cn=users,{base dn}
member replace cn=ldaptest_modify_order_member_4,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
----------------------------------
member replace cn=ldaptest_modify_order_member_7,cn=users,{base dn}
member delete cn=ldaptest_modify_order_member_7,cn=users,{base dn}
member add cn=ldaptest_modify_order_member_7,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
----------------------------------
member replace cn=ldaptest_modify_order_member_10,cn=users,{base dn}
member add cn=ldaptest_modify_order_member_10,cn=users,{base dn}
member delete cn=ldaptest_modify_order_member_10,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
----------------------------------
member add cn=ldaptest_modify_order_member_18,cn=users,{base dn}
member delete cn=ldaptest_modify_order_member_18,cn=users,{base dn}
member replace cn=ldaptest_modify_order_member_18,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
----------------------------------
member add cn=ldaptest_modify_order_member_20,cn=users,{base dn}
member replace cn=ldaptest_modify_order_member_20,cn=users,{base dn}
member delete cn=ldaptest_modify_order_member_20,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
----------------------------------
== result ===[ 6]=======================
ERR_UNWILLING_TO_PERFORM (53)
-- operations ---------------------------
member replace cn=ldaptest_modify_order_member_9,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
member add cn=ldaptest_modify_order_member_9,cn=users,{base dn}
member delete cn=ldaptest_modify_order_member_9,cn=users,{base dn}
----------------------------------
member replace cn=ldaptest_modify_order_member_11,cn=users,{base dn}
member add cn=ldaptest_modify_order_member_11,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
member delete cn=ldaptest_modify_order_member_11,cn=users,{base dn}
----------------------------------
member delete cn=modify_order_member_other_group,{base dn}
member replace cn=ldaptest_modify_order_member_15,cn=users,{base dn}
member add cn=ldaptest_modify_order_member_15,cn=users,{base dn}
member delete cn=ldaptest_modify_order_member_15,cn=users,{base dn}
----------------------------------
member delete cn=modify_order_member_other_group,{base dn}
member add cn=ldaptest_modify_order_member_17,cn=users,{base dn}
member replace cn=ldaptest_modify_order_member_17,cn=users,{base dn}
member delete cn=ldaptest_modify_order_member_17,cn=users,{base dn}
----------------------------------
member add cn=ldaptest_modify_order_member_21,cn=users,{base dn}
member replace cn=ldaptest_modify_order_member_21,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
member delete cn=ldaptest_modify_order_member_21,cn=users,{base dn}
----------------------------------
member add cn=ldaptest_modify_order_member_23,cn=users,{base dn}
member delete cn=modify_order_member_other_group,{base dn}
member replace cn=ldaptest_modify_order_member_23,cn=users,{base dn}
member delete cn=ldaptest_modify_order_member_23,cn=users,{base dn}
----------------------------------

View File

@ -0,0 +1,143 @@
modify_order_mixed
initial attrs:
objectclass: 'user'
carLicense: ['1', '2', '3']
otherTelephone: '123'
== result ===[ 6]=======================
carLicense: [b'1', b'2', b'3', b'4']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
-- operations ---------------------------
carLicense delete 3
carLicense add 4
otherTelephone replace 4
otherTelephone delete 123
----------------------------------
carLicense delete 3
otherTelephone replace 4
carLicense add 4
otherTelephone delete 123
----------------------------------
carLicense delete 3
otherTelephone replace 4
otherTelephone delete 123
carLicense add 4
----------------------------------
otherTelephone replace 4
carLicense delete 3
carLicense add 4
otherTelephone delete 123
----------------------------------
otherTelephone replace 4
carLicense delete 3
otherTelephone delete 123
carLicense add 4
----------------------------------
otherTelephone replace 4
otherTelephone delete 123
carLicense delete 3
carLicense add 4
----------------------------------
== result ===[ 6]=======================
carLicense: [b'1', b'2', b'3', b'4']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
otherTelephone: [b'4']
-- operations ---------------------------
carLicense delete 3
carLicense add 4
otherTelephone delete 123
otherTelephone replace 4
----------------------------------
carLicense delete 3
otherTelephone delete 123
carLicense add 4
otherTelephone replace 4
----------------------------------
carLicense delete 3
otherTelephone delete 123
otherTelephone replace 4
carLicense add 4
----------------------------------
otherTelephone delete 123
carLicense delete 3
carLicense add 4
otherTelephone replace 4
----------------------------------
otherTelephone delete 123
carLicense delete 3
otherTelephone replace 4
carLicense add 4
----------------------------------
otherTelephone delete 123
otherTelephone replace 4
carLicense delete 3
carLicense add 4
----------------------------------
== result ===[ 6]=======================
carLicense: [b'1', b'2']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
-- operations ---------------------------
carLicense add 4
carLicense delete 3
otherTelephone replace 4
otherTelephone delete 123
----------------------------------
carLicense add 4
otherTelephone replace 4
carLicense delete 3
otherTelephone delete 123
----------------------------------
carLicense add 4
otherTelephone replace 4
otherTelephone delete 123
carLicense delete 3
----------------------------------
otherTelephone replace 4
carLicense add 4
carLicense delete 3
otherTelephone delete 123
----------------------------------
otherTelephone replace 4
carLicense add 4
otherTelephone delete 123
carLicense delete 3
----------------------------------
otherTelephone replace 4
otherTelephone delete 123
carLicense add 4
carLicense delete 3
----------------------------------
== result ===[ 6]=======================
carLicense: [b'1', b'2']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
otherTelephone: [b'4']
-- operations ---------------------------
carLicense add 4
carLicense delete 3
otherTelephone delete 123
otherTelephone replace 4
----------------------------------
carLicense add 4
otherTelephone delete 123
carLicense delete 3
otherTelephone replace 4
----------------------------------
carLicense add 4
otherTelephone delete 123
otherTelephone replace 4
carLicense delete 3
----------------------------------
otherTelephone delete 123
carLicense add 4
carLicense delete 3
otherTelephone replace 4
----------------------------------
otherTelephone delete 123
carLicense add 4
otherTelephone replace 4
carLicense delete 3
----------------------------------
otherTelephone delete 123
otherTelephone replace 4
carLicense add 4
carLicense delete 3
----------------------------------

View File

@ -0,0 +1,143 @@
modify_order_mixed2
initial attrs:
objectclass: 'user'
carLicense: ['1', '2', '3']
ipPhone: '123'
== result ===[ 6]=======================
carLicense: [b'1', b'2', b'3', b'4']
ipPhone: [b'4']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
-- operations ---------------------------
carLicense delete 3
carLicense add 4
ipPhone delete 123
ipPhone replace 4
----------------------------------
carLicense delete 3
ipPhone delete 123
carLicense add 4
ipPhone replace 4
----------------------------------
carLicense delete 3
ipPhone delete 123
ipPhone replace 4
carLicense add 4
----------------------------------
ipPhone delete 123
carLicense delete 3
carLicense add 4
ipPhone replace 4
----------------------------------
ipPhone delete 123
carLicense delete 3
ipPhone replace 4
carLicense add 4
----------------------------------
ipPhone delete 123
ipPhone replace 4
carLicense delete 3
carLicense add 4
----------------------------------
== result ===[ 6]=======================
carLicense: [b'1', b'2', b'3', b'4']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
-- operations ---------------------------
carLicense delete 3
carLicense add 4
ipPhone replace 4
ipPhone delete 123
----------------------------------
carLicense delete 3
ipPhone replace 4
carLicense add 4
ipPhone delete 123
----------------------------------
carLicense delete 3
ipPhone replace 4
ipPhone delete 123
carLicense add 4
----------------------------------
ipPhone replace 4
carLicense delete 3
carLicense add 4
ipPhone delete 123
----------------------------------
ipPhone replace 4
carLicense delete 3
ipPhone delete 123
carLicense add 4
----------------------------------
ipPhone replace 4
ipPhone delete 123
carLicense delete 3
carLicense add 4
----------------------------------
== result ===[ 6]=======================
carLicense: [b'1', b'2']
ipPhone: [b'4']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
-- operations ---------------------------
carLicense add 4
carLicense delete 3
ipPhone delete 123
ipPhone replace 4
----------------------------------
carLicense add 4
ipPhone delete 123
carLicense delete 3
ipPhone replace 4
----------------------------------
carLicense add 4
ipPhone delete 123
ipPhone replace 4
carLicense delete 3
----------------------------------
ipPhone delete 123
carLicense add 4
carLicense delete 3
ipPhone replace 4
----------------------------------
ipPhone delete 123
carLicense add 4
ipPhone replace 4
carLicense delete 3
----------------------------------
ipPhone delete 123
ipPhone replace 4
carLicense add 4
carLicense delete 3
----------------------------------
== result ===[ 6]=======================
carLicense: [b'1', b'2']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
-- operations ---------------------------
carLicense add 4
carLicense delete 3
ipPhone replace 4
ipPhone delete 123
----------------------------------
carLicense add 4
ipPhone replace 4
carLicense delete 3
ipPhone delete 123
----------------------------------
carLicense add 4
ipPhone replace 4
ipPhone delete 123
carLicense delete 3
----------------------------------
ipPhone replace 4
carLicense add 4
carLicense delete 3
ipPhone delete 123
----------------------------------
ipPhone replace 4
carLicense add 4
ipPhone delete 123
carLicense delete 3
----------------------------------
ipPhone replace 4
ipPhone delete 123
carLicense add 4
carLicense delete 3
----------------------------------

View File

@ -0,0 +1,35 @@
modify_order_objectclass
initial attrs:
objectclass: 'user'
otherTelephone: '123'
== result ===[ 2]=======================
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
otherTelephone: [b'123']
-- operations ---------------------------
objectclass replace computer
objectclass delete user
objectclass delete person
----------------------------------
objectclass delete user
objectclass replace computer
objectclass delete person
----------------------------------
== result ===[ 4]=======================
ERR_OBJECT_CLASS_VIOLATION (65)
-- operations ---------------------------
objectclass replace computer
objectclass delete person
objectclass delete user
----------------------------------
objectclass delete user
objectclass delete person
objectclass replace computer
----------------------------------
objectclass delete person
objectclass replace computer
objectclass delete user
----------------------------------
objectclass delete person
objectclass delete user
objectclass replace computer
----------------------------------

View File

@ -0,0 +1,735 @@
modify_order_objectclass2
initial attrs:
objectclass: 'user'
== result ===[ 24]=======================
objectClass: [b'inetOrgPerson', b'organizationalPerson', b'person', b'top', b'user']
-- operations ---------------------------
objectclass replace computer
objectclass add user
objectclass replace attributeSchema
objectclass delete person
objectclass add inetOrgPerson
----------------------------------
objectclass replace computer
objectclass add user
objectclass delete person
objectclass replace attributeSchema
objectclass add inetOrgPerson
----------------------------------
objectclass replace computer
objectclass replace attributeSchema
objectclass add user
objectclass delete person
objectclass add inetOrgPerson
----------------------------------
objectclass replace computer
objectclass replace attributeSchema
objectclass delete person
objectclass add user
objectclass add inetOrgPerson
----------------------------------
objectclass replace computer
objectclass delete person
objectclass add user
objectclass replace attributeSchema
objectclass add inetOrgPerson
----------------------------------
objectclass replace computer
objectclass delete person
objectclass replace attributeSchema
objectclass add user
objectclass add inetOrgPerson
----------------------------------
objectclass add user
objectclass replace computer
objectclass replace attributeSchema
objectclass delete person
objectclass add inetOrgPerson
----------------------------------
objectclass add user
objectclass replace computer
objectclass delete person
objectclass replace attributeSchema
objectclass add inetOrgPerson
----------------------------------
objectclass add user
objectclass replace attributeSchema
objectclass replace computer
objectclass delete person
objectclass add inetOrgPerson
----------------------------------
objectclass add user
objectclass replace attributeSchema
objectclass delete person
objectclass replace computer
objectclass add inetOrgPerson
----------------------------------
objectclass add user
objectclass delete person
objectclass replace computer
objectclass replace attributeSchema
objectclass add inetOrgPerson
----------------------------------
objectclass add user
objectclass delete person
objectclass replace attributeSchema
objectclass replace computer
objectclass add inetOrgPerson
----------------------------------
objectclass replace attributeSchema
objectclass replace computer
objectclass add user
objectclass delete person
objectclass add inetOrgPerson
----------------------------------
objectclass replace attributeSchema
objectclass replace computer
objectclass delete person
objectclass add user
objectclass add inetOrgPerson
----------------------------------
objectclass replace attributeSchema
objectclass add user
objectclass replace computer
objectclass delete person
objectclass add inetOrgPerson
----------------------------------
objectclass replace attributeSchema
objectclass add user
objectclass delete person
objectclass replace computer
objectclass add inetOrgPerson
----------------------------------
objectclass replace attributeSchema
objectclass delete person
objectclass replace computer
objectclass add user
objectclass add inetOrgPerson
----------------------------------
objectclass replace attributeSchema
objectclass delete person
objectclass add user
objectclass replace computer
objectclass add inetOrgPerson
----------------------------------
objectclass delete person
objectclass replace computer
objectclass add user
objectclass replace attributeSchema
objectclass add inetOrgPerson
----------------------------------
objectclass delete person
objectclass replace computer
objectclass replace attributeSchema
objectclass add user
objectclass add inetOrgPerson
----------------------------------
objectclass delete person
objectclass add user
objectclass replace computer
objectclass replace attributeSchema
objectclass add inetOrgPerson
----------------------------------
objectclass delete person
objectclass add user
objectclass replace attributeSchema
objectclass replace computer
objectclass add inetOrgPerson
----------------------------------
objectclass delete person
objectclass replace attributeSchema
objectclass replace computer
objectclass add user
objectclass add inetOrgPerson
----------------------------------
objectclass delete person
objectclass replace attributeSchema
objectclass add user
objectclass replace computer
objectclass add inetOrgPerson
----------------------------------
== result ===[ 24]=======================
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
-- operations ---------------------------
objectclass replace computer
objectclass add user
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass delete person
----------------------------------
objectclass replace computer
objectclass add user
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass delete person
----------------------------------
objectclass replace computer
objectclass replace attributeSchema
objectclass add user
objectclass add inetOrgPerson
objectclass delete person
----------------------------------
objectclass replace computer
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass add user
objectclass delete person
----------------------------------
objectclass replace computer
objectclass add inetOrgPerson
objectclass add user
objectclass replace attributeSchema
objectclass delete person
----------------------------------
objectclass replace computer
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass add user
objectclass delete person
----------------------------------
objectclass add user
objectclass replace computer
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass delete person
----------------------------------
objectclass add user
objectclass replace computer
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass delete person
----------------------------------
objectclass add user
objectclass replace attributeSchema
objectclass replace computer
objectclass add inetOrgPerson
objectclass delete person
----------------------------------
objectclass add user
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass replace computer
objectclass delete person
----------------------------------
objectclass add user
objectclass add inetOrgPerson
objectclass replace computer
objectclass replace attributeSchema
objectclass delete person
----------------------------------
objectclass add user
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass replace computer
objectclass delete person
----------------------------------
objectclass replace attributeSchema
objectclass replace computer
objectclass add user
objectclass add inetOrgPerson
objectclass delete person
----------------------------------
objectclass replace attributeSchema
objectclass replace computer
objectclass add inetOrgPerson
objectclass add user
objectclass delete person
----------------------------------
objectclass replace attributeSchema
objectclass add user
objectclass replace computer
objectclass add inetOrgPerson
objectclass delete person
----------------------------------
objectclass replace attributeSchema
objectclass add user
objectclass add inetOrgPerson
objectclass replace computer
objectclass delete person
----------------------------------
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass replace computer
objectclass add user
objectclass delete person
----------------------------------
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass add user
objectclass replace computer
objectclass delete person
----------------------------------
objectclass add inetOrgPerson
objectclass replace computer
objectclass add user
objectclass replace attributeSchema
objectclass delete person
----------------------------------
objectclass add inetOrgPerson
objectclass replace computer
objectclass replace attributeSchema
objectclass add user
objectclass delete person
----------------------------------
objectclass add inetOrgPerson
objectclass add user
objectclass replace computer
objectclass replace attributeSchema
objectclass delete person
----------------------------------
objectclass add inetOrgPerson
objectclass add user
objectclass replace attributeSchema
objectclass replace computer
objectclass delete person
----------------------------------
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass replace computer
objectclass add user
objectclass delete person
----------------------------------
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass add user
objectclass replace computer
objectclass delete person
----------------------------------
== result ===[ 24]=======================
ERR_ATTRIBUTE_OR_VALUE_EXISTS (20)
-- operations ---------------------------
objectclass replace computer
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass delete person
objectclass add user
----------------------------------
objectclass replace computer
objectclass replace attributeSchema
objectclass delete person
objectclass add inetOrgPerson
objectclass add user
----------------------------------
objectclass replace computer
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass delete person
objectclass add user
----------------------------------
objectclass replace computer
objectclass add inetOrgPerson
objectclass delete person
objectclass replace attributeSchema
objectclass add user
----------------------------------
objectclass replace computer
objectclass delete person
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass add user
----------------------------------
objectclass replace computer
objectclass delete person
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass add user
----------------------------------
objectclass replace attributeSchema
objectclass replace computer
objectclass add inetOrgPerson
objectclass delete person
objectclass add user
----------------------------------
objectclass replace attributeSchema
objectclass replace computer
objectclass delete person
objectclass add inetOrgPerson
objectclass add user
----------------------------------
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass replace computer
objectclass delete person
objectclass add user
----------------------------------
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass delete person
objectclass replace computer
objectclass add user
----------------------------------
objectclass replace attributeSchema
objectclass delete person
objectclass replace computer
objectclass add inetOrgPerson
objectclass add user
----------------------------------
objectclass replace attributeSchema
objectclass delete person
objectclass add inetOrgPerson
objectclass replace computer
objectclass add user
----------------------------------
objectclass add inetOrgPerson
objectclass replace computer
objectclass replace attributeSchema
objectclass delete person
objectclass add user
----------------------------------
objectclass add inetOrgPerson
objectclass replace computer
objectclass delete person
objectclass replace attributeSchema
objectclass add user
----------------------------------
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass replace computer
objectclass delete person
objectclass add user
----------------------------------
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass delete person
objectclass replace computer
objectclass add user
----------------------------------
objectclass add inetOrgPerson
objectclass delete person
objectclass replace computer
objectclass replace attributeSchema
objectclass add user
----------------------------------
objectclass add inetOrgPerson
objectclass delete person
objectclass replace attributeSchema
objectclass replace computer
objectclass add user
----------------------------------
objectclass delete person
objectclass replace computer
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass add user
----------------------------------
objectclass delete person
objectclass replace computer
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass add user
----------------------------------
objectclass delete person
objectclass replace attributeSchema
objectclass replace computer
objectclass add inetOrgPerson
objectclass add user
----------------------------------
objectclass delete person
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass replace computer
objectclass add user
----------------------------------
objectclass delete person
objectclass add inetOrgPerson
objectclass replace computer
objectclass replace attributeSchema
objectclass add user
----------------------------------
objectclass delete person
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass replace computer
objectclass add user
----------------------------------
== result ===[ 48]=======================
ERR_OBJECT_CLASS_VIOLATION (65)
-- operations ---------------------------
objectclass replace computer
objectclass add user
objectclass add inetOrgPerson
objectclass delete person
objectclass replace attributeSchema
----------------------------------
objectclass replace computer
objectclass add user
objectclass delete person
objectclass add inetOrgPerson
objectclass replace attributeSchema
----------------------------------
objectclass replace computer
objectclass add inetOrgPerson
objectclass add user
objectclass delete person
objectclass replace attributeSchema
----------------------------------
objectclass replace computer
objectclass add inetOrgPerson
objectclass delete person
objectclass add user
objectclass replace attributeSchema
----------------------------------
objectclass replace computer
objectclass delete person
objectclass add user
objectclass add inetOrgPerson
objectclass replace attributeSchema
----------------------------------
objectclass replace computer
objectclass delete person
objectclass add inetOrgPerson
objectclass add user
objectclass replace attributeSchema
----------------------------------
objectclass add user
objectclass replace computer
objectclass add inetOrgPerson
objectclass delete person
objectclass replace attributeSchema
----------------------------------
objectclass add user
objectclass replace computer
objectclass delete person
objectclass add inetOrgPerson
objectclass replace attributeSchema
----------------------------------
objectclass add user
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass delete person
objectclass replace computer
----------------------------------
objectclass add user
objectclass replace attributeSchema
objectclass delete person
objectclass add inetOrgPerson
objectclass replace computer
----------------------------------
objectclass add user
objectclass add inetOrgPerson
objectclass replace computer
objectclass delete person
objectclass replace attributeSchema
----------------------------------
objectclass add user
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass delete person
objectclass replace computer
----------------------------------
objectclass add user
objectclass add inetOrgPerson
objectclass delete person
objectclass replace computer
objectclass replace attributeSchema
----------------------------------
objectclass add user
objectclass add inetOrgPerson
objectclass delete person
objectclass replace attributeSchema
objectclass replace computer
----------------------------------
objectclass add user
objectclass delete person
objectclass replace computer
objectclass add inetOrgPerson
objectclass replace attributeSchema
----------------------------------
objectclass add user
objectclass delete person
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass replace computer
----------------------------------
objectclass add user
objectclass delete person
objectclass add inetOrgPerson
objectclass replace computer
objectclass replace attributeSchema
----------------------------------
objectclass add user
objectclass delete person
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass replace computer
----------------------------------
objectclass replace attributeSchema
objectclass add user
objectclass add inetOrgPerson
objectclass delete person
objectclass replace computer
----------------------------------
objectclass replace attributeSchema
objectclass add user
objectclass delete person
objectclass add inetOrgPerson
objectclass replace computer
----------------------------------
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass add user
objectclass delete person
objectclass replace computer
----------------------------------
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass delete person
objectclass add user
objectclass replace computer
----------------------------------
objectclass replace attributeSchema
objectclass delete person
objectclass add user
objectclass add inetOrgPerson
objectclass replace computer
----------------------------------
objectclass replace attributeSchema
objectclass delete person
objectclass add inetOrgPerson
objectclass add user
objectclass replace computer
----------------------------------
objectclass add inetOrgPerson
objectclass replace computer
objectclass add user
objectclass delete person
objectclass replace attributeSchema
----------------------------------
objectclass add inetOrgPerson
objectclass replace computer
objectclass delete person
objectclass add user
objectclass replace attributeSchema
----------------------------------
objectclass add inetOrgPerson
objectclass add user
objectclass replace computer
objectclass delete person
objectclass replace attributeSchema
----------------------------------
objectclass add inetOrgPerson
objectclass add user
objectclass replace attributeSchema
objectclass delete person
objectclass replace computer
----------------------------------
objectclass add inetOrgPerson
objectclass add user
objectclass delete person
objectclass replace computer
objectclass replace attributeSchema
----------------------------------
objectclass add inetOrgPerson
objectclass add user
objectclass delete person
objectclass replace attributeSchema
objectclass replace computer
----------------------------------
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass add user
objectclass delete person
objectclass replace computer
----------------------------------
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass delete person
objectclass add user
objectclass replace computer
----------------------------------
objectclass add inetOrgPerson
objectclass delete person
objectclass replace computer
objectclass add user
objectclass replace attributeSchema
----------------------------------
objectclass add inetOrgPerson
objectclass delete person
objectclass add user
objectclass replace computer
objectclass replace attributeSchema
----------------------------------
objectclass add inetOrgPerson
objectclass delete person
objectclass add user
objectclass replace attributeSchema
objectclass replace computer
----------------------------------
objectclass add inetOrgPerson
objectclass delete person
objectclass replace attributeSchema
objectclass add user
objectclass replace computer
----------------------------------
objectclass delete person
objectclass replace computer
objectclass add user
objectclass add inetOrgPerson
objectclass replace attributeSchema
----------------------------------
objectclass delete person
objectclass replace computer
objectclass add inetOrgPerson
objectclass add user
objectclass replace attributeSchema
----------------------------------
objectclass delete person
objectclass add user
objectclass replace computer
objectclass add inetOrgPerson
objectclass replace attributeSchema
----------------------------------
objectclass delete person
objectclass add user
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass replace computer
----------------------------------
objectclass delete person
objectclass add user
objectclass add inetOrgPerson
objectclass replace computer
objectclass replace attributeSchema
----------------------------------
objectclass delete person
objectclass add user
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass replace computer
----------------------------------
objectclass delete person
objectclass replace attributeSchema
objectclass add user
objectclass add inetOrgPerson
objectclass replace computer
----------------------------------
objectclass delete person
objectclass replace attributeSchema
objectclass add inetOrgPerson
objectclass add user
objectclass replace computer
----------------------------------
objectclass delete person
objectclass add inetOrgPerson
objectclass replace computer
objectclass add user
objectclass replace attributeSchema
----------------------------------
objectclass delete person
objectclass add inetOrgPerson
objectclass add user
objectclass replace computer
objectclass replace attributeSchema
----------------------------------
objectclass delete person
objectclass add inetOrgPerson
objectclass add user
objectclass replace attributeSchema
objectclass replace computer
----------------------------------
objectclass delete person
objectclass add inetOrgPerson
objectclass replace attributeSchema
objectclass add user
objectclass replace computer
----------------------------------

View File

@ -0,0 +1,740 @@
modify_order_singlevalue
initial attrs:
objectclass: 'user'
givenName: 'a'
== result ===[ 24]=======================
givenName: [b'a']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
-- operations ---------------------------
givenName replace ['b', 'a']
givenName delete b
givenName delete a
givenName add c
givenName replace a
----------------------------------
givenName replace ['b', 'a']
givenName delete b
givenName add c
givenName delete a
givenName replace a
----------------------------------
givenName replace ['b', 'a']
givenName delete a
givenName delete b
givenName add c
givenName replace a
----------------------------------
givenName replace ['b', 'a']
givenName delete a
givenName add c
givenName delete b
givenName replace a
----------------------------------
givenName replace ['b', 'a']
givenName add c
givenName delete b
givenName delete a
givenName replace a
----------------------------------
givenName replace ['b', 'a']
givenName add c
givenName delete a
givenName delete b
givenName replace a
----------------------------------
givenName delete b
givenName replace ['b', 'a']
givenName delete a
givenName add c
givenName replace a
----------------------------------
givenName delete b
givenName replace ['b', 'a']
givenName add c
givenName delete a
givenName replace a
----------------------------------
givenName delete b
givenName delete a
givenName replace ['b', 'a']
givenName add c
givenName replace a
----------------------------------
givenName delete b
givenName delete a
givenName add c
givenName replace ['b', 'a']
givenName replace a
----------------------------------
givenName delete b
givenName add c
givenName replace ['b', 'a']
givenName delete a
givenName replace a
----------------------------------
givenName delete b
givenName add c
givenName delete a
givenName replace ['b', 'a']
givenName replace a
----------------------------------
givenName delete a
givenName replace ['b', 'a']
givenName delete b
givenName add c
givenName replace a
----------------------------------
givenName delete a
givenName replace ['b', 'a']
givenName add c
givenName delete b
givenName replace a
----------------------------------
givenName delete a
givenName delete b
givenName replace ['b', 'a']
givenName add c
givenName replace a
----------------------------------
givenName delete a
givenName delete b
givenName add c
givenName replace ['b', 'a']
givenName replace a
----------------------------------
givenName delete a
givenName add c
givenName replace ['b', 'a']
givenName delete b
givenName replace a
----------------------------------
givenName delete a
givenName add c
givenName delete b
givenName replace ['b', 'a']
givenName replace a
----------------------------------
givenName add c
givenName replace ['b', 'a']
givenName delete b
givenName delete a
givenName replace a
----------------------------------
givenName add c
givenName replace ['b', 'a']
givenName delete a
givenName delete b
givenName replace a
----------------------------------
givenName add c
givenName delete b
givenName replace ['b', 'a']
givenName delete a
givenName replace a
----------------------------------
givenName add c
givenName delete b
givenName delete a
givenName replace ['b', 'a']
givenName replace a
----------------------------------
givenName add c
givenName delete a
givenName replace ['b', 'a']
givenName delete b
givenName replace a
----------------------------------
givenName add c
givenName delete a
givenName delete b
givenName replace ['b', 'a']
givenName replace a
----------------------------------
== result ===[ 24]=======================
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
-- operations ---------------------------
givenName replace a
givenName replace ['b', 'a']
givenName delete b
givenName add c
givenName delete a
----------------------------------
givenName replace a
givenName replace ['b', 'a']
givenName add c
givenName delete b
givenName delete a
----------------------------------
givenName replace a
givenName delete b
givenName replace ['b', 'a']
givenName add c
givenName delete a
----------------------------------
givenName replace a
givenName delete b
givenName add c
givenName replace ['b', 'a']
givenName delete a
----------------------------------
givenName replace a
givenName add c
givenName replace ['b', 'a']
givenName delete b
givenName delete a
----------------------------------
givenName replace a
givenName add c
givenName delete b
givenName replace ['b', 'a']
givenName delete a
----------------------------------
givenName replace ['b', 'a']
givenName replace a
givenName delete b
givenName add c
givenName delete a
----------------------------------
givenName replace ['b', 'a']
givenName replace a
givenName add c
givenName delete b
givenName delete a
----------------------------------
givenName replace ['b', 'a']
givenName delete b
givenName replace a
givenName add c
givenName delete a
----------------------------------
givenName replace ['b', 'a']
givenName delete b
givenName add c
givenName replace a
givenName delete a
----------------------------------
givenName replace ['b', 'a']
givenName add c
givenName replace a
givenName delete b
givenName delete a
----------------------------------
givenName replace ['b', 'a']
givenName add c
givenName delete b
givenName replace a
givenName delete a
----------------------------------
givenName delete b
givenName replace a
givenName replace ['b', 'a']
givenName add c
givenName delete a
----------------------------------
givenName delete b
givenName replace a
givenName add c
givenName replace ['b', 'a']
givenName delete a
----------------------------------
givenName delete b
givenName replace ['b', 'a']
givenName replace a
givenName add c
givenName delete a
----------------------------------
givenName delete b
givenName replace ['b', 'a']
givenName add c
givenName replace a
givenName delete a
----------------------------------
givenName delete b
givenName add c
givenName replace a
givenName replace ['b', 'a']
givenName delete a
----------------------------------
givenName delete b
givenName add c
givenName replace ['b', 'a']
givenName replace a
givenName delete a
----------------------------------
givenName add c
givenName replace a
givenName replace ['b', 'a']
givenName delete b
givenName delete a
----------------------------------
givenName add c
givenName replace a
givenName delete b
givenName replace ['b', 'a']
givenName delete a
----------------------------------
givenName add c
givenName replace ['b', 'a']
givenName replace a
givenName delete b
givenName delete a
----------------------------------
givenName add c
givenName replace ['b', 'a']
givenName delete b
givenName replace a
givenName delete a
----------------------------------
givenName add c
givenName delete b
givenName replace a
givenName replace ['b', 'a']
givenName delete a
----------------------------------
givenName add c
givenName delete b
givenName replace ['b', 'a']
givenName replace a
givenName delete a
----------------------------------
== result ===[ 24]=======================
ERR_ATTRIBUTE_OR_VALUE_EXISTS (20)
-- operations ---------------------------
givenName replace a
givenName replace ['b', 'a']
givenName delete b
givenName delete a
givenName add c
----------------------------------
givenName replace a
givenName replace ['b', 'a']
givenName delete a
givenName delete b
givenName add c
----------------------------------
givenName replace a
givenName delete b
givenName replace ['b', 'a']
givenName delete a
givenName add c
----------------------------------
givenName replace a
givenName delete b
givenName delete a
givenName replace ['b', 'a']
givenName add c
----------------------------------
givenName replace a
givenName delete a
givenName replace ['b', 'a']
givenName delete b
givenName add c
----------------------------------
givenName replace a
givenName delete a
givenName delete b
givenName replace ['b', 'a']
givenName add c
----------------------------------
givenName replace ['b', 'a']
givenName replace a
givenName delete b
givenName delete a
givenName add c
----------------------------------
givenName replace ['b', 'a']
givenName replace a
givenName delete a
givenName delete b
givenName add c
----------------------------------
givenName replace ['b', 'a']
givenName delete b
givenName replace a
givenName delete a
givenName add c
----------------------------------
givenName replace ['b', 'a']
givenName delete b
givenName delete a
givenName replace a
givenName add c
----------------------------------
givenName replace ['b', 'a']
givenName delete a
givenName replace a
givenName delete b
givenName add c
----------------------------------
givenName replace ['b', 'a']
givenName delete a
givenName delete b
givenName replace a
givenName add c
----------------------------------
givenName delete b
givenName replace a
givenName replace ['b', 'a']
givenName delete a
givenName add c
----------------------------------
givenName delete b
givenName replace a
givenName delete a
givenName replace ['b', 'a']
givenName add c
----------------------------------
givenName delete b
givenName replace ['b', 'a']
givenName replace a
givenName delete a
givenName add c
----------------------------------
givenName delete b
givenName replace ['b', 'a']
givenName delete a
givenName replace a
givenName add c
----------------------------------
givenName delete b
givenName delete a
givenName replace a
givenName replace ['b', 'a']
givenName add c
----------------------------------
givenName delete b
givenName delete a
givenName replace ['b', 'a']
givenName replace a
givenName add c
----------------------------------
givenName delete a
givenName replace a
givenName replace ['b', 'a']
givenName delete b
givenName add c
----------------------------------
givenName delete a
givenName replace a
givenName delete b
givenName replace ['b', 'a']
givenName add c
----------------------------------
givenName delete a
givenName replace ['b', 'a']
givenName replace a
givenName delete b
givenName add c
----------------------------------
givenName delete a
givenName replace ['b', 'a']
givenName delete b
givenName replace a
givenName add c
----------------------------------
givenName delete a
givenName delete b
givenName replace a
givenName replace ['b', 'a']
givenName add c
----------------------------------
givenName delete a
givenName delete b
givenName replace ['b', 'a']
givenName replace a
givenName add c
----------------------------------
== result ===[ 24]=======================
ERR_CONSTRAINT_VIOLATION (19)
-- operations ---------------------------
givenName replace a
givenName delete b
givenName delete a
givenName add c
givenName replace ['b', 'a']
----------------------------------
givenName replace a
givenName delete b
givenName add c
givenName delete a
givenName replace ['b', 'a']
----------------------------------
givenName replace a
givenName delete a
givenName delete b
givenName add c
givenName replace ['b', 'a']
----------------------------------
givenName replace a
givenName delete a
givenName add c
givenName delete b
givenName replace ['b', 'a']
----------------------------------
givenName replace a
givenName add c
givenName delete b
givenName delete a
givenName replace ['b', 'a']
----------------------------------
givenName replace a
givenName add c
givenName delete a
givenName delete b
givenName replace ['b', 'a']
----------------------------------
givenName delete b
givenName replace a
givenName delete a
givenName add c
givenName replace ['b', 'a']
----------------------------------
givenName delete b
givenName replace a
givenName add c
givenName delete a
givenName replace ['b', 'a']
----------------------------------
givenName delete b
givenName delete a
givenName replace a
givenName add c
givenName replace ['b', 'a']
----------------------------------
givenName delete b
givenName delete a
givenName add c
givenName replace a
givenName replace ['b', 'a']
----------------------------------
givenName delete b
givenName add c
givenName replace a
givenName delete a
givenName replace ['b', 'a']
----------------------------------
givenName delete b
givenName add c
givenName delete a
givenName replace a
givenName replace ['b', 'a']
----------------------------------
givenName delete a
givenName replace a
givenName delete b
givenName add c
givenName replace ['b', 'a']
----------------------------------
givenName delete a
givenName replace a
givenName add c
givenName delete b
givenName replace ['b', 'a']
----------------------------------
givenName delete a
givenName delete b
givenName replace a
givenName add c
givenName replace ['b', 'a']
----------------------------------
givenName delete a
givenName delete b
givenName add c
givenName replace a
givenName replace ['b', 'a']
----------------------------------
givenName delete a
givenName add c
givenName replace a
givenName delete b
givenName replace ['b', 'a']
----------------------------------
givenName delete a
givenName add c
givenName delete b
givenName replace a
givenName replace ['b', 'a']
----------------------------------
givenName add c
givenName replace a
givenName delete b
givenName delete a
givenName replace ['b', 'a']
----------------------------------
givenName add c
givenName replace a
givenName delete a
givenName delete b
givenName replace ['b', 'a']
----------------------------------
givenName add c
givenName delete b
givenName replace a
givenName delete a
givenName replace ['b', 'a']
----------------------------------
givenName add c
givenName delete b
givenName delete a
givenName replace a
givenName replace ['b', 'a']
----------------------------------
givenName add c
givenName delete a
givenName replace a
givenName delete b
givenName replace ['b', 'a']
----------------------------------
givenName add c
givenName delete a
givenName delete b
givenName replace a
givenName replace ['b', 'a']
----------------------------------
== result ===[ 24]=======================
ERR_NO_SUCH_ATTRIBUTE (16)
-- operations ---------------------------
givenName replace a
givenName replace ['b', 'a']
givenName delete a
givenName add c
givenName delete b
----------------------------------
givenName replace a
givenName replace ['b', 'a']
givenName add c
givenName delete a
givenName delete b
----------------------------------
givenName replace a
givenName delete a
givenName replace ['b', 'a']
givenName add c
givenName delete b
----------------------------------
givenName replace a
givenName delete a
givenName add c
givenName replace ['b', 'a']
givenName delete b
----------------------------------
givenName replace a
givenName add c
givenName replace ['b', 'a']
givenName delete a
givenName delete b
----------------------------------
givenName replace a
givenName add c
givenName delete a
givenName replace ['b', 'a']
givenName delete b
----------------------------------
givenName replace ['b', 'a']
givenName replace a
givenName delete a
givenName add c
givenName delete b
----------------------------------
givenName replace ['b', 'a']
givenName replace a
givenName add c
givenName delete a
givenName delete b
----------------------------------
givenName replace ['b', 'a']
givenName delete a
givenName replace a
givenName add c
givenName delete b
----------------------------------
givenName replace ['b', 'a']
givenName delete a
givenName add c
givenName replace a
givenName delete b
----------------------------------
givenName replace ['b', 'a']
givenName add c
givenName replace a
givenName delete a
givenName delete b
----------------------------------
givenName replace ['b', 'a']
givenName add c
givenName delete a
givenName replace a
givenName delete b
----------------------------------
givenName delete a
givenName replace a
givenName replace ['b', 'a']
givenName add c
givenName delete b
----------------------------------
givenName delete a
givenName replace a
givenName add c
givenName replace ['b', 'a']
givenName delete b
----------------------------------
givenName delete a
givenName replace ['b', 'a']
givenName replace a
givenName add c
givenName delete b
----------------------------------
givenName delete a
givenName replace ['b', 'a']
givenName add c
givenName replace a
givenName delete b
----------------------------------
givenName delete a
givenName add c
givenName replace a
givenName replace ['b', 'a']
givenName delete b
----------------------------------
givenName delete a
givenName add c
givenName replace ['b', 'a']
givenName replace a
givenName delete b
----------------------------------
givenName add c
givenName replace a
givenName replace ['b', 'a']
givenName delete a
givenName delete b
----------------------------------
givenName add c
givenName replace a
givenName delete a
givenName replace ['b', 'a']
givenName delete b
----------------------------------
givenName add c
givenName replace ['b', 'a']
givenName replace a
givenName delete a
givenName delete b
----------------------------------
givenName add c
givenName replace ['b', 'a']
givenName delete a
givenName replace a
givenName delete b
----------------------------------
givenName add c
givenName delete a
givenName replace a
givenName replace ['b', 'a']
givenName delete b
----------------------------------
givenName add c
givenName delete a
givenName replace ['b', 'a']
givenName replace a
givenName delete b
----------------------------------

View File

@ -0,0 +1,127 @@
modify_order_sometimes_inapplicable
initial attrs:
objectclass: 'user'
givenName: 'a'
== result ===[ 24]=======================
ERR_OBJECT_CLASS_VIOLATION (65)
-- operations ---------------------------
objectclass replace computer
objectclass delete person
dnsHostName add b
dnsHostName replace c
----------------------------------
objectclass replace computer
objectclass delete person
dnsHostName replace c
dnsHostName add b
----------------------------------
objectclass replace computer
dnsHostName add b
objectclass delete person
dnsHostName replace c
----------------------------------
objectclass replace computer
dnsHostName add b
dnsHostName replace c
objectclass delete person
----------------------------------
objectclass replace computer
dnsHostName replace c
objectclass delete person
dnsHostName add b
----------------------------------
objectclass replace computer
dnsHostName replace c
dnsHostName add b
objectclass delete person
----------------------------------
objectclass delete person
objectclass replace computer
dnsHostName add b
dnsHostName replace c
----------------------------------
objectclass delete person
objectclass replace computer
dnsHostName replace c
dnsHostName add b
----------------------------------
objectclass delete person
dnsHostName add b
objectclass replace computer
dnsHostName replace c
----------------------------------
objectclass delete person
dnsHostName add b
dnsHostName replace c
objectclass replace computer
----------------------------------
objectclass delete person
dnsHostName replace c
objectclass replace computer
dnsHostName add b
----------------------------------
objectclass delete person
dnsHostName replace c
dnsHostName add b
objectclass replace computer
----------------------------------
dnsHostName add b
objectclass replace computer
objectclass delete person
dnsHostName replace c
----------------------------------
dnsHostName add b
objectclass replace computer
dnsHostName replace c
objectclass delete person
----------------------------------
dnsHostName add b
objectclass delete person
objectclass replace computer
dnsHostName replace c
----------------------------------
dnsHostName add b
objectclass delete person
dnsHostName replace c
objectclass replace computer
----------------------------------
dnsHostName add b
dnsHostName replace c
objectclass replace computer
objectclass delete person
----------------------------------
dnsHostName add b
dnsHostName replace c
objectclass delete person
objectclass replace computer
----------------------------------
dnsHostName replace c
objectclass replace computer
objectclass delete person
dnsHostName add b
----------------------------------
dnsHostName replace c
objectclass replace computer
dnsHostName add b
objectclass delete person
----------------------------------
dnsHostName replace c
objectclass delete person
objectclass replace computer
dnsHostName add b
----------------------------------
dnsHostName replace c
objectclass delete person
dnsHostName add b
objectclass replace computer
----------------------------------
dnsHostName replace c
dnsHostName add b
objectclass replace computer
objectclass delete person
----------------------------------
dnsHostName replace c
dnsHostName add b
objectclass delete person
objectclass replace computer
----------------------------------

View File

@ -0,0 +1,752 @@
modify_order_telephone
initial attrs:
objectclass: 'user'
otherTelephone: '123'
== result ===[ 20]=======================
carLicense: [b'3']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
-- operations ---------------------------
carLicense add 4
carLicense replace 3
otherTelephone replace 4
otherTelephone add 4
otherTelephone delete 123
----------------------------------
carLicense add 4
carLicense replace 3
otherTelephone add 4
otherTelephone replace 4
otherTelephone delete 123
----------------------------------
carLicense add 4
otherTelephone replace 4
carLicense replace 3
otherTelephone add 4
otherTelephone delete 123
----------------------------------
carLicense add 4
otherTelephone replace 4
otherTelephone add 4
carLicense replace 3
otherTelephone delete 123
----------------------------------
carLicense add 4
otherTelephone replace 4
otherTelephone add 4
otherTelephone delete 123
carLicense replace 3
----------------------------------
carLicense add 4
otherTelephone add 4
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 123
----------------------------------
carLicense add 4
otherTelephone add 4
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 123
----------------------------------
carLicense add 4
otherTelephone add 4
otherTelephone replace 4
otherTelephone delete 123
carLicense replace 3
----------------------------------
otherTelephone replace 4
carLicense add 4
carLicense replace 3
otherTelephone add 4
otherTelephone delete 123
----------------------------------
otherTelephone replace 4
carLicense add 4
otherTelephone add 4
carLicense replace 3
otherTelephone delete 123
----------------------------------
otherTelephone replace 4
carLicense add 4
otherTelephone add 4
otherTelephone delete 123
carLicense replace 3
----------------------------------
otherTelephone replace 4
otherTelephone add 4
carLicense add 4
carLicense replace 3
otherTelephone delete 123
----------------------------------
otherTelephone replace 4
otherTelephone add 4
carLicense add 4
otherTelephone delete 123
carLicense replace 3
----------------------------------
otherTelephone replace 4
otherTelephone add 4
otherTelephone delete 123
carLicense add 4
carLicense replace 3
----------------------------------
otherTelephone add 4
carLicense add 4
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 123
----------------------------------
otherTelephone add 4
carLicense add 4
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 123
----------------------------------
otherTelephone add 4
carLicense add 4
otherTelephone replace 4
otherTelephone delete 123
carLicense replace 3
----------------------------------
otherTelephone add 4
otherTelephone replace 4
carLicense add 4
carLicense replace 3
otherTelephone delete 123
----------------------------------
otherTelephone add 4
otherTelephone replace 4
carLicense add 4
otherTelephone delete 123
carLicense replace 3
----------------------------------
otherTelephone add 4
otherTelephone replace 4
otherTelephone delete 123
carLicense add 4
carLicense replace 3
----------------------------------
== result ===[ 20]=======================
carLicense: [b'3']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
otherTelephone: [b'123', b'4']
-- operations ---------------------------
carLicense add 4
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 123
otherTelephone add 4
----------------------------------
carLicense add 4
carLicense replace 3
otherTelephone delete 123
otherTelephone replace 4
otherTelephone add 4
----------------------------------
carLicense add 4
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 123
otherTelephone add 4
----------------------------------
carLicense add 4
otherTelephone replace 4
otherTelephone delete 123
carLicense replace 3
otherTelephone add 4
----------------------------------
carLicense add 4
otherTelephone replace 4
otherTelephone delete 123
otherTelephone add 4
carLicense replace 3
----------------------------------
carLicense add 4
otherTelephone delete 123
carLicense replace 3
otherTelephone replace 4
otherTelephone add 4
----------------------------------
carLicense add 4
otherTelephone delete 123
otherTelephone replace 4
carLicense replace 3
otherTelephone add 4
----------------------------------
carLicense add 4
otherTelephone delete 123
otherTelephone replace 4
otherTelephone add 4
carLicense replace 3
----------------------------------
otherTelephone replace 4
carLicense add 4
carLicense replace 3
otherTelephone delete 123
otherTelephone add 4
----------------------------------
otherTelephone replace 4
carLicense add 4
otherTelephone delete 123
carLicense replace 3
otherTelephone add 4
----------------------------------
otherTelephone replace 4
carLicense add 4
otherTelephone delete 123
otherTelephone add 4
carLicense replace 3
----------------------------------
otherTelephone replace 4
otherTelephone delete 123
carLicense add 4
carLicense replace 3
otherTelephone add 4
----------------------------------
otherTelephone replace 4
otherTelephone delete 123
carLicense add 4
otherTelephone add 4
carLicense replace 3
----------------------------------
otherTelephone replace 4
otherTelephone delete 123
otherTelephone add 4
carLicense add 4
carLicense replace 3
----------------------------------
otherTelephone delete 123
carLicense add 4
carLicense replace 3
otherTelephone replace 4
otherTelephone add 4
----------------------------------
otherTelephone delete 123
carLicense add 4
otherTelephone replace 4
carLicense replace 3
otherTelephone add 4
----------------------------------
otherTelephone delete 123
carLicense add 4
otherTelephone replace 4
otherTelephone add 4
carLicense replace 3
----------------------------------
otherTelephone delete 123
otherTelephone replace 4
carLicense add 4
carLicense replace 3
otherTelephone add 4
----------------------------------
otherTelephone delete 123
otherTelephone replace 4
carLicense add 4
otherTelephone add 4
carLicense replace 3
----------------------------------
otherTelephone delete 123
otherTelephone replace 4
otherTelephone add 4
carLicense add 4
carLicense replace 3
----------------------------------
== result ===[ 20]=======================
carLicense: [b'3']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
otherTelephone: [b'4']
-- operations ---------------------------
carLicense add 4
carLicense replace 3
otherTelephone add 4
otherTelephone delete 123
otherTelephone replace 4
----------------------------------
carLicense add 4
carLicense replace 3
otherTelephone delete 123
otherTelephone add 4
otherTelephone replace 4
----------------------------------
carLicense add 4
otherTelephone add 4
carLicense replace 3
otherTelephone delete 123
otherTelephone replace 4
----------------------------------
carLicense add 4
otherTelephone add 4
otherTelephone delete 123
carLicense replace 3
otherTelephone replace 4
----------------------------------
carLicense add 4
otherTelephone add 4
otherTelephone delete 123
otherTelephone replace 4
carLicense replace 3
----------------------------------
carLicense add 4
otherTelephone delete 123
carLicense replace 3
otherTelephone add 4
otherTelephone replace 4
----------------------------------
carLicense add 4
otherTelephone delete 123
otherTelephone add 4
carLicense replace 3
otherTelephone replace 4
----------------------------------
carLicense add 4
otherTelephone delete 123
otherTelephone add 4
otherTelephone replace 4
carLicense replace 3
----------------------------------
otherTelephone add 4
carLicense add 4
carLicense replace 3
otherTelephone delete 123
otherTelephone replace 4
----------------------------------
otherTelephone add 4
carLicense add 4
otherTelephone delete 123
carLicense replace 3
otherTelephone replace 4
----------------------------------
otherTelephone add 4
carLicense add 4
otherTelephone delete 123
otherTelephone replace 4
carLicense replace 3
----------------------------------
otherTelephone add 4
otherTelephone delete 123
carLicense add 4
carLicense replace 3
otherTelephone replace 4
----------------------------------
otherTelephone add 4
otherTelephone delete 123
carLicense add 4
otherTelephone replace 4
carLicense replace 3
----------------------------------
otherTelephone add 4
otherTelephone delete 123
otherTelephone replace 4
carLicense add 4
carLicense replace 3
----------------------------------
otherTelephone delete 123
carLicense add 4
carLicense replace 3
otherTelephone add 4
otherTelephone replace 4
----------------------------------
otherTelephone delete 123
carLicense add 4
otherTelephone add 4
carLicense replace 3
otherTelephone replace 4
----------------------------------
otherTelephone delete 123
carLicense add 4
otherTelephone add 4
otherTelephone replace 4
carLicense replace 3
----------------------------------
otherTelephone delete 123
otherTelephone add 4
carLicense add 4
carLicense replace 3
otherTelephone replace 4
----------------------------------
otherTelephone delete 123
otherTelephone add 4
carLicense add 4
otherTelephone replace 4
carLicense replace 3
----------------------------------
otherTelephone delete 123
otherTelephone add 4
otherTelephone replace 4
carLicense add 4
carLicense replace 3
----------------------------------
== result ===[ 20]=======================
carLicense: [b'4']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
-- operations ---------------------------
carLicense replace 3
carLicense add 4
otherTelephone replace 4
otherTelephone add 4
otherTelephone delete 123
----------------------------------
carLicense replace 3
carLicense add 4
otherTelephone add 4
otherTelephone replace 4
otherTelephone delete 123
----------------------------------
carLicense replace 3
otherTelephone replace 4
carLicense add 4
otherTelephone add 4
otherTelephone delete 123
----------------------------------
carLicense replace 3
otherTelephone replace 4
otherTelephone add 4
carLicense add 4
otherTelephone delete 123
----------------------------------
carLicense replace 3
otherTelephone replace 4
otherTelephone add 4
otherTelephone delete 123
carLicense add 4
----------------------------------
carLicense replace 3
otherTelephone add 4
carLicense add 4
otherTelephone replace 4
otherTelephone delete 123
----------------------------------
carLicense replace 3
otherTelephone add 4
otherTelephone replace 4
carLicense add 4
otherTelephone delete 123
----------------------------------
carLicense replace 3
otherTelephone add 4
otherTelephone replace 4
otherTelephone delete 123
carLicense add 4
----------------------------------
otherTelephone replace 4
carLicense replace 3
carLicense add 4
otherTelephone add 4
otherTelephone delete 123
----------------------------------
otherTelephone replace 4
carLicense replace 3
otherTelephone add 4
carLicense add 4
otherTelephone delete 123
----------------------------------
otherTelephone replace 4
carLicense replace 3
otherTelephone add 4
otherTelephone delete 123
carLicense add 4
----------------------------------
otherTelephone replace 4
otherTelephone add 4
carLicense replace 3
carLicense add 4
otherTelephone delete 123
----------------------------------
otherTelephone replace 4
otherTelephone add 4
carLicense replace 3
otherTelephone delete 123
carLicense add 4
----------------------------------
otherTelephone replace 4
otherTelephone add 4
otherTelephone delete 123
carLicense replace 3
carLicense add 4
----------------------------------
otherTelephone add 4
carLicense replace 3
carLicense add 4
otherTelephone replace 4
otherTelephone delete 123
----------------------------------
otherTelephone add 4
carLicense replace 3
otherTelephone replace 4
carLicense add 4
otherTelephone delete 123
----------------------------------
otherTelephone add 4
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 123
carLicense add 4
----------------------------------
otherTelephone add 4
otherTelephone replace 4
carLicense replace 3
carLicense add 4
otherTelephone delete 123
----------------------------------
otherTelephone add 4
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 123
carLicense add 4
----------------------------------
otherTelephone add 4
otherTelephone replace 4
otherTelephone delete 123
carLicense replace 3
carLicense add 4
----------------------------------
== result ===[ 20]=======================
carLicense: [b'4']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
otherTelephone: [b'123', b'4']
-- operations ---------------------------
carLicense replace 3
carLicense add 4
otherTelephone replace 4
otherTelephone delete 123
otherTelephone add 4
----------------------------------
carLicense replace 3
carLicense add 4
otherTelephone delete 123
otherTelephone replace 4
otherTelephone add 4
----------------------------------
carLicense replace 3
otherTelephone replace 4
carLicense add 4
otherTelephone delete 123
otherTelephone add 4
----------------------------------
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 123
carLicense add 4
otherTelephone add 4
----------------------------------
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 123
otherTelephone add 4
carLicense add 4
----------------------------------
carLicense replace 3
otherTelephone delete 123
carLicense add 4
otherTelephone replace 4
otherTelephone add 4
----------------------------------
carLicense replace 3
otherTelephone delete 123
otherTelephone replace 4
carLicense add 4
otherTelephone add 4
----------------------------------
carLicense replace 3
otherTelephone delete 123
otherTelephone replace 4
otherTelephone add 4
carLicense add 4
----------------------------------
otherTelephone replace 4
carLicense replace 3
carLicense add 4
otherTelephone delete 123
otherTelephone add 4
----------------------------------
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 123
carLicense add 4
otherTelephone add 4
----------------------------------
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 123
otherTelephone add 4
carLicense add 4
----------------------------------
otherTelephone replace 4
otherTelephone delete 123
carLicense replace 3
carLicense add 4
otherTelephone add 4
----------------------------------
otherTelephone replace 4
otherTelephone delete 123
carLicense replace 3
otherTelephone add 4
carLicense add 4
----------------------------------
otherTelephone replace 4
otherTelephone delete 123
otherTelephone add 4
carLicense replace 3
carLicense add 4
----------------------------------
otherTelephone delete 123
carLicense replace 3
carLicense add 4
otherTelephone replace 4
otherTelephone add 4
----------------------------------
otherTelephone delete 123
carLicense replace 3
otherTelephone replace 4
carLicense add 4
otherTelephone add 4
----------------------------------
otherTelephone delete 123
carLicense replace 3
otherTelephone replace 4
otherTelephone add 4
carLicense add 4
----------------------------------
otherTelephone delete 123
otherTelephone replace 4
carLicense replace 3
carLicense add 4
otherTelephone add 4
----------------------------------
otherTelephone delete 123
otherTelephone replace 4
carLicense replace 3
otherTelephone add 4
carLicense add 4
----------------------------------
otherTelephone delete 123
otherTelephone replace 4
otherTelephone add 4
carLicense replace 3
carLicense add 4
----------------------------------
== result ===[ 20]=======================
carLicense: [b'4']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
otherTelephone: [b'4']
-- operations ---------------------------
carLicense replace 3
carLicense add 4
otherTelephone add 4
otherTelephone delete 123
otherTelephone replace 4
----------------------------------
carLicense replace 3
carLicense add 4
otherTelephone delete 123
otherTelephone add 4
otherTelephone replace 4
----------------------------------
carLicense replace 3
otherTelephone add 4
carLicense add 4
otherTelephone delete 123
otherTelephone replace 4
----------------------------------
carLicense replace 3
otherTelephone add 4
otherTelephone delete 123
carLicense add 4
otherTelephone replace 4
----------------------------------
carLicense replace 3
otherTelephone add 4
otherTelephone delete 123
otherTelephone replace 4
carLicense add 4
----------------------------------
carLicense replace 3
otherTelephone delete 123
carLicense add 4
otherTelephone add 4
otherTelephone replace 4
----------------------------------
carLicense replace 3
otherTelephone delete 123
otherTelephone add 4
carLicense add 4
otherTelephone replace 4
----------------------------------
carLicense replace 3
otherTelephone delete 123
otherTelephone add 4
otherTelephone replace 4
carLicense add 4
----------------------------------
otherTelephone add 4
carLicense replace 3
carLicense add 4
otherTelephone delete 123
otherTelephone replace 4
----------------------------------
otherTelephone add 4
carLicense replace 3
otherTelephone delete 123
carLicense add 4
otherTelephone replace 4
----------------------------------
otherTelephone add 4
carLicense replace 3
otherTelephone delete 123
otherTelephone replace 4
carLicense add 4
----------------------------------
otherTelephone add 4
otherTelephone delete 123
carLicense replace 3
carLicense add 4
otherTelephone replace 4
----------------------------------
otherTelephone add 4
otherTelephone delete 123
carLicense replace 3
otherTelephone replace 4
carLicense add 4
----------------------------------
otherTelephone add 4
otherTelephone delete 123
otherTelephone replace 4
carLicense replace 3
carLicense add 4
----------------------------------
otherTelephone delete 123
carLicense replace 3
carLicense add 4
otherTelephone add 4
otherTelephone replace 4
----------------------------------
otherTelephone delete 123
carLicense replace 3
otherTelephone add 4
carLicense add 4
otherTelephone replace 4
----------------------------------
otherTelephone delete 123
carLicense replace 3
otherTelephone add 4
otherTelephone replace 4
carLicense add 4
----------------------------------
otherTelephone delete 123
otherTelephone add 4
carLicense replace 3
carLicense add 4
otherTelephone replace 4
----------------------------------
otherTelephone delete 123
otherTelephone add 4
carLicense replace 3
otherTelephone replace 4
carLicense add 4
----------------------------------
otherTelephone delete 123
otherTelephone add 4
otherTelephone replace 4
carLicense replace 3
carLicense add 4
----------------------------------

View File

@ -0,0 +1,736 @@
modify_order_telephone_delete_delete
initial attrs:
objectclass: 'user'
otherTelephone: '123'
== result ===[ 20]=======================
carLicense: [b'3']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
-- operations ---------------------------
carLicense delete 4
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 4
otherTelephone delete 123
----------------------------------
carLicense delete 4
carLicense replace 3
otherTelephone delete 4
otherTelephone replace 4
otherTelephone delete 123
----------------------------------
carLicense delete 4
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 4
otherTelephone delete 123
----------------------------------
carLicense delete 4
otherTelephone replace 4
otherTelephone delete 4
carLicense replace 3
otherTelephone delete 123
----------------------------------
carLicense delete 4
otherTelephone replace 4
otherTelephone delete 4
otherTelephone delete 123
carLicense replace 3
----------------------------------
carLicense delete 4
otherTelephone delete 4
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 123
----------------------------------
carLicense delete 4
otherTelephone delete 4
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 123
----------------------------------
carLicense delete 4
otherTelephone delete 4
otherTelephone replace 4
otherTelephone delete 123
carLicense replace 3
----------------------------------
otherTelephone replace 4
carLicense delete 4
carLicense replace 3
otherTelephone delete 4
otherTelephone delete 123
----------------------------------
otherTelephone replace 4
carLicense delete 4
otherTelephone delete 4
carLicense replace 3
otherTelephone delete 123
----------------------------------
otherTelephone replace 4
carLicense delete 4
otherTelephone delete 4
otherTelephone delete 123
carLicense replace 3
----------------------------------
otherTelephone replace 4
otherTelephone delete 4
carLicense delete 4
carLicense replace 3
otherTelephone delete 123
----------------------------------
otherTelephone replace 4
otherTelephone delete 4
carLicense delete 4
otherTelephone delete 123
carLicense replace 3
----------------------------------
otherTelephone replace 4
otherTelephone delete 4
otherTelephone delete 123
carLicense delete 4
carLicense replace 3
----------------------------------
otherTelephone delete 4
carLicense delete 4
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 123
----------------------------------
otherTelephone delete 4
carLicense delete 4
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 123
----------------------------------
otherTelephone delete 4
carLicense delete 4
otherTelephone replace 4
otherTelephone delete 123
carLicense replace 3
----------------------------------
otherTelephone delete 4
otherTelephone replace 4
carLicense delete 4
carLicense replace 3
otherTelephone delete 123
----------------------------------
otherTelephone delete 4
otherTelephone replace 4
carLicense delete 4
otherTelephone delete 123
carLicense replace 3
----------------------------------
otherTelephone delete 4
otherTelephone replace 4
otherTelephone delete 123
carLicense delete 4
carLicense replace 3
----------------------------------
== result ===[ 20]=======================
carLicense: [b'3']
objectClass: [b'organizationalPerson', b'person', b'top', b'user']
otherTelephone: [b'4']
-- operations ---------------------------
carLicense delete 4
carLicense replace 3
otherTelephone delete 4
otherTelephone delete 123
otherTelephone replace 4
----------------------------------
carLicense delete 4
carLicense replace 3
otherTelephone delete 123
otherTelephone delete 4
otherTelephone replace 4
----------------------------------
carLicense delete 4
otherTelephone delete 4
carLicense replace 3
otherTelephone delete 123
otherTelephone replace 4
----------------------------------
carLicense delete 4
otherTelephone delete 4
otherTelephone delete 123
carLicense replace 3
otherTelephone replace 4
----------------------------------
carLicense delete 4
otherTelephone delete 4
otherTelephone delete 123
otherTelephone replace 4
carLicense replace 3
----------------------------------
carLicense delete 4
otherTelephone delete 123
carLicense replace 3
otherTelephone delete 4
otherTelephone replace 4
----------------------------------
carLicense delete 4
otherTelephone delete 123
otherTelephone delete 4
carLicense replace 3
otherTelephone replace 4
----------------------------------
carLicense delete 4
otherTelephone delete 123
otherTelephone delete 4
otherTelephone replace 4
carLicense replace 3
----------------------------------
otherTelephone delete 4
carLicense delete 4
carLicense replace 3
otherTelephone delete 123
otherTelephone replace 4
----------------------------------
otherTelephone delete 4
carLicense delete 4
otherTelephone delete 123
carLicense replace 3
otherTelephone replace 4
----------------------------------
otherTelephone delete 4
carLicense delete 4
otherTelephone delete 123
otherTelephone replace 4
carLicense replace 3
----------------------------------
otherTelephone delete 4
otherTelephone delete 123
carLicense delete 4
carLicense replace 3
otherTelephone replace 4
----------------------------------
otherTelephone delete 4
otherTelephone delete 123
carLicense delete 4
otherTelephone replace 4
carLicense replace 3
----------------------------------
otherTelephone delete 4
otherTelephone delete 123
otherTelephone replace 4
carLicense delete 4
carLicense replace 3
----------------------------------
otherTelephone delete 123
carLicense delete 4
carLicense replace 3
otherTelephone delete 4
otherTelephone replace 4
----------------------------------
otherTelephone delete 123
carLicense delete 4
otherTelephone delete 4
carLicense replace 3
otherTelephone replace 4
----------------------------------
otherTelephone delete 123
carLicense delete 4
otherTelephone delete 4
otherTelephone replace 4
carLicense replace 3
----------------------------------
otherTelephone delete 123
otherTelephone delete 4
carLicense delete 4
carLicense replace 3
otherTelephone replace 4
----------------------------------
otherTelephone delete 123
otherTelephone delete 4
carLicense delete 4
otherTelephone replace 4
carLicense replace 3
----------------------------------
otherTelephone delete 123
otherTelephone delete 4
otherTelephone replace 4
carLicense delete 4
carLicense replace 3
----------------------------------
== result ===[ 80]=======================
ERR_NO_SUCH_ATTRIBUTE (16)
-- operations ---------------------------
carLicense replace 3
carLicense delete 4
otherTelephone replace 4
otherTelephone delete 4
otherTelephone delete 123
----------------------------------
carLicense replace 3
carLicense delete 4
otherTelephone replace 4
otherTelephone delete 123
otherTelephone delete 4
----------------------------------
carLicense replace 3
carLicense delete 4
otherTelephone delete 4
otherTelephone replace 4
otherTelephone delete 123
----------------------------------
carLicense replace 3
carLicense delete 4
otherTelephone delete 4
otherTelephone delete 123
otherTelephone replace 4
----------------------------------
carLicense replace 3
carLicense delete 4
otherTelephone delete 123
otherTelephone replace 4
otherTelephone delete 4
----------------------------------
carLicense replace 3
carLicense delete 4
otherTelephone delete 123
otherTelephone delete 4
otherTelephone replace 4
----------------------------------
carLicense replace 3
otherTelephone replace 4
carLicense delete 4
otherTelephone delete 4
otherTelephone delete 123
----------------------------------
carLicense replace 3
otherTelephone replace 4
carLicense delete 4
otherTelephone delete 123
otherTelephone delete 4
----------------------------------
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 4
carLicense delete 4
otherTelephone delete 123
----------------------------------
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 4
otherTelephone delete 123
carLicense delete 4
----------------------------------
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 123
carLicense delete 4
otherTelephone delete 4
----------------------------------
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 123
otherTelephone delete 4
carLicense delete 4
----------------------------------
carLicense replace 3
otherTelephone delete 4
carLicense delete 4
otherTelephone replace 4
otherTelephone delete 123
----------------------------------
carLicense replace 3
otherTelephone delete 4
carLicense delete 4
otherTelephone delete 123
otherTelephone replace 4
----------------------------------
carLicense replace 3
otherTelephone delete 4
otherTelephone replace 4
carLicense delete 4
otherTelephone delete 123
----------------------------------
carLicense replace 3
otherTelephone delete 4
otherTelephone replace 4
otherTelephone delete 123
carLicense delete 4
----------------------------------
carLicense replace 3
otherTelephone delete 4
otherTelephone delete 123
carLicense delete 4
otherTelephone replace 4
----------------------------------
carLicense replace 3
otherTelephone delete 4
otherTelephone delete 123
otherTelephone replace 4
carLicense delete 4
----------------------------------
carLicense replace 3
otherTelephone delete 123
carLicense delete 4
otherTelephone replace 4
otherTelephone delete 4
----------------------------------
carLicense replace 3
otherTelephone delete 123
carLicense delete 4
otherTelephone delete 4
otherTelephone replace 4
----------------------------------
carLicense replace 3
otherTelephone delete 123
otherTelephone replace 4
carLicense delete 4
otherTelephone delete 4
----------------------------------
carLicense replace 3
otherTelephone delete 123
otherTelephone replace 4
otherTelephone delete 4
carLicense delete 4
----------------------------------
carLicense replace 3
otherTelephone delete 123
otherTelephone delete 4
carLicense delete 4
otherTelephone replace 4
----------------------------------
carLicense replace 3
otherTelephone delete 123
otherTelephone delete 4
otherTelephone replace 4
carLicense delete 4
----------------------------------
carLicense delete 4
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 123
otherTelephone delete 4
----------------------------------
carLicense delete 4
carLicense replace 3
otherTelephone delete 123
otherTelephone replace 4
otherTelephone delete 4
----------------------------------
carLicense delete 4
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 123
otherTelephone delete 4
----------------------------------
carLicense delete 4
otherTelephone replace 4
otherTelephone delete 123
carLicense replace 3
otherTelephone delete 4
----------------------------------
carLicense delete 4
otherTelephone replace 4
otherTelephone delete 123
otherTelephone delete 4
carLicense replace 3
----------------------------------
carLicense delete 4
otherTelephone delete 123
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 4
----------------------------------
carLicense delete 4
otherTelephone delete 123
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 4
----------------------------------
carLicense delete 4
otherTelephone delete 123
otherTelephone replace 4
otherTelephone delete 4
carLicense replace 3
----------------------------------
otherTelephone replace 4
carLicense replace 3
carLicense delete 4
otherTelephone delete 4
otherTelephone delete 123
----------------------------------
otherTelephone replace 4
carLicense replace 3
carLicense delete 4
otherTelephone delete 123
otherTelephone delete 4
----------------------------------
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 4
carLicense delete 4
otherTelephone delete 123
----------------------------------
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 4
otherTelephone delete 123
carLicense delete 4
----------------------------------
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 123
carLicense delete 4
otherTelephone delete 4
----------------------------------
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 123
otherTelephone delete 4
carLicense delete 4
----------------------------------
otherTelephone replace 4
carLicense delete 4
carLicense replace 3
otherTelephone delete 123
otherTelephone delete 4
----------------------------------
otherTelephone replace 4
carLicense delete 4
otherTelephone delete 123
carLicense replace 3
otherTelephone delete 4
----------------------------------
otherTelephone replace 4
carLicense delete 4
otherTelephone delete 123
otherTelephone delete 4
carLicense replace 3
----------------------------------
otherTelephone replace 4
otherTelephone delete 4
carLicense replace 3
carLicense delete 4
otherTelephone delete 123
----------------------------------
otherTelephone replace 4
otherTelephone delete 4
carLicense replace 3
otherTelephone delete 123
carLicense delete 4
----------------------------------
otherTelephone replace 4
otherTelephone delete 4
otherTelephone delete 123
carLicense replace 3
carLicense delete 4
----------------------------------
otherTelephone replace 4
otherTelephone delete 123
carLicense replace 3
carLicense delete 4
otherTelephone delete 4
----------------------------------
otherTelephone replace 4
otherTelephone delete 123
carLicense replace 3
otherTelephone delete 4
carLicense delete 4
----------------------------------
otherTelephone replace 4
otherTelephone delete 123
carLicense delete 4
carLicense replace 3
otherTelephone delete 4
----------------------------------
otherTelephone replace 4
otherTelephone delete 123
carLicense delete 4
otherTelephone delete 4
carLicense replace 3
----------------------------------
otherTelephone replace 4
otherTelephone delete 123
otherTelephone delete 4
carLicense replace 3
carLicense delete 4
----------------------------------
otherTelephone replace 4
otherTelephone delete 123
otherTelephone delete 4
carLicense delete 4
carLicense replace 3
----------------------------------
otherTelephone delete 4
carLicense replace 3
carLicense delete 4
otherTelephone replace 4
otherTelephone delete 123
----------------------------------
otherTelephone delete 4
carLicense replace 3
carLicense delete 4
otherTelephone delete 123
otherTelephone replace 4
----------------------------------
otherTelephone delete 4
carLicense replace 3
otherTelephone replace 4
carLicense delete 4
otherTelephone delete 123
----------------------------------
otherTelephone delete 4
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 123
carLicense delete 4
----------------------------------
otherTelephone delete 4
carLicense replace 3
otherTelephone delete 123
carLicense delete 4
otherTelephone replace 4
----------------------------------
otherTelephone delete 4
carLicense replace 3
otherTelephone delete 123
otherTelephone replace 4
carLicense delete 4
----------------------------------
otherTelephone delete 4
otherTelephone replace 4
carLicense replace 3
carLicense delete 4
otherTelephone delete 123
----------------------------------
otherTelephone delete 4
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 123
carLicense delete 4
----------------------------------
otherTelephone delete 4
otherTelephone replace 4
otherTelephone delete 123
carLicense replace 3
carLicense delete 4
----------------------------------
otherTelephone delete 4
otherTelephone delete 123
carLicense replace 3
carLicense delete 4
otherTelephone replace 4
----------------------------------
otherTelephone delete 4
otherTelephone delete 123
carLicense replace 3
otherTelephone replace 4
carLicense delete 4
----------------------------------
otherTelephone delete 4
otherTelephone delete 123
otherTelephone replace 4
carLicense replace 3
carLicense delete 4
----------------------------------
otherTelephone delete 123
carLicense replace 3
carLicense delete 4
otherTelephone replace 4
otherTelephone delete 4
----------------------------------
otherTelephone delete 123
carLicense replace 3
carLicense delete 4
otherTelephone delete 4
otherTelephone replace 4
----------------------------------
otherTelephone delete 123
carLicense replace 3
otherTelephone replace 4
carLicense delete 4
otherTelephone delete 4
----------------------------------
otherTelephone delete 123
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 4
carLicense delete 4
----------------------------------
otherTelephone delete 123
carLicense replace 3
otherTelephone delete 4
carLicense delete 4
otherTelephone replace 4
----------------------------------
otherTelephone delete 123
carLicense replace 3
otherTelephone delete 4
otherTelephone replace 4
carLicense delete 4
----------------------------------
otherTelephone delete 123
carLicense delete 4
carLicense replace 3
otherTelephone replace 4
otherTelephone delete 4
----------------------------------
otherTelephone delete 123
carLicense delete 4
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 4
----------------------------------
otherTelephone delete 123
carLicense delete 4
otherTelephone replace 4
otherTelephone delete 4
carLicense replace 3
----------------------------------
otherTelephone delete 123
otherTelephone replace 4
carLicense replace 3
carLicense delete 4
otherTelephone delete 4
----------------------------------
otherTelephone delete 123
otherTelephone replace 4
carLicense replace 3
otherTelephone delete 4
carLicense delete 4
----------------------------------
otherTelephone delete 123
otherTelephone replace 4
carLicense delete 4
carLicense replace 3
otherTelephone delete 4
----------------------------------
otherTelephone delete 123
otherTelephone replace 4
carLicense delete 4
otherTelephone delete 4
carLicense replace 3
----------------------------------
otherTelephone delete 123
otherTelephone replace 4
otherTelephone delete 4
carLicense replace 3
carLicense delete 4
----------------------------------
otherTelephone delete 123
otherTelephone replace 4
otherTelephone delete 4
carLicense delete 4
carLicense replace 3
----------------------------------
otherTelephone delete 123
otherTelephone delete 4
carLicense replace 3
carLicense delete 4
otherTelephone replace 4
----------------------------------
otherTelephone delete 123
otherTelephone delete 4
carLicense replace 3
otherTelephone replace 4
carLicense delete 4
----------------------------------
otherTelephone delete 123
otherTelephone delete 4
otherTelephone replace 4
carLicense replace 3
carLicense delete 4
----------------------------------

View File

@ -835,6 +835,18 @@ for env in ["ad_dc_ntvfs:local", "ad_dc:local",
planoldpythontestsuite(env, "samba.tests.blackbox.smbcontrol")
plantestsuite_loadlist("samba4.ldap.python(ad_dc_default)", "ad_dc_default", [python, os.path.join(DSDB_PYTEST_DIR, "ldap.py"), '$SERVER', '-U"$USERNAME%$PASSWORD"', '--workgroup=$DOMAIN', '$LOADLIST', '$LISTOPT'])
plantestsuite_loadlist("samba4.ldap_modify_order.python(ad_dc_default)",
"ad_dc_default",
[python, os.path.join(samba4srcdir,
"dsdb/tests/python/"
"ldap_modify_order.py"),
'$SERVER',
'-U"$USERNAME%$PASSWORD"',
'--workgroup=$DOMAIN',
'$LOADLIST',
'$LISTOPT'])
plantestsuite_loadlist("samba4.tokengroups.krb5.python(ad_dc_default)", "ad_dc_default:local", [python, os.path.join(DSDB_PYTEST_DIR, "token_group.py"), '$SERVER', '-U"$USERNAME%$PASSWORD"', '--workgroup=$DOMAIN', '-k', 'yes', '$LOADLIST', '$LISTOPT'])
plantestsuite_loadlist("samba4.tokengroups.ntlm.python(ad_dc_default)", "ad_dc_default:local", [python, os.path.join(DSDB_PYTEST_DIR, "token_group.py"), '$SERVER', '-U"$USERNAME%$PASSWORD"', '--workgroup=$DOMAIN', '-k', 'no', '$LOADLIST', '$LISTOPT'])
plantestsuite("samba4.sam.python(fl2008r2dc)", "fl2008r2dc", [python, os.path.join(DSDB_PYTEST_DIR, "sam.py"), '$SERVER', '-U"$USERNAME%$PASSWORD"', '--workgroup=$DOMAIN'])