ACATS

Andr? Tavares wrote:

Thanks for the link Duff.

You're welcome.

I downloaded ACATS, but could not run it on LLVM. Could not find any
instructions that could lead me to do so. Do you know how can do it?

Compiler vendors are expected to write their own scripts,
which is not a trivial task.

The "B Tests" have deliberate errors, marked with "-- ERROR:" comments.
The compiler should generate error messages for those, and you have
to check by hand (!) that they are correct. Having done so once,
you can automate the process by diff-ing the listings or whatever.

The "C Tests" are supposed to be compiled and run, and they print something
like:

    ==== C23001A PASSED ====================================

There are a few other categories of tests.

Some tests have to be modified by hand (e.g. stick in the maximum integer value
supported by your compiler).

All this stuff is documented, but as far as I know, the ACATS web site does not
contain any scripts that do all this automatically. There's documentation
on all the rules and regulations about what it means to "pass", and which
tests are optional, and so on.

Are you able to compile and run a few tests by hand?

- Bob

Here's an example of running an ACATS test by hand, using GNAT Pro.
/home/duff/support is a directory in which I have placed
report.ads and report.adb (the Report package).

% gnatchop c23001a.ada
splitting c23001a.ada into:
   c23001a.adb
% gnatmake -I/home/duff/support c23001a.adb
gcc -c -I/home/duff/support c23001a.adb
gcc -c -I./ -I/home/duff/support -I- /home/duff/support/report.adb
gnatbind -I/home/duff/support -x c23001a.ali
gnatlink c23001a.ali
% ./c23001a
     C23001A UPPER/LOWER CASE EQUIVALENCE IN IDENTIFIERS.
==== C23001A PASSED ============================.
%

- Bob

* Bob Duff:

Compiler vendors are expected to write their own scripts,
which is not a trivial task.

The GCC repository contains the scripts to run (parts of) ACATS with
GCC, FWIW.