From 711c7606a5a2c36ea252ffd6d3aafc06fa5b675c Mon Sep 17 00:00:00 2001 From: Matthieu Patou Date: Fri, 8 Jan 2010 13:13:02 +0300 Subject: [PATCH] s4-tests: register new unit tests make unit test emit a visible warning --- source4/scripting/python/samba/tests/ntacls.py | 34 ++++++-- source4/scripting/python/samba/tests/xattr.py | 109 ++++++++++++++++++------- source4/selftest/tests.sh | 1 + 3 files changed, 107 insertions(+), 37 deletions(-) diff --git a/source4/scripting/python/samba/tests/ntacls.py b/source4/scripting/python/samba/tests/ntacls.py index b5d5bbab4ef..0add258a3e4 100644 --- a/source4/scripting/python/samba/tests/ntacls.py +++ b/source4/scripting/python/samba/tests/ntacls.py @@ -29,8 +29,12 @@ class NtaclsTests(TestCase): def test_setntacl(self): random.seed() lp=LoadParm() + path=None + try: + path=os.environ['SELFTEST_PREFIX'] + except: + self.assertTrue(path!=None, "SELFTEST_PREFIX env not set") acl="O:S-1-5-21-2212615479-2695158682-2101375467-512G:S-1-5-21-2212615479-2695158682-2101375467-513D:(A;OICI;0x001f01ff;;;S-1-5-21-2212615479-2695158682-2101375467-512)" - path=os.environ['SELFTEST_PREFIX'] tempf=os.path.join(path,"pytests"+str(int(100000*random.random()))) ntacl=xattr.NTACL() ntacl.version = 1 @@ -42,8 +46,12 @@ class NtaclsTests(TestCase): def test_setntacl_getntacl(self): random.seed() lp=LoadParm() + path=None + try: + path=os.environ['SELFTEST_PREFIX'] + except: + self.assertTrue(path!=None, "SELFTEST_PREFIX env not set") acl="O:S-1-5-21-2212615479-2695158682-2101375467-512G:S-1-5-21-2212615479-2695158682-2101375467-513D:(A;OICI;0x001f01ff;;;S-1-5-21-2212615479-2695158682-2101375467-512)" - path=os.environ['SELFTEST_PREFIX'] tempf=os.path.join(path,"pytests"+str(int(100000*random.random()))) ntacl=xattr.NTACL() ntacl.version = 1 @@ -59,22 +67,30 @@ class NtaclsTests(TestCase): random.seed() lp=LoadParm() acl="O:S-1-5-21-2212615479-2695158682-2101375467-512G:S-1-5-21-2212615479-2695158682-2101375467-513D:(A;OICI;0x001f01ff;;;S-1-5-21-2212615479-2695158682-2101375467-512)" - path=os.environ['SELFTEST_PREFIX'] + path=None + try: + path=os.environ['SELFTEST_PREFIX'] + except: + self.assertTrue(path!=None, "SELFTEST_PREFIX env not set") tempf=os.path.join(path,"pytests"+str(int(100000*random.random()))) ntacl=xattr.NTACL() ntacl.version = 1 open(tempf, 'w').write("empty") setntacl(lp,tempf,acl,"S-1-5-21-2212615479-2695158682-2101375467","tdb",os.path.join(path,"eadbtest.tdb")) facl=getntacl(lp,tempf,"tdb",os.path.join(path,"eadbtest.tdb")) - anysid=security.dom_sid(security.SID_NT_SELF) - self.assertEquals(facl.info.as_sddl(anysid),acl) + domsid=security.dom_sid(security.SID_NT_SELF) + self.assertEquals(facl.info.as_sddl(domsid),acl) os.unlink(tempf) def test_setntacl_invalidbackend(self): random.seed() lp=LoadParm() acl="O:S-1-5-21-2212615479-2695158682-2101375467-512G:S-1-5-21-2212615479-2695158682-2101375467-513D:(A;OICI;0x001f01ff;;;S-1-5-21-2212615479-2695158682-2101375467-512)" - path=os.environ['SELFTEST_PREFIX'] + path=None + try: + path=os.environ['SELFTEST_PREFIX'] + except: + self.assertTrue(path!=None, "SELFTEST_PREFIX env not set") tempf=os.path.join(path,"pytests"+str(int(100000*random.random()))) ntacl=xattr.NTACL() ntacl.version = 1 @@ -86,7 +102,11 @@ class NtaclsTests(TestCase): random.seed() lp=LoadParm() acl="O:S-1-5-21-2212615479-2695158682-2101375467-512G:S-1-5-21-2212615479-2695158682-2101375467-513D:(A;OICI;0x001f01ff;;;S-1-5-21-2212615479-2695158682-2101375467-512)" - path=os.environ['SELFTEST_PREFIX'] + path=None + try: + path=os.environ['SELFTEST_PREFIX'] + except: + self.assertTrue(path!=None, "SELFTEST_PREFIX env not set") tempf=os.path.join(path,"pytests"+str(int(100000*random.random()))) ntacl=xattr.NTACL() ntacl.version = 1 diff --git a/source4/scripting/python/samba/tests/xattr.py b/source4/scripting/python/samba/tests/xattr.py index 9beff93933e..fcc2a3a2e42 100644 --- a/source4/scripting/python/samba/tests/xattr.py +++ b/source4/scripting/python/samba/tests/xattr.py @@ -24,55 +24,104 @@ from unittest import TestCase import random import os import tdb +import sys class XattrTests(TestCase): def test_set_xattr_native(self): if samba.xattr_native.is_xattr_supported(): random.seed() + path=None + try: + path=os.environ['SELFTEST_PREFIX'] + except: + self.assertTrue(path!=None, "SELFTEST_PREFIX env not set") + if path: + path=os.environ['SELFTEST_PREFIX'] + tempf=os.path.join(path,"pytests"+str(int(100000*random.random()))) + ntacl=xattr.NTACL() + ntacl.version = 1 + open(tempf, 'w').write("empty") + try: + samba.xattr_native.wrap_setxattr(tempf,"user.unittests",ndr_pack(ntacl)) + except IOError: + print >>sys.stderr, "WARNING: the filesystem where the tests are runned do not support XATTR, tests SKIPED" + os.unlink(tempf) + else: + print >>sys.stderr, "WARNING: the filesystem where the tests are runned do not support XATTR, tests SKIPED" + + + def test_set_and_get_native(self): + if samba.xattr_native.is_xattr_supported(): + random.seed() + path=None + try: + path=os.environ['SELFTEST_PREFIX'] + except: + self.assertTrue(path!=None, "SELFTEST_PREFIX env not set") + if path: + path=os.environ['SELFTEST_PREFIX'] + tempf=os.path.join(path,"pytests"+str(int(100000*random.random()))) + reftxt="this is a test" + open(tempf, 'w').write("empty") + try: + samba.xattr_native.wrap_setxattr(tempf,"user.unittests",reftxt) + text = samba.xattr_native.wrap_getxattr(tempf,"user.unittests") + self.assertEquals(text,reftxt) + except IOError: + print >>sys.stderr,"WARNING: the filesystem where the tests are runned do not support XATTR, tests SKIPED" + os.unlink(tempf) + else: + print >>sys.stderr,"WARNING: the filesystem where the tests are runned do not support XATTR, tests SKIPED" + + def test_set_xattr_tdb(self): + path=None + try: path=os.environ['SELFTEST_PREFIX'] + except: + self.assertTrue(path!=None, "SELFTEST_PREFIX env not set") + if path: + eadb=tdb.Tdb(os.path.join(path,"eadb.tdb"), 50000, tdb.DEFAULT, os.O_CREAT|os.O_RDWR) + random.seed() tempf=os.path.join(path,"pytests"+str(int(100000*random.random()))) ntacl=xattr.NTACL() ntacl.version = 1 open(tempf, 'w').write("empty") - samba.xattr_native.wrap_setxattr(tempf,"user.unittests",ndr_pack(ntacl)) + samba.xattr_tdb.wrap_setxattr(os.path.join(path,"eadb.tdb"),tempf,"user.unittests",ndr_pack(ntacl)) os.unlink(tempf) + os.unlink(os.path.join(path,"eadb.tdb")) - def test_set_and_get_native(self): - if samba.xattr_native.is_xattr_supported(): + def test_set_tdb_not_open(self): + path=None + try: + path=os.environ['SELFTEST_PREFIX'] + except: + self.assertTrue(path!=None, "SELFTEST_PREFIX env not set") + if path: + eadb=tdb.Tdb(os.path.join(path,"eadb.tdb"), 50000, tdb.DEFAULT, os.O_CREAT|os.O_RDWR) random.seed() + tempf=os.path.join(path,"pytests"+str(int(100000*random.random()))) + ntacl=xattr.NTACL() + ntacl.version = 1 + open(tempf, 'w').write("empty") + self.assertRaises(IOError,samba.xattr_tdb.wrap_setxattr,os.path.join(path,os.path.join("nonexistent","eadb.tdb")),tempf,"user.unittests",ndr_pack(ntacl)) + os.unlink(tempf) + + def test_set_and_get_tdb(self): + path=None + try: path=os.environ['SELFTEST_PREFIX'] + except: + self.assertTrue(path!=None, "SELFTEST_PREFIX env not set") + if path: + random.seed() tempf=os.path.join(path,"pytests"+str(int(100000*random.random()))) reftxt="this is a test" open(tempf, 'w').write("empty") - samba.xattr_native.wrap_setxattr(tempf,"user.unittests",reftxt) - text = samba.xattr_native.wrap_getxattr(tempf,"user.unittests") + samba.xattr_tdb.wrap_setxattr(os.path.join(path,"eadb.tdb"),tempf,"user.unittests",reftxt) + text = samba.xattr_tdb.wrap_getxattr(os.path.join(path,"eadb.tdb"),tempf,"user.unittests") self.assertEquals(text,reftxt) os.unlink(tempf) - - def test_set_xattr_tdb(self): - path=os.environ['SELFTEST_PREFIX'] - eadb=tdb.Tdb(os.path.join(path,"eadb.tdb"), 50000, tdb.DEFAULT, os.O_CREAT|os.O_RDWR) - random.seed() - tempf=os.path.join(path,"pytests"+str(int(100000*random.random()))) - ntacl=xattr.NTACL() - ntacl.version = 1 - open(tempf, 'w').write("empty") - samba.xattr_tdb.wrap_setxattr(eadb,tempf,"user.unittests",ndr_pack(ntacl)) - os.unlink(tempf) - os.unlink(os.path.join(path,"eadb.tdb")) - - def test_set_and_get_tdb(self): - path=os.environ['SELFTEST_PREFIX'] - eadb=tdb.Tdb(os.path.join(path,"eadb.tdb"), 50000, tdb.DEFAULT, os.O_CREAT|os.O_RDWR) - random.seed() - tempf=os.path.join(path,"pytests"+str(int(100000*random.random()))) - reftxt="this is a test" - open(tempf, 'w').write("empty") - samba.xattr_tdb.wrap_setxattr(eadb,tempf,"user.unittests",reftxt) - text = samba.xattr_tdb.wrap_getxattr(eadb,tempf,"user.unittests") - self.assertEquals(text,reftxt) - os.unlink(tempf) - os.unlink(os.path.join(path,"eadb.tdb")) + os.unlink(os.path.join(path,"eadb.tdb")) diff --git a/source4/selftest/tests.sh b/source4/selftest/tests.sh index 6bfe4283928..753163cfa94 100755 --- a/source4/selftest/tests.sh +++ b/source4/selftest/tests.sh @@ -466,6 +466,7 @@ plantest "ldap.possibleInferiors.python" dc $PYTHON $samba4srcdir/dsdb/samdb/ldb plantest "ldap.secdesc.python" dc PYTHONPATH="$PYTHONPATH:../lib/subunit/python" $PYTHON $samba4srcdir/lib/ldb/tests/python/sec_descriptor.py $CONFIGURATION \$SERVER -U\$USERNAME%\$PASSWORD -W \$DOMAIN plantest "ldap.acl.python" dc PYTHONPATH="$PYTHONPATH:../lib/subunit/python" $PYTHON $samba4srcdir/lib/ldb/tests/python/acl.py $CONFIGURATION \$SERVER -U\$USERNAME%\$PASSWORD -W \$DOMAIN plantest "xattr.python" none $SUBUNITRUN samba.tests.xattr +plantest "ntacls.python" none $SUBUNITRUN samba.tests.ntacls plantest "blackbox.samba3dump" none $PYTHON $samba4srcdir/scripting/bin/samba3dump $samba4srcdir/../testdata/samba3 rm -rf $PREFIX/upgrade plantest "blackbox.upgrade" none $PYTHON $samba4srcdir/setup/upgrade_from_s3 $CONFIGURATION --targetdir=$PREFIX/upgrade $samba4srcdir/../testdata/samba3 ../testdata/samba3/smb.conf -- 2.11.4.GIT