comp.lang.ada
 help / color / mirror / Atom feed
From: Stephen Leake <Stephe.Leake@nasa.gov>
Subject: Re: Standard Library Interest?
Date: 10 Oct 2003 10:59:05 -0400
Date: 2003-10-10T15:02:19+00:00	[thread overview]
Message-ID: <uismxgmva.fsf@nasa.gov> (raw)
In-Reply-To: Pine.LNX.4.44.0310100857070.32767-100000@th.informatik.uni-mannheim.de

Stefan Lucks <lucks@th.informatik.uni-mannheim.de> writes:

> On 9 Oct 2003, Stephen Leake wrote:
> 
> > Stefan Lucks <lucks@th.informatik.uni-mannheim.de> writes:
> 
> > >   1. a unit test for the package and
> > 
> > I find Aunit to be a good unit test framework (see
> > http://savannah.nongnu.org/projects/grace/ for a working example).
> 
> You missed my point! 

Well, I didn't. There are two points here; 

1) how to write the unit tests

2) how to invoke the unit tests.

Aunit is an answer to point 1.

> Think of a "customer" (i.e., any programmer who wants to "with" the
> library) and call her A. A somehow (perpaps by downloading it from
> the web site) gets her hands on the source code of some library
> packages. The very first thing she will (or at least should) do is
> to ask each package: "Are you okay?" ("Is this package compiling
> under my compiler and running on my target platform under my target
> platform's configuration?")
> 
> The best way to answer this question is to run the entire battery of unit
> tests which have been used by the author of the library package. 

Yes. That's point 2).

> I would want to provide A with a simple button to fire the test
> battery. And this button should be at the same place and have the
> same shape and color for all packages of the standard library!

Yes. My answer is "from you normal command line, run 'make test'".
Your answer appears to be "somehow run code that invokes
Foo.Self_Test".

> It is a non-issue for A, which test framework has been used by the
> author of the library package.

Well, it matters a little, if it affects the answer to point 2). But
it mostly doesn't matter.

> > >   2. checking the current version number of package
> 
> > We could require each top-level package to provide a Version function,
> > that returns a string. 
> 
> I had been thinking of that. However, natural sting comparison is 
> different from comparing version numbers:
>      "14.3" < "3.14"   (Ouch!)

Ah. I missed that you wanted them at runtime. Yes, that would require
two or three integers. Or convert to float first :).

> OK, so use
> 
> 	some.weird.package_name.Self_Test.Full_Self_Test(0);
> 
> instead. (However, I don't quite buy your wast-of-space reason. Any 
> decent linker is able to throw away unused subprograms, right?)

In a perfect world, yes. But no current linker (that I use or am aware
of) does this.

There's also the information hiding and general code organization
issue; unit test code is a different beast than implementation code,
and doesn't belong in the same package.

> Didn't Lady Ada free us from using makefiles? :-)

From parts of them, yes; the makefile no longer has to specify the Ada
source file dependencies. But as I have said before here, there is
much more to a real project than the Ada source code.

> And who said that the auxiliary packages should be children? Just
> "with" them, when implementing your tests. If this does not compile
> because the "with"ed toolbox is not available, A has no chance to do
> these tests by herself anyway, even if she'd run make.

Sometimes you need visibility into the private part to implement a
good unit test; that means at least some of the unit test has be a
child package.

> (I can imagine some special cases and exceptional circumstances, where
> your test needs external files, system- or platform-specific information,
> ...  This prevents providing the full test battery, i.e. Full_Self_Test
> can't be implemented. Sometimes, even a reduced test battery could be
> useful -- call it Main_Self_Test instead of Full_...)

I don't accept that a full unit test "can't be provided". If you can't
test it, it doesn't do anything real :). Maybe it's hard or expensive;
that's different. That would have to be one of the library policies;
how expensive can the unit tests be?

> > Hmm. I guess you mean one package depends on specific versions of
> > other packages, 
> 
> I think, you missed my point again. Think as a "customer" A.
> 
> Consider an application with-ing some library package X version y.z. 

Ada can't say "version y.z" in a with clause (and no, I don't think we
want a language extension for that :). But I think I know what you
mean. Let's call the Application Y; the last time Y was tested, it
used X version y.z.

> There is an implementation of X available, and its version number is v(X).
> 
> If v(X) = y.z, then fine!

Right. Hopefully, this is tested at configure time (pre compile-time;
I'm thinking Gnu configure, or rpm).

> If v(X) < y.z, this may indicate great trouble. (However, perhaps A can 
> download and install a more recent version of X.)

Right.

> A's reaction on v(X) > y.z, may depend on her trust in the
> upward-compatibility of the development of X ... At least for saftety- or
> security-critical programs (and that is still the area where Ada is best
> for), it would be prudent to check for things that may be broken by using
> a version of X which is newer than y.z. The least thing I'd do would be to
> read the changes-log of X.

Right.

> My point is, I don't want A to *manually* compare y.z with v(X). (There
> may be many Xs, and thus many pairs (v(X),y.z).) It is much better to do
> these tests automatically, either at compile time or at least (early) at
> test time. 

Right. That's what rpm does. I haven't used it much, but it seems to
do it well. And it does it before compile time, which is even better.

> The Ada compiler is a great tool, so use it to simplify your life!
> :-)

Um, the Ada compiler can't do this. Unless we extend Ada with "pragma
Version" or something. Is that what you are proposing?

You can write code that uses the Foo.Version function, and compares it
against an expected version. Maybe that's what you are proposing. But
that's at run-time, which is way too late.

I would only use Foo.Version in a Help | About box, and in error logs.

-- 
-- Stephe



  reply	other threads:[~2003-10-10 14:59 UTC|newest]

Thread overview: 285+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-05  0:09 Standard Library Interest? chris
2003-10-05  1:38 ` Robert I. Eachus
2003-10-05 11:44   ` chris
2003-10-05 15:16   ` Marin David Condic
2003-10-05 16:40     ` Robert I. Eachus
2003-10-05 19:22     ` Martin Dowie
2003-10-06 13:12       ` Marin David Condic
2003-10-06 17:09         ` Martin Dowie
2003-10-06 23:34           ` Marin David Condic
2003-10-07  0:23             ` Stephane Richard
2003-10-07 12:42               ` Marin David Condic
2003-10-07 13:17                 ` Stephane Richard
2003-10-07 17:17                   ` Marin David Condic
2003-10-07 17:42                     ` Larry Hazel
2003-10-07 19:36                       ` Stephane Richard
2003-10-07 20:31                         ` Stephen Leake
2003-10-07 21:56                           ` Stephane Richard
2003-10-08  1:11                             ` Marin David Condic
2003-10-08 16:07                               ` Martin Krischik
2003-10-10  4:38                                 ` Marin David Condic
2003-10-10 14:37                                   ` Stephen Leake
2003-10-10 16:24                                     ` Martin Dowie
2003-10-11 14:16                                       ` Marin David Condic
2003-10-12  1:30                                         ` Martin Dowie
2003-10-12  2:46                                           ` Marin David Condic
2003-10-11 14:07                                     ` Marin David Condic
2003-10-14 14:20                                       ` Stephen Leake
2003-10-14 19:14                                         ` Marin David Condic
2003-10-14 19:27                                           ` Stephen Leake
2003-10-15 12:27                                             ` Marin David Condic
2003-10-15 12:42                                               ` Marin David Condic
2003-10-10 16:46                                   ` Martin Krischik
2003-10-10 18:00                                     ` Stephane Richard
2003-10-12 11:19                                       ` Martin Krischik
2003-10-12 14:48                                         ` Stephane Richard
2003-10-11 14:22                                     ` Marin David Condic
2003-10-09 10:50                               ` Ching Bon Lam
2003-10-09 12:11                                 ` Marin David Condic
2003-10-09 17:16                                   ` Warren W. Gay VE3WWG
2003-10-09 18:30                                     ` tmoran
2003-10-10  1:29                                   ` Frank
2003-10-10  8:19                                     ` chris
2003-10-10  2:53                                   ` Robert I. Eachus
2003-10-08 15:55                             ` Stephen Leake
2003-10-08 16:49                               ` Stephane Richard
2003-10-08 17:18                               ` Marin David Condic
2003-10-10  2:59                                 ` Hyman Rosen
2003-10-08 19:54                             ` Robert I. Eachus
2003-10-08 21:40                               ` Stephen Leake
2003-10-09 12:28                               ` Marin David Condic
2003-10-09 15:18                                 ` Stefan Lucks
2003-10-09 16:10                                   ` Stephen Leake
2003-10-09 16:57                                     ` Stephane Richard
2003-10-10  4:58                                     ` Marin David Condic
2003-10-10  9:28                                     ` Stefan Lucks
2003-10-10 14:59                                       ` Stephen Leake [this message]
2003-10-10 16:48                                         ` Ed Falis
2003-10-10 16:29                                       ` Warren W. Gay VE3WWG
2003-10-11  7:01                                         ` Simon Wright
2003-10-10 15:51                                     ` Robert I. Eachus
2003-10-10 17:04                                       ` Stephen Leake
2003-10-10  3:02                                 ` Robert I. Eachus
2003-10-10  5:17                                   ` Marin David Condic
2003-10-10 16:38                                     ` Warren W. Gay VE3WWG
2003-10-11 14:35                                       ` Marin David Condic
2003-10-15 16:24                                         ` Warren W. Gay VE3WWG
2003-10-15 17:57                                           ` Ed Falis
2003-10-15 20:45                                             ` Warren W. Gay VE3WWG
2003-10-15 20:44                                           ` Mark A. Biggar
2003-10-16 12:55                                             ` Marin David Condic
2003-10-16 16:52                                               ` Warren W. Gay VE3WWG
2003-10-16 17:53                                                 ` Marin David Condic
2003-10-17 13:25                                                   ` Warren W. Gay VE3WWG
2003-10-18 13:50                                                     ` Marin David Condic
2003-10-21 17:14                                                       ` Warren W. Gay VE3WWG
2003-10-22 13:04                                                         ` Marin David Condic
2003-10-22 16:46                                                           ` Warren W. Gay VE3WWG
2003-10-22 17:13                                                             ` Ed Falis
2003-10-23  5:23                                                               ` Marin David Condic
2003-10-23 13:55                                                                 ` Ed Falis
2003-10-23  5:21                                                             ` Marin David Condic
2003-10-27 17:37                                                               ` Warren W. Gay VE3WWG
2003-10-28  1:53                                                                 ` Marin David Condic
2003-10-16 12:38                                           ` Marin David Condic
2003-10-16 17:16                                             ` Warren W. Gay VE3WWG
2003-10-16 18:02                                               ` Stephane Richard
2003-10-16 18:23                                                 ` Stephane Richard
2003-10-17  0:36                                                 ` Robert I. Eachus
2003-10-17  1:24                                                   ` Stephane Richard
2003-10-17  1:40                                                   ` Marin David Condic
2003-10-17  2:34                                                     ` Stephane Richard
2003-10-17 12:45                                                       ` Marin David Condic
2003-10-16 18:04                                               ` Marin David Condic
2003-10-17 20:09                                                 ` Jacob Sparre Andersen
2003-10-20 17:40                                                   ` Robert I. Eachus
2003-10-21 20:55                                                     ` Warren W. Gay VE3WWG
2003-10-21 22:46                                                     ` Stephane Richard
2003-10-21 21:02                                                 ` Warren W. Gay VE3WWG
2003-10-10 18:44                                     ` Robert I. Eachus
2003-10-11 14:42                                       ` Marin David Condic
2003-10-11 15:10                                         ` Stephane Richard
2003-10-11 17:58                                           ` Robert I. Eachus
2003-10-12  1:01                                             ` Marin David Condic
2003-10-12  0:51                                           ` Marin David Condic
2003-10-12  1:17                                             ` Stephane Richard
2003-10-12  2:10                                               ` Marin David Condic
2003-10-12  5:14                                                 ` Robert I. Eachus
2003-10-12 13:39                                                   ` Marin David Condic
2003-10-12  1:20                                             ` Stephane Richard
2003-10-12  2:32                                               ` Marin David Condic
2003-10-12 11:14                                                 ` Stephane Richard
2003-10-16 13:18                                                   ` aleistad
2003-10-07 22:12                           ` tmoran
2003-10-07 22:37                           ` Alexandre E. Kopilovitch
2003-10-08 16:03                           ` Martin Krischik
2003-10-09 13:28                           ` Jacob Sparre Andersen
2003-10-28 11:25                         ` Marius Amado Alves
2003-10-28 12:52                           ` Marin David Condic
2003-10-28 13:28                             ` Marius Amado Alves
2003-10-28 23:20                               ` Marin David Condic
2003-10-28 13:21                           ` Stephane Richard
2003-10-28 16:21                           ` Standard Library Interest? (The Big Player ACT) Stephane Richard
2003-10-28 23:37                             ` Marin David Condic
2003-10-29  1:12                               ` Stephane Richard
2003-10-29 14:35                               ` Marc A. Criley
2003-10-29 23:10                                 ` tmoran
2003-10-29 23:34                                 ` Marin David Condic
2003-10-31 14:42                                   ` Georg Bauhaus
2003-11-01  3:05                                     ` Marin David Condic
2003-11-01  3:50                                       ` Stephane Richard
2003-11-01 13:20                                         ` Marin David Condic
2003-11-02 16:41                                       ` Georg Bauhaus
2003-11-02 19:25                                         ` Marin David Condic
2003-11-01  7:20                                     ` Simon Wright
2003-11-02 17:04                                       ` Georg Bauhaus
2003-11-02 15:09                             ` Standard Library Interest? (The Big Player IRVINE) Stephane Richard
2003-11-02 16:18                               ` Marius Amado Alves
2003-11-02 16:35                                 ` Stephane Richard
2003-11-02 22:41                               ` Marin David Condic
2003-11-03  1:07                                 ` Standard Library Interest? Robert I. Eachus
2003-11-03  1:27                                   ` Stephane Richard
2003-11-03 12:52                                     ` Marin David Condic
2003-11-03  3:58                                   ` Alexandre E. Kopilovitch
2003-11-03  6:28                                     ` Robert I. Eachus
2003-11-03 12:11                                       ` Jeff C,
2003-11-03 17:07                                         ` Robert I. Eachus
2003-11-04 18:07                                       ` Alexandre E. Kopilovitch
2003-11-03  7:54                                     ` Mark A. Biggar
2003-11-03 21:02                                       ` Alexandre E. Kopilovitch
2003-11-04  1:50                                         ` Robert I. Eachus
2003-11-04 18:16                                           ` Jeffrey Carter
2003-11-06  2:07                                           ` Alexandre E. Kopilovitch
2003-11-03 15:14                                     ` Robert Spooner
2003-11-03 15:38                                       ` Dmitry A. Kazakov
2003-11-03 16:52                                       ` Alexandre E. Kopilovitch
2003-11-03 12:36                                   ` Marin David Condic
     [not found]                         ` <1067340353.3441.18.camel@localhost.localdomain>
2003-10-28 11:30                           ` Marius Amado Alves
2003-10-08  1:07                       ` Marin David Condic
2003-10-08  1:15                         ` Stephane Richard
2003-10-08  1:32                           ` Marin David Condic
2003-10-08 15:58                           ` Stephen Leake
2003-10-08 17:24                             ` Marin David Condic
2003-10-07 18:19                     ` Martin Dowie
2003-10-07 19:29                       ` Stephane Richard
2003-10-07 20:30                         ` Martin Dowie
2003-10-08  1:15                       ` Marin David Condic
2003-10-08 21:56                         ` Stephane Richard
2003-10-08 23:56                           ` Robert I. Eachus
2003-10-09  0:29                             ` Stephane Richard
2003-10-10 16:47                             ` POSIX File Structure Conventions for Ada (Was: Standard Library Interest?) Warren W. Gay VE3WWG
2003-10-10 17:17                               ` Ludovic Brenta
2003-10-11 16:25                                 ` Warren W. Gay VE3WWG
2003-10-09 12:42                           ` Standard Library Interest? Marin David Condic
2003-10-09 13:07                             ` Stephane Richard
2003-10-10  3:15                               ` Robert I. Eachus
2003-10-10  8:10                                 ` Stephane Richard
2003-10-10 12:49                                   ` Marin David Condic
2003-10-10 13:20                                     ` Jeff C,
2003-10-11 14:48                                       ` Marin David Condic
2003-10-11 15:09                                         ` Stephane Richard
2003-10-10 19:22                                   ` Robert I. Eachus
2003-10-11 11:30                                     ` Stephane Richard
2003-10-11 12:36                                     ` Stephane Richard
2003-10-11 17:41                                       ` sk
2003-10-11 17:43                                         ` Stephane Richard
2003-10-11 18:08                                       ` Robert I. Eachus
2003-10-11 18:11                                         ` Stephane Richard
2003-10-12  1:33                                         ` Marin David Condic
2003-10-12  5:16                                           ` Robert I. Eachus
2003-10-15 16:42                                         ` Warren W. Gay VE3WWG
2003-10-15 16:35                                     ` Warren W. Gay VE3WWG
2003-10-16 12:59                                       ` Marin David Condic
2003-10-17 19:54                                         ` Warren W. Gay VE3WWG
     [not found]                   ` <8d6b51-0u3.ln1@beastie.ix.netcom.com>
2003-10-07 23:58                     ` Stephane Richard
     [not found]                       ` <f8nc51-gv2.ln1@beastie.ix.netcom.com>
2003-10-08 12:45                         ` Marin David Condic
2003-10-08 16:00                         ` Stephen Leake
2003-10-08 17:37                           ` Stephane Richard
     [not found]                           ` <hdbf51-523.ln1@beastie.ix.netcom.com>
2003-10-09 14:24                             ` Hyman Rosen
2003-10-10 12:06                               ` Stephane Richard
2003-10-10 15:03                                 ` Stephen Leake
2003-10-05 17:41   ` Georg Bauhaus
2003-10-05 17:48     ` chris
2003-10-05 23:57     ` Robert I. Eachus
2003-10-07  1:44       ` Georg Bauhaus
2003-10-08 20:44         ` Robert I. Eachus
2003-10-09  2:05           ` Alexandre E. Kopilovitch
2003-10-09  5:39             ` Robert I. Eachus
2003-10-09  9:06               ` Dmitry A. Kazakov
2003-10-05 14:49 ` Martin Krischik
2003-10-05 15:25   ` Marin David Condic
2003-10-05 15:51     ` sk
2003-10-05 18:23       ` Marin David Condic
2003-10-05 19:14         ` Stephane Richard
2003-10-06 13:15           ` Marin David Condic
2003-10-05 19:35         ` Jeffrey Carter
2003-10-06  9:46           ` Stephane Richard
2003-10-06 13:16             ` Marin David Condic
2003-10-06 14:44               ` Stephane Richard
2003-10-06 16:51               ` Martin Krischik
2003-10-06 16:48         ` Martin Krischik
2003-10-06 23:38           ` Marin David Condic
2003-10-06 16:42     ` Martin Krischik
2003-10-06 23:39       ` Marin David Condic
2003-10-05 15:02 ` Marin David Condic
2003-10-05 16:43   ` Robert I. Eachus
2003-10-05 18:31     ` Marin David Condic
2003-10-07  1:58       ` Robert I. Eachus
2003-10-07 12:48         ` Marin David Condic
2003-10-08 20:49           ` Robert I. Eachus
2003-10-05 17:49   ` Georg Bauhaus
2003-10-05 18:43     ` Marin David Condic
2003-10-05 23:26       ` Georg Bauhaus
2003-10-06 13:27         ` Marin David Condic
2003-10-10 16:58           ` Warren W. Gay VE3WWG
2003-10-11  9:55             ` Martin Dowie
2003-10-15 16:51               ` Warren W. Gay VE3WWG
2003-10-16 12:14                 ` Martin Dowie
2003-10-22 16:48                   ` Warren W. Gay VE3WWG
2003-10-05 19:27   ` Martin Dowie
2003-10-06 13:33     ` Marin David Condic
2003-10-06 17:16       ` Martin Dowie
2003-10-06 23:45         ` Marin David Condic
2003-10-06 16:47     ` chris
2003-10-06 19:03       ` sk
2003-10-06 20:18         ` chris
2003-10-06 21:13           ` sk
2003-10-20  3:22             ` Dave Thompson
2003-10-20 10:29               ` sk
2003-10-07  0:30           ` Mark Lorenzen
2003-10-07  2:13     ` Robert I. Eachus
2003-10-07 22:49       ` Georg Bauhaus
2003-10-08 20:58         ` Robert I. Eachus
2003-10-09 12:57           ` Marin David Condic
2003-10-10  3:09             ` Robert I. Eachus
2003-10-06  7:02   ` Preben Randhol
2003-10-06 13:37     ` Marin David Condic
2003-10-06 14:34       ` Preben Randhol
2003-10-06 23:50         ` Marin David Condic
2003-10-07  8:55           ` Preben Randhol
2003-10-07 13:05             ` Marin David Condic
2003-10-06 19:37       ` tmoran
2003-10-06 23:57         ` Marin David Condic
2003-10-08 21:46           ` Robert I. Eachus
2003-10-09  8:10             ` Ole-Hjalmar Kristensen
2003-10-10  2:29               ` Robert I. Eachus
2003-10-09  9:20             ` Dmitry A. Kazakov
2003-10-09 13:09             ` Marin David Condic
2003-10-10 14:44               ` Robert I. Eachus
2003-10-11 14:57                 ` Marin David Condic
2003-10-11 18:25                   ` Robert I. Eachus
2003-10-12  1:49                     ` Marin David Condic
2003-10-12  3:52                       ` Robert I. Eachus
2003-10-06 13:50     ` (see below)
2003-10-06 15:28       ` Preben Randhol
2003-10-06 19:37         ` tmoran
2003-10-07  8:59           ` Preben Randhol
2003-10-05 23:33 ` Robert C. Leif
2003-10-06  9:02 ` Vadim Godunko
2003-10-07  0:48 ` Matthew Heaney
2003-10-07  8:56   ` Preben Randhol
2003-10-07 13:08     ` Marin David Condic
  -- strict thread matches above, loose matches on Subject: below --
2003-10-10 13:46 Beard, Frank Randolph CIV
2003-10-11  7:33 ` Martin Krischik
2003-10-11 15:04 ` Marin David Condic
     [not found] <mailman.191.1066918723.25614.comp.lang.ada@ada-france.org>
2003-10-23 14:26 ` Ed Falis
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox