[SCM] Samba Shared Repository - branch master updated
Jelmer Vernooij
jelmer at samba.org
Wed Jan 20 21:19:29 MST 2010
The branch, master has been updated
via 9ddeac1... pyxattr: Factor out helper functions.
via 17d6f56... selftest: Cope with 'multipart' support in subunit.
via 8b0f319... pyxattr: Simplify tests.
via 05b4e29... pyxattr: Fix tests by not opening tdb files multiple times.
via 14b0fed... pyxattr: Fix tests by avoiding opening tdb files multiple times.
via 253a232... pyxattr: Fix memory leaks.
via 9a25380... pyxattr: Simplify tests.
via 7092e22... pyxattr: Fix return value, raise exception, fix memory leak.
via 342aff7... pyxattr: Use standard functions for error handling.
via 6afb162... pyxattr: Remove unnecessary hacks.
via f679def... s4: Fix a few warnings.
via 4b11e0c... pidl: Include Python.h first, to avoid warnings.
via c42242d... s4: Include Python.h early to avoid double definition errors.
from e8a99ac... s3: fix dnsupdate configure check
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 9ddeac17f58273730be605a1f08097a15a3204d1
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Thu Jan 21 17:17:02 2010 +1300
pyxattr: Factor out helper functions.
commit 17d6f56646b79ba1acecab6eb661cb6205c9b408
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Thu Jan 21 17:16:19 2010 +1300
selftest: Cope with 'multipart' support in subunit.
commit 8b0f31994c38b9f349fdda88a74e95a961582902
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Thu Jan 21 16:56:23 2010 +1300
pyxattr: Simplify tests.
commit 05b4e29f7f35108a7a17f072dc1329fc14d6b9ea
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Thu Jan 21 16:45:06 2010 +1300
pyxattr: Fix tests by not opening tdb files multiple times.
commit 14b0fed96c5d5acf9118156d29e469aed584c33d
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Thu Jan 21 16:44:20 2010 +1300
pyxattr: Fix tests by avoiding opening tdb files multiple times.
commit 253a232d300ac6a508983bbbb6eb6d0235d48722
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Thu Jan 21 16:44:12 2010 +1300
pyxattr: Fix memory leaks.
commit 9a253808383e1a2777c3c05a25be88ed25c51a13
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Thu Jan 21 16:41:30 2010 +1300
pyxattr: Simplify tests.
commit 7092e220b57867c35425f17d09c4cc1031932eda
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Thu Jan 21 16:29:15 2010 +1300
pyxattr: Fix return value, raise exception, fix memory leak.
commit 342aff75c5400ef6be855094e2fe42f444cc40de
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Thu Jan 21 16:28:24 2010 +1300
pyxattr: Use standard functions for error handling.
commit 6afb16253399a58ac06b0061cd7ceb112bcd172b
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Thu Jan 21 16:18:19 2010 +1300
pyxattr: Remove unnecessary hacks.
commit f679def4f2c4d878c8fac49ea248cfadb665168c
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Wed Jan 20 16:27:38 2010 +1300
s4: Fix a few warnings.
commit 4b11e0c67cbd611b7f295256f0aa6c55a8b88699
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Wed Jan 20 16:27:15 2010 +1300
pidl: Include Python.h first, to avoid warnings.
commit c42242d132144fbbdce97bd95f0e24bdf58a2c84
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Wed Jan 20 15:07:09 2010 +1300
s4: Include Python.h early to avoid double definition errors.
-----------------------------------------------------------------------
Summary of changes:
lib/talloc/pytalloc.c | 1 +
pidl/lib/Parse/Pidl/Samba4/Python.pm | 2 +-
selftest/Subunit.pm | 2 +-
source4/auth/pyauth.c | 1 +
source4/lib/ldb/tools/cmdline.c | 2 +
source4/lib/stream/packet.h | 1 +
source4/librpc/ndr/py_xattr.c | 9 +-
source4/param/provision.c | 2 +-
source4/scripting/python/pyxattr_native.c | 48 +++-----
source4/scripting/python/pyxattr_tdb.c | 54 ++++-----
source4/scripting/python/samba/tests/xattr.py | 160 +++++++++++--------------
source4/torture/rpc/samba3rpc.c | 1 -
source4/torture/smb2/acls.c | 4 +-
source4/utils/net/net.c | 2 +-
14 files changed, 130 insertions(+), 159 deletions(-)
Changeset truncated at 500 lines:
diff --git a/lib/talloc/pytalloc.c b/lib/talloc/pytalloc.c
index c6decf3..ad595a1 100644
--- a/lib/talloc/pytalloc.c
+++ b/lib/talloc/pytalloc.c
@@ -17,6 +17,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <Python.h>
#include "replace.h"
#include <talloc.h>
#include <pytalloc.h>
diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm
index 79c72d7..015c54d 100644
--- a/pidl/lib/Parse/Pidl/Samba4/Python.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm
@@ -1124,8 +1124,8 @@ sub Parse($$$$$)
$self->pidl_hdr("
/* Python wrapper functions auto-generated by pidl */
-#include \"includes.h\"
#include <Python.h>
+#include \"includes.h\"
#include \"librpc/rpc/dcerpc.h\"
#include \"lib/talloc/pytalloc.h\"
#include \"librpc/rpc/pyrpc.h\"
diff --git a/selftest/Subunit.pm b/selftest/Subunit.pm
index 9d67c81..718b8ce 100644
--- a/selftest/Subunit.pm
+++ b/selftest/Subunit.pm
@@ -38,7 +38,7 @@ sub parse_results($$$)
push (@$open_tests, $1);
} elsif (/^time: (\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)\n/) {
$msg_ops->report_time(mktime($6, $5, $4, $3, $2-1, $1-1900));
- } elsif (/^(success|successful|failure|fail|skip|knownfail|error|xfail|skip-testsuite|testsuite-failure|testsuite-xfail|testsuite-success|testsuite-error): (.*?)( \[)?([ \t]*)\n/) {
+ } elsif (/^(success|successful|failure|fail|skip|knownfail|error|xfail|skip-testsuite|testsuite-failure|testsuite-xfail|testsuite-success|testsuite-error): (.*?)( \[)?([ \t]*)( multipart)?\n/) {
$msg_ops->control_msg($_);
my $result = $1;
my $testname = $2;
diff --git a/source4/auth/pyauth.c b/source4/auth/pyauth.c
index 7ec7f3e..865609e 100644
--- a/source4/auth/pyauth.c
+++ b/source4/auth/pyauth.c
@@ -16,6 +16,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <Python.h>
#include "includes.h"
#include "param/param.h"
#include "pyauth.h"
diff --git a/source4/lib/ldb/tools/cmdline.c b/source4/lib/ldb/tools/cmdline.c
index 44ae23b..f2becb1 100644
--- a/source4/lib/ldb/tools/cmdline.c
+++ b/source4/lib/ldb/tools/cmdline.c
@@ -33,6 +33,8 @@
#include "auth/auth.h"
#include "ldb_wrap.h"
#include "param/param.h"
+#include "librpc/gen_ndr/drsblobs.h"
+#include "dsdb/schema/schema.h"
#include "dsdb/common/proto.h"
#endif
diff --git a/source4/lib/stream/packet.h b/source4/lib/stream/packet.h
index 85f0f26..a274bd3 100644
--- a/source4/lib/stream/packet.h
+++ b/source4/lib/stream/packet.h
@@ -23,6 +23,7 @@
struct packet_context;
struct tevent_context;
struct tevent_fd;
+struct socket_context;
typedef NTSTATUS (*packet_full_request_fn_t)(void *private_data,
DATA_BLOB blob, size_t *packet_size);
diff --git a/source4/librpc/ndr/py_xattr.c b/source4/librpc/ndr/py_xattr.c
index 15f2b9c..19c5f26 100644
--- a/source4/librpc/ndr/py_xattr.c
+++ b/source4/librpc/ndr/py_xattr.c
@@ -22,6 +22,7 @@
#ifndef Py_RETURN_NONE
#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None
#endif
+
static void PyType_AddMethods(PyTypeObject *type, PyMethodDef *methods)
{
PyObject *dict;
@@ -69,11 +70,15 @@ static PyObject *py_ntacl_print(PyObject *self, PyObject *args)
mem_ctx = talloc_new(NULL);
pr = talloc_zero(mem_ctx, struct ndr_print);
- if (!pr) return;
+ if (!pr) {
+ PyErr_NoMemory();
+ talloc_free(mem_ctx);
+ return NULL;
+ }
pr->print = ntacl_print_debug_helper;
ndr_print_xattr_NTACL(pr, "file", ntacl);
- talloc_free(pr);
+ talloc_free(mem_ctx);
Py_RETURN_NONE;
}
diff --git a/source4/param/provision.c b/source4/param/provision.c
index 7bd10ca..920a5d8 100644
--- a/source4/param/provision.c
+++ b/source4/param/provision.c
@@ -68,7 +68,7 @@ static PyObject *PyLdb_FromLdbContext(struct ldb_context *ldb_ctx)
if (ldb_mod == NULL)
return NULL;
- ldb_ctx_type = PyObject_GetAttrString(ldb_mod, "Ldb");
+ ldb_ctx_type = (PyTypeObject *)PyObject_GetAttrString(ldb_mod, "Ldb");
ret = (PyLdbObject *)ldb_ctx_type->tp_alloc(ldb_ctx_type, 0);
if (ret == NULL) {
diff --git a/source4/scripting/python/pyxattr_native.c b/source4/scripting/python/pyxattr_native.c
index 7cff42c..9b60039 100644
--- a/source4/scripting/python/pyxattr_native.c
+++ b/source4/scripting/python/pyxattr_native.c
@@ -19,7 +19,6 @@
*/
#include <Python.h>
-#include "version.h"
#include "includes.h"
#include "librpc/ndr/libndr.h"
#include "lib/util/wrap_xattr.h"
@@ -28,7 +27,7 @@
#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None
#endif
-static PyObject *py_is_xattr_supported(PyObject *self)
+static PyObject *py_is_xattr_supported(PyObject *self)
{
#if !defined(HAVE_XATTR_SUPPORT)
return Py_False;
@@ -36,6 +35,7 @@ static PyObject *py_is_xattr_supported(PyObject *self)
return Py_True;
#endif
}
+
static PyObject *py_wrap_setxattr(PyObject *self, PyObject *args)
{
char *filename, *attribute;
@@ -43,16 +43,17 @@ static PyObject *py_wrap_setxattr(PyObject *self, PyObject *args)
int blobsize;
DATA_BLOB blob;
- if (!PyArg_ParseTuple(args, "sss#", &filename,&attribute,&blob.data,&blobsize))
+ if (!PyArg_ParseTuple(args, "sss#", &filename, &attribute, &blob.data,
+ &blobsize))
return NULL;
blob.length = blobsize;
- ret = wrap_setxattr(filename,attribute,blob.data,blob.length,0);
+ ret = wrap_setxattr(filename, attribute, blob.data, blob.length, 0);
if( ret < 0 ) {
if (errno == ENOTSUP) {
- PyErr_SetString(PyExc_IOError, strerror(errno));
+ PyErr_SetFromErrno(PyExc_IOError);
} else {
- PyErr_SetString(PyExc_TypeError, strerror(errno));
+ PyErr_SetFromErrno(PyExc_TypeError);
}
return NULL;
}
@@ -64,33 +65,35 @@ static PyObject *py_wrap_getxattr(PyObject *self, PyObject *args)
char *filename, *attribute;
int len;
TALLOC_CTX *mem_ctx;
- uint8_t *buf;
+ char *buf;
PyObject *ret;
- if (!PyArg_ParseTuple(args, "ss", &filename,&attribute))
+ if (!PyArg_ParseTuple(args, "ss", &filename, &attribute))
return NULL;
mem_ctx = talloc_new(NULL);
len = wrap_getxattr(filename,attribute,NULL,0);
if( len < 0 ) {
if (errno == ENOTSUP) {
- PyErr_SetString(PyExc_IOError, strerror(errno));
+ PyErr_SetFromErrno(PyExc_IOError);
} else {
- PyErr_SetString(PyExc_TypeError, strerror(errno));
+ PyErr_SetFromErrno(PyExc_TypeError);
}
+ talloc_free(mem_ctx);
return NULL;
}
/* check length ... */
- buf = talloc_zero_array(mem_ctx, uint8_t, len);
- len = wrap_getxattr(filename,attribute,buf,len);
+ buf = talloc_zero_array(mem_ctx, char, len);
+ len = wrap_getxattr(filename, attribute, buf, len);
if( len < 0 ) {
if (errno == ENOTSUP) {
- PyErr_SetString(PyExc_IOError, strerror(errno));
+ PyErr_SetFromErrno(PyExc_IOError);
} else {
- PyErr_SetString(PyExc_TypeError, strerror(errno));
+ PyErr_SetFromErrno(PyExc_TypeError);
}
+ talloc_free(mem_ctx);
return NULL;
}
- ret = PyString_FromStringAndSize(buf,len);
- talloc_free(buf);
+ ret = PyString_FromStringAndSize(buf, len);
+ talloc_free(mem_ctx);
return ret;
}
@@ -112,19 +115,8 @@ void initxattr_native(void)
m = Py_InitModule3("xattr_native", py_xattr_methods,
"Python bindings for xattr manipulation.");
+
if (m == NULL)
return;
-
- PyModule_AddObject(m, "version", PyString_FromString(SAMBA_VERSION_STRING));
-
- /* one of the most annoying things about python scripts is
- that they don't die when you hit control-C. This fixes that
- sillyness. As we do all database operations using
- transactions, this is also safe. In fact, not dying
- immediately is unsafe as we could end up treating the
- control-C exception as a different error and try to modify
- as database incorrectly
- */
- signal(SIGINT, SIG_DFL);
}
diff --git a/source4/scripting/python/pyxattr_tdb.c b/source4/scripting/python/pyxattr_tdb.c
index aa511fa..e49cd88 100644
--- a/source4/scripting/python/pyxattr_tdb.c
+++ b/source4/scripting/python/pyxattr_tdb.c
@@ -19,36 +19,34 @@
*/
#include <Python.h>
-#include "version.h"
#include "includes.h"
-#include "../tdb/include/tdb.h"
+#include <tdb.h>
#include "tdb_wrap.h"
#include "librpc/ndr/libndr.h"
#include "lib/util/wrap_xattr.h"
#include "ntvfs/posix/vfs_posix.h"
+#include "libcli/util/pyerrors.h"
#ifndef Py_RETURN_NONE
#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None
#endif
-static PyObject *py_is_xattr_supported(PyObject *self)
+static PyObject *py_is_xattr_supported(PyObject *self)
{
-#if !defined(HAVE_XATTR_SUPPORT)
- return Py_False;
-#else
return Py_True;
-#endif
}
+
static PyObject *py_wrap_setxattr(PyObject *self, PyObject *args)
{
char *filename, *attribute, *tdbname;
DATA_BLOB blob;
int blobsize;
- NTSTATUS status;
+ NTSTATUS status;
TALLOC_CTX *mem_ctx;
struct tdb_wrap *eadb;
- if (!PyArg_ParseTuple(args, "ssss#", &tdbname,&filename,&attribute,&blob.data,&blobsize))
+ if (!PyArg_ParseTuple(args, "ssss#", &tdbname, &filename, &attribute,
+ &blob.data, &blobsize))
return NULL;
blob.length = blobsize;
@@ -58,12 +56,17 @@ static PyObject *py_wrap_setxattr(PyObject *self, PyObject *args)
if (eadb == NULL) {
PyErr_SetFromErrno(PyExc_IOError);
+ talloc_free(mem_ctx);
return NULL;
- } status = push_xattr_blob_tdb_raw(eadb,mem_ctx,attribute,filename,-1,&blob);
- if( !NT_STATUS_IS_OK(status) ) {
- PyErr_SetString(PyExc_TypeError, strerror(errno));
+ }
+ status = push_xattr_blob_tdb_raw(eadb, mem_ctx, attribute, filename, -1,
+ &blob);
+ if (!NT_STATUS_IS_OK(status)) {
+ PyErr_FromNTSTATUS(status);
+ talloc_free(mem_ctx);
return NULL;
}
+ talloc_free(mem_ctx);
Py_RETURN_NONE;
}
@@ -76,23 +79,26 @@ static PyObject *py_wrap_getxattr(PyObject *self, PyObject *args)
NTSTATUS status;
struct tdb_wrap *eadb = NULL;
- if (!PyArg_ParseTuple(args, "sss", &tdbname,&filename,&attribute))
+ if (!PyArg_ParseTuple(args, "sss", &tdbname, &filename, &attribute))
return NULL;
mem_ctx = talloc_new(NULL);
eadb = tdb_wrap_open(mem_ctx, tdbname, 50000,
TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
if (eadb == NULL) {
-
PyErr_SetFromErrno(PyExc_IOError);
+ talloc_free(mem_ctx);
return NULL;
}
- status = pull_xattr_blob_tdb_raw(eadb,mem_ctx,attribute,filename,-1,100,&blob);
- if( !NT_STATUS_IS_OK(status) || blob.length < 0 ) {
- PyErr_SetString(PyExc_TypeError, get_friendly_nt_error_msg(status));
+ status = pull_xattr_blob_tdb_raw(eadb, mem_ctx, attribute, filename,
+ -1, 100, &blob);
+ if (!NT_STATUS_IS_OK(status) || blob.length < 0) {
+ PyErr_FromNTSTATUS(status);
+ talloc_free(mem_ctx);
return NULL;
}
- ret = PyString_FromStringAndSize(blob.data,blob.length);
+ ret = PyString_FromStringAndSize((char *)blob.data, blob.length);
+ talloc_free(mem_ctx);
return ret;
}
@@ -116,17 +122,5 @@ void initxattr_tdb(void)
"Python bindings for xattr manipulation.");
if (m == NULL)
return;
-
- PyModule_AddObject(m, "version", PyString_FromString(SAMBA_VERSION_STRING));
-
- /* one of the most annoying things about python scripts is
- that they don't die when you hit control-C. This fixes that
- sillyness. As we do all database operations using
- transactions, this is also safe. In fact, not dying
- immediately is unsafe as we could end up treating the
- control-C exception as a different error and try to modify
- as database incorrectly
- */
- signal(SIGINT, SIG_DFL);
}
diff --git a/source4/scripting/python/samba/tests/xattr.py b/source4/scripting/python/samba/tests/xattr.py
index fcc2a3a..9bfe52c 100644
--- a/source4/scripting/python/samba/tests/xattr.py
+++ b/source4/scripting/python/samba/tests/xattr.py
@@ -19,109 +19,85 @@
import samba.xattr_native, samba.xattr_tdb
from samba.dcerpc import xattr
-from samba.ndr import ndr_pack, ndr_unpack
-from unittest import TestCase
+from samba.ndr import ndr_pack
+from testtools.testcase import TestCase, TestSkipped
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 _tmpfilename(self):
+ random.seed()
+ path = os.environ['SELFTEST_PREFIX']
+ return os.path.join(path, "pytests"+str(int(100000*random.random())))
+
+ def _eadbpath(self):
+ return os.path.join(os.environ['SELFTEST_PREFIX'], "eadb.tdb")
+ def test_set_xattr_native(self):
+ if not samba.xattr_native.is_xattr_supported():
+ raise TestSkipped()
+ ntacl = xattr.NTACL()
+ ntacl.version = 1
+ tempf = self._tmpfilename()
+ open(tempf, 'w').write("empty")
+ try:
+ samba.xattr_native.wrap_setxattr(tempf, "user.unittests",
+ ndr_pack(ntacl))
+ except IOError:
+ raise TestSkipped("the filesystem where the tests are runned do not support XATTR")
+ os.unlink(tempf)
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"
+ if not samba.xattr_native.is_xattr_supported():
+ raise TestSkipped()
+ tempf = self._tmpfilename()
+ 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:
+ raise TestSkipped("the filesystem where the tests are runned do not support XATTR")
+ os.unlink(tempf)
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_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"))
+ tempf = self._tmpfilename()
+ eadb_path = self._eadbpath()
+ ntacl = xattr.NTACL()
+ ntacl.version = 1
+ open(tempf, 'w').write("empty")
+ try:
+ samba.xattr_tdb.wrap_setxattr(eadb_path,
+ tempf, "user.unittests", ndr_pack(ntacl))
+ finally:
+ os.unlink(tempf)
+ os.unlink(eadb_path)
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)
+ tempf = self._tmpfilename()
+ ntacl = xattr.NTACL()
+ ntacl.version = 1
--
Samba Shared Repository
More information about the samba-cvs
mailing list