[1675] in Kerberos_V5_Development
Re: testing
daemon@ATHENA.MIT.EDU (Ken Raeburn)
Fri Aug 30 02:57:05 1996
To: "Barry Jaspan" <bjaspan@MIT.EDU>
Cc: tlyu@MIT.EDU, tytso@MIT.EDU, krbdev@MIT.EDU
From: Ken Raeburn <raeburn@cygnus.com>
Date: 30 Aug 1996 02:56:44 -0400
In-Reply-To: "Barry Jaspan"'s message of Fri, 30 Aug 1996 00:21:18 -0400
"Barry Jaspan" <bjaspan@MIT.EDU> writes:
> > The problem is, make -k rarely DTRT with subdirectories.
>
> This is news to me. We used gmake -k at OV for our building and
> testing and it always worked fine; we never implemented any special
> hacks for itthat I am aware of. I thought -k was a common option on
> standard makes, too.
Yes, the -k option is common. But how do run you make in
subdirectories?
When you have a loop that runs make in subdirs, you need to decide
whether an error from one of the sub-makes should cause execution to
stop. The way I've seen used to attempt this is to examine $(MFLAGS)
and try to figure out if -k was passed. Usually by setting up a
"case" statement trying to match against the pattern "*k*". And at
least one version of GNU make includes variable settings from the
command line in MFLAGS. (Whether this is really a bug or not I don't
know.) So if some make variable setting includes the letter "k", and
the "-k" option wasn't given, the typical approach would get a false
match, and not stop at the first error.
BTW, another argument for using dejagnu occurred to me: Timeouts. In
some cases (infinite loop, file locking in NFS with an incompatible
server) programs can sit forever without terminating. With dejagnu,
we could set a per-test timeout and kill the process if it doesn't
terminate within a few minutes or whatever. Running it under make
doesn't give any such option; each test program that could fail this
way would have to be modified to implement a timeout internally. (Or
we stay stuck in the situation we have now, of not testing past the
first failure.)
(The NFS locking incompatibility bit me on another recent set of
builds.)