• Stars
    star
    9
  • Rank 1,939,727 (Top 39 %)
  • Language
    Ada
  • License
    Other
  • Created over 7 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The Ada Conformity Assessment Test Suite, customised for GCC.

ACATS

This repository contains a version of the Ada Conformity Assessment Test Suite customised for use with FSF GCC. They can be used instead of the current GCC tests (based on ACATS 2.6).

The current version here is 4.1EE.

Notes

To run the tests, you'll need expect (and tcl) installed.

Test changes

Test CXH1001 as released fails; if the GNAT binder encounters the configuration pragma Normalize_Scalars, it requires all the units in the partition to have been compiled with it, including the runtime system. Replaced here by the GNAT-specific Initialize_Scalars.

Some individual tests are in any case suppressed (by inclusion in the file norun.lst), because they involve another language (Fortran, Cobol).

The tests that involve timing mostly included very long timeouts (up to an hour in some cases), which were scaled here (as in the GCC version) by multiplying by One_Nominal_Second (0.001 seconds) or One_Nominal_Long_Second (0.1 seconds). This problem was corrected in ACATS 4.1M, and the code here matches the official version.

Testing in GCC

You can run the GCC checks with this version of the tests (provided you have dejagnu installed as well as expect) by replacing gcc/testsuite/ada/acats in the source tree by (a link to) this code and then, in the gcc directory of the build tree, run make check-acats. (You can also run make check-gnat for the GNAT tests, or make check-ada for both).

You can run the tests in parallel, which of course makes most sense if you have multiple cores, by for example make -j4 check-acats. If you do this, the screen output during execution is misleading; only the final acats.log and acats.sum in <build-dir>/gcc/testsuite/ada/acats/ are meaningful.

The default compiler options are -gnatws -g -O2 (-gnat2012 is always added). You can pass additional options using the RUNTESTFLAGS feature:

make check-acats RUNTESTFLAGS="--target_board=unix/-O3/-gnatN"

runs the tests with -gnatws -gnatN -g -O2 -O3.

If you wish to pass any GNAT-specific options (e.g. -gnat*) you must only run this suite (make check-acats), because -gnat* will fail with most other tools (unrecognized debug output level 'nat*').

Don't use RUNTESTFLAGS with -j<n>: it doesn't get passed to sub-makes (as of 2018-02-10).

Local testing

You can also run the tests, or individual chapters of the tests, by using the run_local.sh script (from a different directory). For example,

mkdir ~/tmp/acats
cd ~/tmp/acats
~/ACATS/run_local.sh cxd cxe

(assuming this repository is installed at ~/ACATS) will run just chapters CXD, CXE (execution tests on Annexes D and E), using the current compiler. With no arguments, all tests are run.

If you only want to run the execution tests (i.e. not the B tests, which check that compilation errors are detected, and are many),

~/ACATS/run_local.sh $(cd ~/ACATS/tests; ls -d [ac-z]*)

The above commands will only build the support code if it isn't already built. To force a rebuild, say

~/ACATS/run_local.sh NONE cxd cxe

Reports

The reports are in acats.log and acats.sum.

acats.log is a full report of test compilation, build and execution.

acats.sum is a report of just the outcome of each test and a summary.

The outcomes are reported in the style OUTCOME: test, e.g. PASS: a22006b, where the possible outcomes are

  • PASS: the test passed
  • FAIL: the test was expected to pass but failed
  • XFAIL: the test was expected to fail and did so
  • XPASS: the test was expected to fail but passed
  • UNRESOLVED: the test requires visual examination to finally determine pass/fail
  • UNSUPPORTED: the test was either deemed not applicable by the test itself (for example, C45322A requires Machine_Overflows to be True), not supported by the compiler (for example, CXAG002 will not compile because it requires support for Hierarchical_File_Names), or not compatible with simple use of gnatchop (because the test contains the same unit in several source files, expecting them to be used in multiple passes).

Note, these outcome names are not ideal, but they have to match the requirements of the GCC test infrastructure that supports parallel test execution.

The summary is reported in the form below (this is for ACATS 4.1BB, running under GCC 12.2.0 on macOS)

        === acats Summary ===
# of expected passes		2544
# of unexpected failures	10
# of expected failures		1493
# of unresolved testcases	11
# of unsupported tests		124
*** FAILURES: c250002 c324006 c415001 cxa4038 cxd1003 cxd1004 cxd1005 cxd2006 cxd3001 cxd3002

More Repositories

1

cortex-gnat-rts

This project contains various GNAT Ada Run Time Systems (RTSs) targeted at Cortex boards: so far, the Arduino Due, the STM32F4-series evaluation boards from STMicroelectronics, and the BBC micro:bit (v1)
Ada
60
star
2

distributing-gcc

Binary releases of GCC (native and cross) on macOS; also, the scripts/Makefiles used for producing them.
Makefile
32
star
3

building-gcc-macos-native

Scripts for building GCC on macOS
Shell
11
star
4

ews

The Embedded Web Server is designed for use in embedded systems with limited resources (eg, no disk). It supports both static (converted from a standard web tree, including graphics and Java class files) and dynamic pages. It is written in GCC Ada.
Ada
11
star
5

stack_usage

Calculates the maximum stack depth required by GCC-compiled code
Python
10
star
6

analytical-engine

An Ada 2012 emulation of Charles Babbage’s Analytical Engine
Ada
9
star
7

tcladashell

Ada binding to Tcl/Tk. Note, the copyright is GPL 2.0 + GMGPL
Ada
9
star
8

ASIS

Supports building the Ada Semantic Interface Specification library and tools for FSF GCC variants. Tracks AdaCore CE releases.
Ada
8
star
9

coldframe

ColdFrame generates Ada framework code and documentation from UML models.
Ada
8
star
10

nuweb.py

Literate programming in LaTeX; programming languages of your choice
Python
5
star
11

xia

An Ada implementation of XPath 1.0.
Ada
4
star
12

dhondt

Ada implementation of D’Hondt electoral result calculator
Ada
4
star
13

alire-index.mac

Index of Alire crate versions catering for macOS idiosyncrasies
4
star
14

building-gcc-macos-arm-eabi

Scripts for building GCC on macOS as a cross-compiler to arm-eabi
Shell
3
star
15

adagoop

Generator of object-oriented parsers in Ada
Ada
3
star
16

libadalang2xml

Generates an XML representation of Ada source using libadalang.
Ada
2
star
17

asis2xml

Converts Ada sources’ ASIS representation to XML, so as to make it easier to develop reporting and transformational tools using (for example) XSLT.
Ada
2
star
18

leak_detector

Reports memory leaks in Ada programs.
Ada
2
star
19

xcode_15_fix

Xcode/CLT version 15 introduced problems for Ada programming on macOS.
Ada
2
star
20

Quaternions

An Ada library to support using quaternions.
Ada
2
star
21

macos-sdks-vs-gcc

Provides GCC 'specs' files to cope with macOS SDK policy changes
Ada
1
star
22

synchronized_output

Supports text logging from multiple tasks
Ada
1
star
23

gnat_util

Provides access to GNAT compiler internals for AdaCore utilities
Makefile
1
star
24

scripted_testing

Supports functional testing using Tcl scripts.
Ada
1
star
25

ACATS-grading

Tools for grading ACATS results, modified for Unix-like systems
Shell
1
star
26

minimal_containers

Just enough containers for ColdFrame.
Ada
1
star
27

trace_utilities

Support for presenting traceback information.
Ada
1
star
28

parallelize

Reads commands and executes them in parallel.
Ada
1
star