The branch, master has been updated
       via  a19929dac185cebd4ec70e8aa3703a8bb884385f (commit)
       via  7bd4e6e4956d4e979a6c272bc7de187e209b0710 (commit)
      from  5c090e5cda0db947a435915b563145c23dbb30d7 (commit)

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


- Log -----------------------------------------------------------------
commit a19929dac185cebd4ec70e8aa3703a8bb884385f
Author: Jelmer Vernooij <[EMAIL PROTECTED]>
Date:   Sun Oct 12 05:59:50 2008 +0200

    Add more tests to datablob testsuite.

commit 7bd4e6e4956d4e979a6c272bc7de187e209b0710
Author: Jelmer Vernooij <[EMAIL PROTECTED]>
Date:   Sun Oct 12 05:23:26 2008 +0200

    Use common signal helper implementation.

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

Summary of changes:
 lib/util/tests/data_blob.c |   46 ++++++++++++++-
 source3/Makefile.in        |    2 +-
 source3/lib/signal.c       |  138 --------------------------------------------
 3 files changed, 45 insertions(+), 141 deletions(-)
 delete mode 100644 source3/lib/signal.c


Changeset truncated at 500 lines:

diff --git a/lib/util/tests/data_blob.c b/lib/util/tests/data_blob.c
index 5dd1adc..e0be7a4 100644
--- a/lib/util/tests/data_blob.c
+++ b/lib/util/tests/data_blob.c
@@ -27,10 +27,48 @@ static bool test_string(struct torture_context *tctx)
        DATA_BLOB blob = data_blob_string_const("bla"); 
 
        torture_assert_int_equal(tctx, blob.length, 3, "blob length");
-       torture_assert_str_equal(tctx, blob.data, "bla", "blob data");
+       torture_assert_str_equal(tctx, (char *)blob.data, "bla", "blob data");
 
-       data_blob_free(&blob);
+       return true;
+}
+
+static bool test_zero(struct torture_context *tctx)
+{
+       int i;
+       DATA_BLOB z = data_blob_talloc_zero(tctx, 4);
+       torture_assert_int_equal(tctx, z.length, 4, "length");
+       for (i = 0; i < z.length; i++)
+               torture_assert_int_equal(tctx, z.data[i], 0, "contents");
+       data_blob_free(&z);
+       return true;
+}
+
+
+static bool test_clear(struct torture_context *tctx)
+{
+       int i;
+       DATA_BLOB z = data_blob("lalala", 6);
+       torture_assert_int_equal(tctx, z.length, 6, "length");
+       data_blob_clear(&z);
+       for (i = 0; i < z.length; i++)
+               torture_assert_int_equal(tctx, z.data[i], 0, "contents");
+       data_blob_free(&z);
+       return true;
+}
+
+static bool test_cmp(struct torture_context *tctx)
+{
+       DATA_BLOB a = data_blob_string_const("bla");
+       DATA_BLOB b = data_blob_string_const("blae");
+       torture_assert(tctx, data_blob_cmp(&a, &b) != 0, "cmp different");
+       torture_assert(tctx, data_blob_cmp(&a, &a) == 0, "cmp self");
+       return true;
+}
 
+static bool test_hex_string(struct torture_context *tctx)
+{
+       DATA_BLOB a = data_blob_string_const("\xC\xA\xF\xE");
+       torture_assert_str_equal(tctx, data_blob_hex_string(tctx, &a), 
"0C0A0F0E", "hex string");
        return true;
 }
 
@@ -39,6 +77,10 @@ struct torture_suite 
*torture_local_util_data_blob(TALLOC_CTX *mem_ctx)
        struct torture_suite *suite = torture_suite_create(mem_ctx, "DATABLOB");
 
        torture_suite_add_simple_test(suite, "string", test_string);
+       torture_suite_add_simple_test(suite, "zero", test_zero);;
+       torture_suite_add_simple_test(suite, "clear", test_clear);
+       torture_suite_add_simple_test(suite, "cmp", test_cmp);
+       torture_suite_add_simple_test(suite, "hex string", test_hex_string);
 
        return suite;
 }
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 6ebaa8f..d1eb3d5 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -319,7 +319,7 @@ LIB_OBJ = $(LIBSAMBAUTIL_OBJ) \
          $(VERSION_OBJ) lib/charcnv.o lib/debug.o lib/fault.o \
          lib/interface.o ../lib/crypto/md4.o \
          lib/pidfile.o \
-         lib/signal.o lib/system.o lib/sendfile.o lib/recvfile.o lib/time.o \
+         ../lib/util/signal.o lib/system.o lib/sendfile.o lib/recvfile.o 
lib/time.o \
          ../lib/util/time.o \
          lib/ufc.o lib/genrand.o lib/username.o \
          lib/util_pw.o lib/access.o lib/smbrun.o \
diff --git a/source3/lib/signal.c b/source3/lib/signal.c
deleted file mode 100644
index 4b1c95e..0000000
--- a/source3/lib/signal.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-   signal handling functions
-
-   Copyright (C) Andrew Tridgell 1998
-   
-   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/>.
-*/
-
-#include "includes.h"
-
-/****************************************************************************
- Catch child exits and reap the child zombie status.
-****************************************************************************/
-
-static void sig_cld(int signum)
-{
-       while (sys_waitpid((pid_t)-1,(int *)NULL, WNOHANG) > 0)
-               ;
-
-       /*
-        * Turns out it's *really* important not to
-        * restore the signal handler here if we have real POSIX
-        * signal handling. If we do, then we get the signal re-delivered
-        * immediately - hey presto - instant loop ! JRA.
-        */
-
-#if !defined(HAVE_SIGACTION)
-       CatchSignal(SIGCLD, sig_cld);
-#endif
-}
-
-/****************************************************************************
-catch child exits - leave status;
-****************************************************************************/
-
-static void sig_cld_leave_status(int signum)
-{
-       /*
-        * Turns out it's *really* important not to
-        * restore the signal handler here if we have real POSIX
-        * signal handling. If we do, then we get the signal re-delivered
-        * immediately - hey presto - instant loop ! JRA.
-        */
-
-#if !defined(HAVE_SIGACTION)
-       CatchSignal(SIGCLD, sig_cld_leave_status);
-#endif
-}
-
-/*******************************************************************
- Block sigs.
-********************************************************************/
-
-void BlockSignals(bool block,int signum)
-{
-#ifdef HAVE_SIGPROCMASK
-       sigset_t set;
-       sigemptyset(&set);
-       sigaddset(&set,signum);
-       sigprocmask(block?SIG_BLOCK:SIG_UNBLOCK,&set,NULL);
-#elif defined(HAVE_SIGBLOCK)
-       if (block) {
-               sigblock(sigmask(signum));
-       } else {
-               sigsetmask(siggetmask() & ~sigmask(signum));
-       }
-#else
-       /* yikes! This platform can't block signals? */
-       static int done;
-       if (!done) {
-               DEBUG(0,("WARNING: No signal blocking available\n"));
-               done=1;
-       }
-#endif
-}
-
-/*******************************************************************
- Catch a signal. This should implement the following semantics:
-
- 1) The handler remains installed after being called.
- 2) The signal should be blocked during handler execution.
-********************************************************************/
-
-void (*CatchSignal(int signum,void (*handler)(int )))(int)
-{
-#ifdef HAVE_SIGACTION
-       struct sigaction act;
-       struct sigaction oldact;
-
-       ZERO_STRUCT(act);
-
-       act.sa_handler = handler;
-#ifdef SA_RESTART
-       /*
-        * We *want* SIGALRM to interrupt a system call.
-        */
-       if(signum != SIGALRM)
-               act.sa_flags = SA_RESTART;
-#endif
-       sigemptyset(&act.sa_mask);
-       sigaddset(&act.sa_mask,signum);
-       sigaction(signum,&act,&oldact);
-       return oldact.sa_handler;
-#else /* !HAVE_SIGACTION */
-       /* FIXME: need to handle sigvec and systems with broken signal() */
-       return signal(signum, handler);
-#endif
-}
-
-/*******************************************************************
- Ignore SIGCLD via whatever means is necessary for this OS.
-********************************************************************/
-
-void CatchChild(void)
-{
-       CatchSignal(SIGCLD, sig_cld);
-}
-
-/*******************************************************************
- Catch SIGCLD but leave the child around so it's status can be reaped.
-********************************************************************/
-
-void CatchChildLeaveStatus(void)
-{
-       CatchSignal(SIGCLD, sig_cld_leave_status);
-}


-- 
Samba Shared Repository

Reply via email to