diff options
Diffstat (limited to 'source4/scripting')
-rw-r--r-- | source4/scripting/python/pyxattr_tdb.c | 7 | ||||
-rw-r--r-- | source4/scripting/python/samba/tests/xattr.py | 50 |
2 files changed, 53 insertions, 4 deletions
diff --git a/source4/scripting/python/pyxattr_tdb.c b/source4/scripting/python/pyxattr_tdb.c index 19b4f417a8..aa511fa5e7 100644 --- a/source4/scripting/python/pyxattr_tdb.c +++ b/source4/scripting/python/pyxattr_tdb.c @@ -33,12 +33,11 @@ static PyObject *py_is_xattr_supported(PyObject *self) { -/*#if !defined(HAVE_XATTR_SUPPORT) +#if !defined(HAVE_XATTR_SUPPORT) return Py_False; #else return Py_True; -#endif*/ - return Py_True; +#endif } static PyObject *py_wrap_setxattr(PyObject *self, PyObject *args) { @@ -105,7 +104,7 @@ static PyMethodDef py_xattr_methods[] = { "wrap_setxattr(filename,attribute,value)\n" "Set the given attribute to the given value on the given file." }, { "is_xattr_supported", (PyCFunction)py_is_xattr_supported, METH_NOARGS, - "Return true if xattr backed by tdb are supported on this system\n"}, + "Return true if xattr are supported on this system\n"}, { NULL } }; diff --git a/source4/scripting/python/samba/tests/xattr.py b/source4/scripting/python/samba/tests/xattr.py new file mode 100644 index 0000000000..f0e6f31515 --- /dev/null +++ b/source4/scripting/python/samba/tests/xattr.py @@ -0,0 +1,50 @@ +#!/usr/bin/python + +# Unix SMB/CIFS implementation. Tests for xattr manipulation +# Copyright (C) Matthieu Patou <mat@matws.net> 2009 +# +# 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 samba.xattr import wrap_getxattr, wrap_setxattr, is_xattr_supported +from samba.dcerpc import xattr +from samba.ndr import ndr_pack, ndr_unpack +from unittest import TestCase +import random +import os + +class XattrTests(TestCase): + + def test_set_packeddata(self): + if is_xattr_supported(): + random.seed() + + tempf=os.path.join(os.environ("SELFTEST_PREFIX"),"pytests"+str(int(100000*random.random()))) + ntacl=xattr.NTACL() + ntacl.version = 1 + open(tempf, 'w').write("empty") + wrap_setxattr(tempf,"user.unittests",ndr_pack(ntacl)) + os.unlink(tempf) + + def test_set_and_get(self): + if is_xattr_supported(): + random.seed() + tempf=os.path.join(os.environ("SELFTEST_PREFIX"),"pytests"+str(int(100000*random.random()))) + reftxt="this is a test" + open(tempf, 'w').write("empty") + wrap_setxattr(tempf,"user.unittests",reftxt) + text = wrap_getxattr(tempf,"user.unittests") + self.assertEquals(text,reftxt) + os.unlink(tempf) + |