next up previous

The Fermilab C++ Compiler Test Suite Framework

Marc W. Mengel mengel@fnal.gov

Abstract:

A test framework for C++ compilers has been designed to meet several goals:

This framework is in early release, with tests from past C++ compiler testing efforts already put into the framework. This document describes the framework, and how to add tests to it, and is targeted at test developers.

\

Contents

Description

The Fermilab C++ Compiler Test Suite Framework, which is available in the Fermilab OSS department cvs repository is a combination of:

These parts will now be discussed in detail.

 

Compiler Description Files

Compiler description files are short Bourne shell (/bin/sh) script fragments which define shell variables to hide the differences between compilers and environments. Currently the list of variables is:

tabular19
Of these, the hardest to discover is usually the definition for VERS.

These variables are used in the Engine script to run the tests, and in the test's Compileflags and Linkflags files.

Test Framework directory layout

Inside the test framework there are several directories:

tabular26

The test is successful if the Good sources all compile and link, and the Bad sources all fail to compile.

Note that the Compileflags and Linkflags files should always use definitions fromthe Compiler descriptions, rather than actual compiler flags. For example:

$INCLUDE ./incfiles

rather than

-I ./incfiles

Test Engine

The test engine is a Bourne shell script, which takes as command line arguments one or more compiler names; where a compiler name is the name of a Compiler Description File, in the Compilers directory. It performs the following functions for each compiler:

Currently, the reports can only be added automatically if the tests are run on a system with the AFS filesystem mounted, and if the user has write permission on the area in question.

Adding tests

This section assumes an understanding of cvs, since that is where the "official copy" of the test suite is kept.

Basically, if you have a test program which you want to add to the suite, you need to:

New compiler flags

If your test needs compiler flags that aren't defined in the compiler definitions, you should add a new variable to *all* the compiler definitions, and to this document, in section 1.1. If you don't know the option for a particular compiler, set the option to the empty string.

Adding Compiler Definitions

This section assumes an understanding of cvs, since that is where the "official copy" of the test suite is kept.

Adding a compiler definition consists of:

About this document ...

The Fermilab C++ Compiler Test Suite Framework

This document was generated using the LaTeX2HTML translator Version 96.1-h (September 30, 1996) Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.

The command line arguments were:
latex2html c++suite.tex.

The translation was initiated by Marc Mengel on Tue Jun 16 11:28:44 CDT 1998


next up previous

Marc Mengel
Tue Jun 16 11:28:44 CDT 1998