The branch, master has been updated
       via  5c98ccd... s4 python: Add unit tests related to PyLong/PyInt 
handling
       via  3fc9675... ldb: Fix a wrong changetype in unit test
       via  7703b89... pidl: Finish to fix the python generated code for 64bit 
integers
       via  0802f35... smbtorture: Fix loading of --load-list.
       via  653b30f... selftest: Clarify generation of idlist option.
      from  408a3aa... s4:lib/registry/ldb.c - cosmetic - fix comment

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


- Log -----------------------------------------------------------------
commit 5c98ccd70601c475f3bcb34e6a233069c9f542f6
Author: Matthieu Patou <m...@matws.net>
Date:   Tue Jun 22 00:58:48 2010 +0400

    s4 python: Add unit tests related to PyLong/PyInt handling
    
    Signed-off-by: Jelmer Vernooij <jel...@samba.org>

commit 3fc9675e93c3bfb3381b06bce3d2b130952e9026
Author: Matthieu Patou <m...@matws.net>
Date:   Tue Jun 22 19:57:22 2010 +0400

    ldb: Fix a wrong changetype in unit test
    
    Signed-off-by: Jelmer Vernooij <jel...@samba.org>

commit 7703b89ae57d76a3246db7489c77c9de848ea832
Author: Matthieu Patou <m...@matws.net>
Date:   Mon Jun 21 10:48:58 2010 +0400

    pidl: Finish to fix the python generated code for 64bit integers
    
    Signed-off-by: Jelmer Vernooij <jel...@samba.org>

commit 0802f354ea837b8884c861d6d98f20aa746e4445
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Fri Jun 25 02:40:37 2010 +0200

    smbtorture: Fix loading of --load-list.

commit 653b30f91f7f9e13f16d5d6134adaa04b0675257
Author: Jelmer Vernooij <jel...@samba.org>
Date:   Fri Jun 25 02:35:29 2010 +0200

    selftest: Clarify generation of idlist option.

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

Summary of changes:
 pidl/lib/Parse/Pidl/Samba4/Python.pm               |   33 ++++++++++++++++++--
 selftest/selftest.pl                               |    2 +
 source4/lib/ldb/tests/test-controls.sh             |    2 +-
 .../scripting/python/samba/tests/dcerpc/unix.py    |   13 ++++++-
 source4/selftest/tests.sh                          |    1 +
 source4/torture/smbtorture.c                       |   22 +++++++------
 6 files changed, 57 insertions(+), 16 deletions(-)


Changeset truncated at 500 lines:

diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm 
b/pidl/lib/Parse/Pidl/Samba4/Python.pm
index 4687a53..4c5cc1b 100644
--- a/pidl/lib/Parse/Pidl/Samba4/Python.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm
@@ -820,13 +820,40 @@ sub ConvertObjectFromPythonData($$$$$$;$)
                $actual_ctype = $actual_ctype->{DATA};
        }
 
-       if ($actual_ctype->{TYPE} eq "ENUM" or $actual_ctype->{TYPE} eq 
"BITMAP" or 
-               $actual_ctype->{TYPE} eq "SCALAR" and (
-               expandAlias($actual_ctype->{NAME}) =~ 
/^(u?int[0-9]*|hyper|NTTIME|time_t|NTTIME_hyper|NTTIME_1sec|dlong|udlong|udlongr)$/))
 {
+       if ($actual_ctype->{TYPE} eq "ENUM" or $actual_ctype->{TYPE} eq 
"BITMAP") {
                $self->pidl("PY_CHECK_TYPE(&PyInt_Type, $cvar, $fail);");
                $self->pidl("$target = PyInt_AsLong($cvar);");
                return;
        }
+       if ($actual_ctype->{TYPE} eq "SCALAR" ) {
+               if (expandAlias($actual_ctype->{NAME}) =~ 
/^(u?int64|hyper|dlong|udlong|udlongr|NTTIME_hyper|NTTIME|NTTIME_1sec)$/) {
+                       $self->pidl("if (PyObject_TypeCheck($cvar, 
&PyLong_Type)) {");
+                       $self->indent;
+                       $self->pidl("$target = PyLong_AsLongLong($cvar);");
+                       $self->deindent;
+                       $self->pidl("} else {");
+                       $self->indent;
+                       $self->pidl("if (PyObject_TypeCheck($cvar, 
&PyInt_Type)) {");
+                       $self->indent;
+                       $self->pidl("$target = PyInt_AsLong($cvar);");
+                       $self->deindent;
+                       $self->pidl("} else {");
+                       $self->indent;
+                       $self->pidl("PyErr_Format(PyExc_TypeError, \"Expected 
type %s or %s\",\\");
+                       $self->pidl("  PyInt_Type.tp_name, 
PyLong_Type.tp_name);");
+                       $self->pidl($fail);
+                       $self->deindent;
+                       $self->pidl("}");
+                       $self->deindent;
+                       $self->pidl("}");
+                       return;
+               }
+               if (expandAlias($actual_ctype->{NAME}) =~ 
/^(char|u?int[0-9]*|time_t)$/) {
+                       $self->pidl("PY_CHECK_TYPE(&PyInt_Type, $cvar, 
$fail);");
+                       $self->pidl("$target = PyInt_AsLong($cvar);");
+                       return;
+               }
+       }
 
        if ($actual_ctype->{TYPE} eq "STRUCT" or $actual_ctype->{TYPE} eq 
"INTERFACE") {
                my $ctype_name = $self->use_type_variable($ctype);
diff --git a/selftest/selftest.pl b/selftest/selftest.pl
index b0296e1..7f5aa76 100755
--- a/selftest/selftest.pl
+++ b/selftest/selftest.pl
@@ -944,6 +944,8 @@ $envvarstr
                        next;
                }
 
+               # Generate a file with the individual tests to run, if the 
+               # test runner for this test suite supports it.
                if ($$_[3] and $individual_tests and 
$individual_tests->{$name}) {
                        my ($fh, $listid_file) = tempfile(UNLINK => 0);
                        foreach (@{$individual_tests->{$name}}) {
diff --git a/source4/lib/ldb/tests/test-controls.sh 
b/source4/lib/ldb/tests/test-controls.sh
index c78acbf..868e8c2 100755
--- a/source4/lib/ldb/tests/test-controls.sh
+++ b/source4/lib/ldb/tests/test-controls.sh
@@ -37,7 +37,7 @@ EOF
 
 cat <<EOF | $VALGRIND ldbmodify --controls "relax:0" && exit 1
 dn: dc=bar
-changetype: replace
+changetype: modify
 replace someThing
 someThing: someThingElseBetter
 EOF
diff --git a/source4/scripting/python/samba/tests/dcerpc/unix.py 
b/source4/scripting/python/samba/tests/dcerpc/unix.py
index bd1fd6d..4e1fe65 100644
--- a/source4/scripting/python/samba/tests/dcerpc/unix.py
+++ b/source4/scripting/python/samba/tests/dcerpc/unix.py
@@ -26,14 +26,23 @@ class UnixinfoTests(RpcInterfaceTestCase):
         super(UnixinfoTests, self).setUp()
         self.conn = unixinfo.unixinfo("ncalrpc:", self.get_loadparm())
 
-    def test_getpwuid(self):
+    def test_getpwuid_int(self):
         infos = self.conn.GetPWUid(range(512))
         self.assertEquals(512, len(infos))
         self.assertEquals("/bin/false", infos[0].shell)
         self.assertTrue(isinstance(infos[0].homedir, unicode))
 
+    def test_getpwuid(self):
+        infos = self.conn.GetPWUid(map(long, range(512)))
+        self.assertEquals(512, len(infos))
+        self.assertEquals("/bin/false", infos[0].shell)
+        self.assertTrue(isinstance(infos[0].homedir, unicode))
+
     def test_gidtosid(self):
-        self.conn.GidToSid(1000)
+        self.conn.GidToSid(1000L)
 
     def test_uidtosid(self):
         self.conn.UidToSid(1000)
+    
+    def test_uidtosid_fail(self):
+        self.assertRaises(TypeError, self.conn.UidToSid, "100")
diff --git a/source4/selftest/tests.sh b/source4/selftest/tests.sh
index 6f53406..4181d83 100755
--- a/source4/selftest/tests.sh
+++ b/source4/selftest/tests.sh
@@ -517,3 +517,4 @@ plantestsuite "blackbox.upgradeprovision.py" none 
PYTHON="$PYTHON" $samba4srcdir
 plantestsuite "blackbox.setpassword.py" none PYTHON="$PYTHON" 
$samba4srcdir/setup/tests/blackbox_setpassword.sh "$PREFIX/provision"
 plantestsuite "blackbox.newuser.py" none PYTHON="$PYTHON" 
$samba4srcdir/setup/tests/blackbox_newuser.sh "$PREFIX/provision"
 plantestsuite "blackbox.group.py" none PYTHON="$PYTHON" 
$samba4srcdir/setup/tests/blackbox_group.sh "$PREFIX/provision"
+plantestsuite_loadlist "blaat" none PYTHON="$PYTHON" "$samba4srcdir/record.py"
diff --git a/source4/torture/smbtorture.c b/source4/torture/smbtorture.c
index 14eeff9..9786599 100644
--- a/source4/torture/smbtorture.c
+++ b/source4/torture/smbtorture.c
@@ -410,9 +410,10 @@ int main(int argc,char *argv[])
        int num_extra_users = 0;
        char **restricted = NULL;
        int num_restricted = -1;
+       const char *load_list = NULL;
        enum {OPT_LOADFILE=1000,OPT_UNCLIST,OPT_TIMELIMIT,OPT_DNS, OPT_LIST,
              OPT_DANGEROUS,OPT_SMB_PORTS,OPT_ASYNC,OPT_NUMPROGS,
-             OPT_EXTRA_USER,OPT_LOAD_LIST,};
+             OPT_EXTRA_USER,};
 
        struct poptOption long_options[] = {
                POPT_AUTOHELP
@@ -442,7 +443,7 @@ int main(int argc,char *argv[])
                 "set maximum time for smbtorture to live", "seconds"},
                {"extra-user",   0, POPT_ARG_STRING, NULL, OPT_EXTRA_USER,
                 "extra user credentials", NULL},
-               {"load-list", 0, POPT_ARG_STRING, NULL, OPT_LOAD_LIST,
+               {"load-list", 0, POPT_ARG_STRING, &load_list, 0,
             "load a test id list from a text file", NULL},
                POPT_COMMON_SAMBA
                POPT_COMMON_CONNECTION
@@ -496,14 +497,6 @@ int main(int argc,char *argv[])
                                talloc_free(option);
                        }
                        break;
-               case OPT_LOAD_LIST:
-                       restricted = file_lines_load(optarg, &num_restricted, 0,
-                                                                               
 talloc_autofree_context());
-                       if (restricted == NULL) {
-                               printf("Unable to read load list file '%s'\n", 
optarg);
-                               exit(1);
-                       }
-                       break;
                default:
                        if (opt < 0) {
                                printf("bad command line option %d\n", opt);
@@ -512,6 +505,15 @@ int main(int argc,char *argv[])
                }
        }
 
+       if (load_list != NULL) {
+               restricted = file_lines_load(load_list, &num_restricted, 0,
+                                                                        
talloc_autofree_context());
+               if (restricted == NULL) {
+                       printf("Unable to read load list file '%s'\n", 
load_list);
+                       exit(1);
+               }
+       }
+
        if (strcmp(target, "samba3") == 0) {
                lp_set_cmdline(cmdline_lp_ctx, "torture:samba3", "true");
                lp_set_cmdline(cmdline_lp_ctx, "torture:resume_key_support", 
"false");


-- 
Samba Shared Repository

Reply via email to