Ver código fonte

Run longer test on redhat for spopen/pthread problem. Allow enable/disable of
pthread fix via configure option


git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1292 f882894a-f735-0410-b71e-b25c423dba1c

Ton Voon 20 anos atrás
pai
commit
f9c07ec61c
3 arquivos alterados com 50 adições e 25 exclusões
  1. 4 2
      config_test/Makefile
  2. 27 13
      config_test/run_tests
  3. 19 10
      configure.in

+ 4 - 2
config_test/Makefile

@@ -1,9 +1,11 @@
 
 
-all: child_test.c
+all: child_test
+
+child_test: child_test.c
 	gcc -o child_test child_test.c
 	gcc -o child_test child_test.c
 
 
 test:
 test:
-	./run_tests 10
+	./run_tests 10 100 > /dev/null
 
 
 clean:
 clean:
 	rm -f child_test
 	rm -f child_test

+ 27 - 13
config_test/run_tests

@@ -1,16 +1,30 @@
 #!/bin/ksh
 #!/bin/ksh
+# $1 is the number of iterations to run
+# If $2 is specified, this is the number of times you run each iteration
+# If there is a fail at run, exit 1
+# Prints to stdout # of successes and passes
+# Prints to stderr a dot for each run
 
 
-i=0
-success=0
-fail=0
-while [[ $i -lt $1 ]] ; do
-	./child_test
-	if [[ $? -eq 0 ]] ; then
-		success=$(($success+1))
-	else
-		fail=$((fail+1))
-	fi
-	i=$(($i+1))
+total_runs=$2
+[[ -z $total_runs ]] && total_runs=1
+run=1
+while [[ $run -le $total_runs ]] ; do
+	i=0
+	success=0
+	fail=0
+	while [[ $i -lt $1 ]] ; do
+		./child_test
+		if [[ $? -eq 0 ]] ; then
+			success=$(($success+1))
+		else
+			fail=$((fail+1))
+		fi
+		i=$(($i+1))
+	done
+	print "Success=$success Fail=$fail"
+	[[ $fail -gt 0 ]] && exit 1
+	run=$(($run+1))
+	[[ $total_runs -gt 1 ]] && print -u2 -n "."
 done
 done
-print "Success=$success Fail=$fail"
-[[ $fail -gt 0 ]] && exit 1
+[[ $total_runs -gt 1 ]] && print -u2 
+exit 0

+ 19 - 10
configure.in

@@ -1680,17 +1680,26 @@ dnl Wierd problem where ECHILD is returned from a wait call in error
 dnl Only appears to affect nslookup and dig calls. Only affects redhat around
 dnl Only appears to affect nslookup and dig calls. Only affects redhat around
 dnl 2.6.9-11 (okay in 2.6.9-5). Redhat investigating root cause
 dnl 2.6.9-11 (okay in 2.6.9-5). Redhat investigating root cause
 dnl We patch plugins/popen.c
 dnl We patch plugins/popen.c
-dnl Need to add smp because uname different on those. May need to check
-dnl Fedora Core too in future
-if echo $ac_cv_uname_r | egrep "\.EL(smp)?$" >/dev/null 2>&1 ; then
-	AC_MSG_CHECKING(for redhat spopen problem)
-	( cd config_test && make && make test ) > /dev/null 2>&1
-	if test $? -eq 0 ; then
-		AC_MSG_RESULT(okay)
-	else
-		AC_MSG_RESULT(error)
-		AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, "Problem on redhat with spopen")
+dnl Need to add smp because uname different on those
+dnl Can force patch to be applied with --enable-redhat-pthread-workaround
+AC_ARG_ENABLE(redhat-pthread-workaround, 
+	AC_HELP_STRING([--enable-redhat-pthread-workaround], 
+		[force Redhat patch to be applied (default: test system)]),
+	[ac_cv_enable_redhat_pthread_workaround=$enableval],
+	[ac_cv_enable_redhat_pthread_workaround=test])
+if test "$ac_cv_enable_redhat_pthread_workaround" = "test" ; then
+	if echo $ac_cv_uname_r | egrep "\.EL(smp)?$" >/dev/null 2>&1 ; then
+		AC_MSG_CHECKING(for redhat spopen problem)
+		( cd config_test && make && make test ) > /dev/null 2>&1
+		if test $? -eq 0 ; then
+			AC_MSG_RESULT(okay)
+		else
+			AC_MSG_RESULT(error)
+			AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, [Workaround on redhat in spopen])
+		fi
 	fi
 	fi
+elif test "$ac_cv_enable_redhat_pthread_workaround" = "yes" ; then
+	AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, [Forced workaround on redhat in spopen])
 fi
 fi
 
 
 dnl External libraries - see ACKNOWLEDGEMENTS
 dnl External libraries - see ACKNOWLEDGEMENTS