comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: limited allocated classwide types
Date: Mon, 7 Nov 2011 22:25:38 -0600
Date: 2011-11-07T22:25:38-06:00	[thread overview]
Message-ID: <j9ab04$l5r$1@munin.nbi.dk> (raw)
In-Reply-To: 14ff4109-2f02-4dee-9638-68c1befc07c2@hc5g2000vbb.googlegroups.com

"Adam Beneschan" <adam@irvine.com> wrote in message 
news:14ff4109-2f02-4dee-9638-68c1befc07c2@hc5g2000vbb.googlegroups.com...
On Nov 4, 2:53 am, Brian Drummond <br...@shapes.demon.co.uk> wrote:
>>
>> But this bug (assuming it is confirmed, as it looks to be) is much closer
>> to the core of the language ... to me it raises the question: has ACATS
>> (test suite) not kept up with the language additions in Ada-2005? And is
>> it being maintained and updated alongside Ada-2012?
>
>I should probably let Randy answer this, but I think the answer to
>your questions is that it hasn't kept up, due to insufficient funding.

Right, both funding and insufficient contributions of tests. (The latter may 
be in part caused by the former.)

>But what I really wanted to point out was that it's not reasonable to
>expect ACATS to catch everything; and the fact that one simple test
>breaks a compiler that passes ACATS isn't itself evidence that there's
>a flaw in ACATS.  I believe ACATS is set up to check each feature and
>rule defined in the language (or something like that), but it can't
>test every combination of every feature.  And this case seems to
>involve a combination of limited controlled types and interfaces (and
>perhaps extended return).  Even if there is, or should be, an ACATS
>test that tests interfaces in conjunction with controlled types, it
>may not occur to the test suite maintainer that there needs to be a
>separate test to do the same thing with limited controlled types,
>because they may not envision that a compiler could work with non-
>limited controlled types but blow up with limited ones.

(Thanks, you saved me a lot of time. :-)

The ACATS is mostly about testing that features are implemented according to 
the Standard. Combinations of features are only tested to the extent that it 
is necessary to verify the implementation. Indeed, there is a huge number of 
possibilities of combinations, and guessing which ones might actually cause 
problems is not likely to have any useful effect on compiler quality.

>Also, I suspect that a major purpose of ACATS is to ensure that the
>compiler vendors understand the language rules and have implemented
>them.  It is not, and cannot, be to ensure that the implementation is
>correct and bug-free in every case.

You don't have to "suspect" that; you can just read the documentation of it. 
Here is the clause "ACATS Purpose" (most of this documentation is little 
changed since the ACVC days for Ada 83):

----

1.1 ACATS Purpose
The purpose of the ACATS is to check whether an Ada compilation system is a 
conforming implementation, i.e., whether it produces an acceptable result 
for every applicable test.

A fundamental goal of conformity assessment (validation) is to promote Ada 
software portability by ensuring consistent processing of Ada language 
features as prescribed by the Ada Standard documents ([Ada95], [TC1], and 
[Amend1]). ACATS tests use language features in contexts and idioms expected 
in production software. While they exercise a wide range of language feature 
uses, they do not and cannot include examples of all possible feature uses 
and interactions.

It is important to recognize that the ACATS tests do not guarantee compiler 
correctness. A compilation system that correctly processes the ACATS tests 
is not thereby deemed error-free, nor is it thereby deemed capable of 
correctly processing all software that is submitted to it.

The ACATS tests do not test the quality of an Ada implementation. In 
particular, ACATS test do not check or report performance parameters (e.g., 
compile-time capacities or run-time speed). They do not check or report for 
characteristics such as the presence and effectiveness of compiler 
optimization. They do not investigate or report compiler or implementation 
choices in cases where the standard allows options.

----

Note that the documentation is included in the ACATS downloads, but isn't 
posted on the internet anywhere that I know of. (Not sure why I didn't put 
it on the ada-auth.org site.)

>> Is there a mechanism for adding ad-hoc test cases like this one to ACATS?
>> One would like to think there is a more systematic effort to add tests
>> alongside features as they are developed.

>I'm wondering if there might be a need for some other public test
>suite that users can contribute to.  I don't think ACATS would be an
>appropriate suite to for just dumping any test cases users find--that
>just doesn't seem like the right place--but perhaps someone could
>start a web site.

I think that would be a great idea. It also would provide a place to mine 
for possible future ACATS tests (it's hard work coming up with test 
scenarios for C-Tests [that is, executable tests]).

                                           Randy.



                             -- Adam







  parent reply	other threads:[~2011-11-08  4:25 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-03 22:01 limited allocated classwide types Simon Belmont
2011-11-03 22:50 ` Adam Beneschan
2011-11-03 23:14 ` Simon Wright
2011-11-03 23:35   ` Simon Belmont
2011-11-04  0:30     ` Adam Beneschan
2011-11-04  0:51       ` Adam Beneschan
2011-11-04  7:40     ` Simon Wright
2011-11-04  8:42       ` Dmitry A. Kazakov
2011-11-04  9:18     ` Georg Bauhaus
2011-11-04  9:53     ` Brian Drummond
2011-11-04 16:39       ` Simon Wright
2011-11-04 18:47       ` Adam Beneschan
2011-11-04 20:03         ` Simon Wright
2011-11-08  4:25         ` Randy Brukardt [this message]
2011-11-08 12:10           ` Brian Drummond
2011-11-08 12:35             ` Simon Wright
2011-11-08 13:05               ` Dmitry A. Kazakov
2011-11-10  9:56             ` Álex R. Mosteo
2011-11-04 12:25 ` Stephen Leake
replies disabled

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