aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config_test/Makefile6
-rwxr-xr-xconfig_test/run_tests40
-rw-r--r--configure.in29
3 files changed, 50 insertions, 25 deletions
diff --git a/config_test/Makefile b/config_test/Makefile
index 295696e9..1064d569 100644
--- a/config_test/Makefile
+++ b/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
test:
- ./run_tests 10
+ ./run_tests 10 100 > /dev/null
clean:
rm -f child_test
diff --git a/config_test/run_tests b/config_test/run_tests
index e41db232..e7db3cae 100755
--- a/config_test/run_tests
+++ b/config_test/run_tests
@@ -1,16 +1,30 @@
#!/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
-print "Success=$success Fail=$fail"
-[[ $fail -gt 0 ]] && exit 1
+[[ $total_runs -gt 1 ]] && print -u2
+exit 0
diff --git a/configure.in b/configure.in
index be9fe83a..9303850a 100644
--- a/configure.in
+++ b/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 2.6.9-11 (okay in 2.6.9-5). Redhat investigating root cause
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
+elif test "$ac_cv_enable_redhat_pthread_workaround" = "yes" ; then
+ AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, [Forced workaround on redhat in spopen])
fi
dnl External libraries - see ACKNOWLEDGEMENTS