s3:tests: Do *NOT* flush the complete gencache!
authorAndreas Schneider <asn@samba.org>
Wed, 28 Jun 2017 12:58:41 +0000 (14:58 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Wed, 28 Jun 2017 20:18:16 +0000 (22:18 +0200)
This removes important entries winbindd created during startup!

BUG: https://bugzilla.samba.org/show_bug.cgi?id=12868

Pair-Programmed-With: Ralph Boehme <slow@samba.org>

Signed-off-by: Andreas Schneider <asn@samba.org>
Signed-off-by: Ralph Boehme <slow@samba.org>
source3/script/tests/test_wbinfo_sids2xids_int.py

index 3ad3156ea93acfaba8922f6e42c1c81ed75d7e96..21804452365a8aaa7e49fc8c99fb2030ba488de7 100755 (executable)
@@ -10,8 +10,13 @@ if len(sys.argv) != 3:
 wbinfo = sys.argv[1]
 netcmd = sys.argv[2]
 
-def flush_cache():
-    os.system(netcmd + " cache flush")
+def flush_cache(sids=[], uids=[], gids=[]):
+    for sid in sids:
+        os.system(netcmd + (" cache del IDMAP/SID2XID/%s" % (sid)))
+    for uids in uids:
+        os.system(netcmd + (" cache del IDMAP/UID2SID/%s" % (uid)))
+    for gids in gids:
+        os.system(netcmd + (" cache del IDMAP/GID2SID/%s" % (gid)))
 
 def fill_cache(inids, idtype='gid'):
     for inid in inids:
@@ -31,7 +36,7 @@ domsid = domsid.split(' ')[0]
 
 sids=[ domsid + '-512', 'S-1-5-32-545', domsid + '-513', 'S-1-1-0', 'S-1-3-1', 'S-1-5-1' ]
 
-flush_cache()
+flush_cache(sids=sids)
 
 sids2xids = subprocess.Popen([wbinfo, '--sids-to-unix-ids=' +  ','.join(sids)],
                              stdout=subprocess.PIPE).communicate()[0].strip()
@@ -74,7 +79,7 @@ def check_singular(sids, ids, idtype='gid'):
                                  stdout=subprocess.PIPE).communicate()[0].strip()
         if outid != ids[i]:
             print "Expected %s, got %s\n" % (outid, ids[i])
-            flush_cache()
+            flush_cache(sids=sids, uids=uids, gids=gids)
             sys.exit(1)
         i += 1
 
@@ -90,7 +95,7 @@ def check_multiple(sids, idtypes):
 
         if result[0] != idtypes[i]:
             print "Expected %s, got %s\n" % (idtypes[i], result[0])
-            flush_cache()
+            flush_cache(sids=sids, uids=uids, gids=gids)
             sys.exit(1)
         i += 1
 
@@ -99,22 +104,22 @@ check_singular(sids, gids, 'gid')
 check_singular(sids, uids, 'uid')
 
 # second round: with empty cache
-flush_cache()
+flush_cache(sids=sids, gids=gids)
 check_singular(sids, gids, 'gid')
-flush_cache()
+flush_cache(sids=sids, uids=uids)
 check_singular(sids, uids, 'uid')
 
 # third round: with filled cache via uid-to-sid
-flush_cache()
+flush_cache(sids=uids, uids=uids)
 fill_cache(uids, 'uid')
 check_multiple(sids, idtypes)
 
 # fourth round: with filled cache via gid-to-sid
-flush_cache()
+flush_cache(sids=sids, gids=gids)
 fill_cache(gids, 'gid')
 check_multiple(sids, idtypes)
 
 # flush the cache so any incorrect mappings don't break other tests
-flush_cache()
+flush_cache(sids=sids, uids=uids, gids=gids)
 
 sys.exit(0)