[SCM] Samba Shared Repository - branch master updated

Garming Sam garming at samba.org
Wed Nov 26 21:17:04 MST 2014


The branch, master has been updated
       via  9cef81d wbinfo: create a more comprehensive test for sids2xids
       via  5adc171 wbinfo: fix tests and lack of cache flushing
      from  733422c param: Simplify get_parametric_helper()

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 9cef81db97968f8d69bdae19e8a091225ae86207
Author: Garming Sam <garming at catalyst.net.nz>
Date:   Tue Nov 25 16:52:53 2014 +1300

    wbinfo: create a more comprehensive test for sids2xids
    
    In particular, this tests that ID_TYPE_BOTH is cached correctly.
    
    Change-Id: I2475f22d3f4506c93b15d82b0d337d3729bbbd4c
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    
    Autobuild-User(master): Garming Sam <garming at samba.org>
    Autobuild-Date(master): Thu Nov 27 05:16:53 CET 2014 on sn-devel-104

commit 5adc171ffe8b5d4d7ba280aa93414921d29b383d
Author: Garming Sam <garming at catalyst.net.nz>
Date:   Tue Nov 25 15:59:27 2014 +1300

    wbinfo: fix tests and lack of cache flushing
    
    Change-Id: I1a0a8f62522a6eb64d39bee48f4f71403d7c343a
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 selftest/knownfail                                |  2 +
 source3/script/tests/test_wbinfo_sids2xids_int.py | 90 ++++++++++++++++++-----
 2 files changed, 75 insertions(+), 17 deletions(-)


Changeset truncated at 500 lines:

diff --git a/selftest/knownfail b/selftest/knownfail
index 1c4f446..e9e6239 100644
--- a/selftest/knownfail
+++ b/selftest/knownfail
@@ -230,6 +230,8 @@
 ^samba3.rpc.spoolss.printer.addprinterex.driver_info_winreg # knownfail or flapping?
 ^samba3.rpc.spoolss.printer.*.publish_toggle\(.*\)$ # needs spoolss AD member env
 ^samba3.rpc.spoolss.printserver.*.add_processor\(.*\)$
+^samba.wbinfo_sids2xids.\(plugin_s4_dc:local\)
+^samba.wbinfo_sids2xids.\(s4member:local\)
 #
 # The following tests fail against plugin_s4_dc (aka s3fs) currently.
 # These need to be examined and either fixed or correctly categorised.
diff --git a/source3/script/tests/test_wbinfo_sids2xids_int.py b/source3/script/tests/test_wbinfo_sids2xids_int.py
index e9cd9ab..f3dbed8 100755
--- a/source3/script/tests/test_wbinfo_sids2xids_int.py
+++ b/source3/script/tests/test_wbinfo_sids2xids_int.py
@@ -11,7 +11,14 @@ wbinfo = sys.argv[1]
 netcmd = sys.argv[2]
 
 def flush_cache():
-    os.system(netcmd + "cache flush")
+    os.system(netcmd + " cache flush")
+
+def fill_cache(inids, idtype='gid'):
+    for inid in inids:
+        if inid is None:
+            continue
+        subprocess.Popen([wbinfo, '--%s-to-sid=%s' % (idtype, inid)],
+                         stdout=subprocess.PIPE).communicate()
 
 domain = subprocess.Popen([wbinfo, "--own-domain"],
                           stdout=subprocess.PIPE).communicate()[0].strip()
@@ -24,41 +31,90 @@ domsid = domsid.split(' ')[0]
 
 sids=[ domsid + '-512', 'S-1-5-32-545', domsid + '-513' ]
 
-flush_cache
+flush_cache()
 
 sids2xids = subprocess.Popen([wbinfo, '--sids-to-unix-ids=' +  ','.join(sids)],
                              stdout=subprocess.PIPE).communicate()[0].strip()
 
 gids=[]
+uids=[]
+idtypes = []
 
 for line in sids2xids.split('\n'):
     result = line.split(' ')[2:]
+    idtypes.append(result[0])
 
-    if result[0] == 'gid' or result[0] == 'uid/gid':
+    gid = None
+    uid = None
+    if result[0] == 'gid':
         gid = result[1]
-    else:
-        gid = ''
+    elif result[0] == 'uid':
+        uid = result[1]
+    elif result[0] == 'uid/gid':
+        gid = result[1]
+        uid = result[1]
+
     if gid == '-1':
         gid = ''
     gids.append(gid)
 
+    if uid == '-1':
+        uid = ''
+    uids.append(uid)
+
 # Check the list produced by the sids-to-xids call with the
-# singular variant (sid-to-gid) for each sid in turn.
-def check_singular(sids, gids):
-    i=0
+# singular variant (sid-to-xid) for each sid in turn.
+def check_singular(sids, ids, idtype='gid'):
+    i = 0
     for sid in sids:
-        gid = subprocess.Popen([wbinfo, '--sid-to-gid', sid],
-                               stdout=subprocess.PIPE).communicate()[0].strip()
-        if gid != gids[i]:
-            print "Expected %s, got %s\n", gid, gids[i]
+        if ids[i] is None:
+            continue
+
+        outid = subprocess.Popen([wbinfo, '--sid-to-%s' % idtype, sid],
+                                 stdout=subprocess.PIPE).communicate()[0].strip()
+        if outid != ids[i]:
+            print "Expected %s, got %s\n" % (outid, ids[i])
+            flush_cache()
+            sys.exit(1)
+        i += 1
+
+# Check the list produced by the sids-to-xids call with the
+# multiple variant (sid-to-xid) for each sid in turn.
+def check_multiple(sids, idtypes):
+    sids2xids = subprocess.Popen([wbinfo, '--sids-to-unix-ids=' +  ','.join(sids)],
+                                 stdout=subprocess.PIPE).communicate()[0].strip()
+    # print sids2xids
+    i = 0
+    for line in sids2xids.split('\n'):
+        result = line.split(' ')[2:]
+
+        if result[0] != idtypes[i]:
+            print "Expected %s, got %s\n" % (idtypes[i], result[0])
+            flush_cache()
             sys.exit(1)
-        i+=1
+        i += 1
 
-# first round: with filled cache
-check_singular(sids, gids)
+# first round: with filled cache via sid-to-id
+check_singular(sids, gids, 'gid')
+check_singular(sids, uids, 'uid')
 
 # second round: with empty cache
-flush_cache
-check_singular(sids, gids)
+flush_cache()
+check_singular(sids, gids, 'gid')
+flush_cache()
+check_singular(sids, uids, 'uid')
+
+# third round: with filled cache via uid-to-sid
+flush_cache()
+fill_cache(uids, 'uid')
+check_multiple(sids, idtypes)
+
+# fourth round: with filled cache via gid-to-sid
+flush_cache()
+fill_cache(gids, 'gid')
+check_multiple(sids, idtypes)
+
+# flush the cache so any incorrect mappings don't break other tests
+flush_cache()
 
 sys.exit(0)


-- 
Samba Shared Repository


More information about the samba-cvs mailing list