summaryrefslogtreecommitdiffstats
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 295696e..1064d56 100644
--- a/config_test/Makefile
+++ b/config_test/Makefile
@@ -1,9 +1,11 @@
1 1
2all: child_test.c 2all: child_test
3
4child_test: child_test.c
3 gcc -o child_test child_test.c 5 gcc -o child_test child_test.c
4 6
5test: 7test:
6 ./run_tests 10 8 ./run_tests 10 100 > /dev/null
7 9
8clean: 10clean:
9 rm -f child_test 11 rm -f child_test
diff --git a/config_test/run_tests b/config_test/run_tests
index e41db23..e7db3ca 100755
--- a/config_test/run_tests
+++ b/config_test/run_tests
@@ -1,16 +1,30 @@
1#!/bin/ksh 1#!/bin/ksh
2# $1 is the number of iterations to run
3# If $2 is specified, this is the number of times you run each iteration
4# If there is a fail at run, exit 1
5# Prints to stdout # of successes and passes
6# Prints to stderr a dot for each run
2 7
3i=0 8total_runs=$2
4success=0 9[[ -z $total_runs ]] && total_runs=1
5fail=0 10run=1
6while [[ $i -lt $1 ]] ; do 11while [[ $run -le $total_runs ]] ; do
7 ./child_test 12 i=0
8 if [[ $? -eq 0 ]] ; then 13 success=0
9 success=$(($success+1)) 14 fail=0
10 else 15 while [[ $i -lt $1 ]] ; do
11 fail=$((fail+1)) 16 ./child_test
12 fi 17 if [[ $? -eq 0 ]] ; then
13 i=$(($i+1)) 18 success=$(($success+1))
19 else
20 fail=$((fail+1))
21 fi
22 i=$(($i+1))
23 done
24 print "Success=$success Fail=$fail"
25 [[ $fail -gt 0 ]] && exit 1
26 run=$(($run+1))
27 [[ $total_runs -gt 1 ]] && print -u2 -n "."
14done 28done
15print "Success=$success Fail=$fail" 29[[ $total_runs -gt 1 ]] && print -u2
16[[ $fail -gt 0 ]] && exit 1 30exit 0
diff --git a/configure.in b/configure.in
index be9fe83..9303850 100644
--- a/configure.in
+++ b/configure.in
@@ -1680,17 +1680,26 @@ dnl Wierd problem where ECHILD is returned from a wait call in error
1680dnl Only appears to affect nslookup and dig calls. Only affects redhat around 1680dnl Only appears to affect nslookup and dig calls. Only affects redhat around
1681dnl 2.6.9-11 (okay in 2.6.9-5). Redhat investigating root cause 1681dnl 2.6.9-11 (okay in 2.6.9-5). Redhat investigating root cause
1682dnl We patch plugins/popen.c 1682dnl We patch plugins/popen.c
1683dnl Need to add smp because uname different on those. May need to check 1683dnl Need to add smp because uname different on those
1684dnl Fedora Core too in future 1684dnl Can force patch to be applied with --enable-redhat-pthread-workaround
1685if echo $ac_cv_uname_r | egrep "\.EL(smp)?$" >/dev/null 2>&1 ; then 1685AC_ARG_ENABLE(redhat-pthread-workaround,
1686 AC_MSG_CHECKING(for redhat spopen problem) 1686 AC_HELP_STRING([--enable-redhat-pthread-workaround],
1687 ( cd config_test && make && make test ) > /dev/null 2>&1 1687 [force Redhat patch to be applied (default: test system)]),
1688 if test $? -eq 0 ; then 1688 [ac_cv_enable_redhat_pthread_workaround=$enableval],
1689 AC_MSG_RESULT(okay) 1689 [ac_cv_enable_redhat_pthread_workaround=test])
1690 else 1690if test "$ac_cv_enable_redhat_pthread_workaround" = "test" ; then
1691 AC_MSG_RESULT(error) 1691 if echo $ac_cv_uname_r | egrep "\.EL(smp)?$" >/dev/null 2>&1 ; then
1692 AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, "Problem on redhat with spopen") 1692 AC_MSG_CHECKING(for redhat spopen problem)
1693 ( cd config_test && make && make test ) > /dev/null 2>&1
1694 if test $? -eq 0 ; then
1695 AC_MSG_RESULT(okay)
1696 else
1697 AC_MSG_RESULT(error)
1698 AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, [Workaround on redhat in spopen])
1699 fi
1693 fi 1700 fi
1701elif test "$ac_cv_enable_redhat_pthread_workaround" = "yes" ; then
1702 AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, [Forced workaround on redhat in spopen])
1694fi 1703fi
1695 1704
1696dnl External libraries - see ACKNOWLEDGEMENTS 1705dnl External libraries - see ACKNOWLEDGEMENTS