[SCM] Samba Shared Repository - branch master updated - a19929dac185cebd4ec70e8aa3703a8bb884385f

Jelmer Vernooij jelmer at samba.org
Sun Oct 12 04:00:41 GMT 2008


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 <jelmer at samba.org>
Date:   Sun Oct 12 05:59:50 2008 +0200

    Add more tests to datablob testsuite.

commit 7bd4e6e4956d4e979a6c272bc7de187e209b0710
Author: Jelmer Vernooij <jelmer at samba.org>
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


More information about the samba-cvs mailing list