aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2010-06-18 19:41:48 +0000
committerTom Yu <tlyu@mit.edu>2010-06-18 19:41:48 +0000
commit357a5946bab220c6af9f243c88d733da2a5fe0bd (patch)
treee63ba4b16f3a318277360508da61fbeac971b8ba
parent10706f940783890c22ca11a7a12c9c58feb1ac03 (diff)
downloadkrb5-357a5946bab220c6af9f243c88d733da2a5fe0bd.zip
krb5-357a5946bab220c6af9f243c88d733da2a5fe0bd.tar.gz
krb5-357a5946bab220c6af9f243c88d733da2a5fe0bd.tar.bz2
only test t_locate_kdc if known-good DNS name is present
Running "make check" while offline or on a firewalled network may result in failure in lib/krb5/os because the invocation of t_locate_kdc requires that the DNS servers for ATHENA.MIT.EDU be reachable. Autodetect DNS utilities "dig" and "nslookup", and use them to check for existence of the known-good DNS name. Also parameterize the test so that the known-good DNS name can be overridden on the make command line. ticket: 6744 target_version: 1.8.3 tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24138 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r--src/configure.in5
-rw-r--r--src/lib/krb5/os/Makefile.in26
2 files changed, 25 insertions, 6 deletions
diff --git a/src/configure.in b/src/configure.in
index b74fb8d..1d86f97 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -662,6 +662,11 @@ int main () {
AC_MSG_RESULT($ac_cv_printf_positional)
+# for t_locate_kdc test
+
+AC_PATH_PROG(DIG, dig, false)
+AC_PATH_PROG(NSLOOKUP, nslookup, false)
+
# for kadmin
AC_PROG_YACC
diff --git a/src/lib/krb5/os/Makefile.in b/src/lib/krb5/os/Makefile.in
index 0852e14..7709b28 100644
--- a/src/lib/krb5/os/Makefile.in
+++ b/src/lib/krb5/os/Makefile.in
@@ -192,7 +192,9 @@ lclint-localaddr: localaddr.c
$(LCLINT) $(LCLINTOPTS) $(CPPFLAGS) $(LOCALINCLUDES) $(DEFS) \
-DTEST $(srcdir)/localaddr.c
-check-unix:: $(TEST_PROGS)
+check-unix:: check-unix-stdconf check-unix-locate check-unix-antoln
+
+check-unix-stdconf:: t_std_conf
KRB5_CONFIG=$(srcdir)/td_krb5.conf ; export KRB5_CONFIG ;\
$(KRB5_RUN_ENV) $(VALGRIND) ./t_std_conf -d -s NEW.DEFAULT.REALM -d \
-k IGGY.ORG -k DEFAULT_REALM.TST \
@@ -201,17 +203,29 @@ check-unix:: $(TEST_PROGS)
-r pgp.good.idea -r no_domain > test.out
cmp test.out $(srcdir)/ref_std_conf.out
$(RM) test.out
- KRB5_CONFIG=$(srcdir)/td_krb5.conf ; export KRB5_CONFIG ;\
- if test "$(OFFLINE)" != yes; then \
- $(KRB5_RUN_ENV) $(VALGRIND) ./t_locate_kdc ATHENA.MIT.EDU; \
+
+# The following can be overriden on the make command line if needed:
+LOCREALM = ATHENA.MIT.EDU
+SRVNAME = _kerberos._udp.athena.mit.edu.
+DIGPAT = '^_kerberos.*srv'
+NSPAT = '^_kerberos.*service'
+DIG = @DIG@
+NSLOOKUP = @NSLOOKUP@
+
+check-unix-locate:: t_locate_kdc
+ if [ "$(OFFLINE)" = no ] && \
+ $(DIG) $(SRVNAME) srv | grep -i $(DIGPAT) || \
+ $(NSLOOKUP) -q=srv $(SRVNAME) | grep -i $(NSPAT); then \
+ KRB5_CONFIG=$(srcdir)/td_krb5.conf ; export KRB5_CONFIG ;\
+ $(KRB5_RUN_ENV) $(VALGRIND) ./t_locate_kdc $(LOCREALM); \
else \
- echo SKIPPING t_locate_kdc TEST WHILE OFFLINE; \
+ echo '*** WARNING: skipped t_locate_kdc test: known DNS name not found'; \
fi
#
# Do some aname-to-lname testing.
#
-check-unix::
+check-unix-antoln:: t_an_to_ln
echo '[libdefaults]' > ./t_an.conf
echo ' default_realm = r' >> ./t_an.conf
echo '[realms]' >> ./t_an.conf