aboutsummaryrefslogtreecommitdiff
This repository contains non-regression tests for TCWG toolchains.

It should be executed via the top-level Makefile as:
$ make check TOOLCHAIN=<top-level-toolchain-directory> TARGET=<target-triplet>

for instance:
make check TOOLCHAIN=binary-toolchains/gcc-linaro-6.3.1-2017.02-x86_64_arm-eabi TARGET=arm-eabi

TOOLCHAIN, HOST and TARGET are analyzed by some tests to discover whether
the test should be skipped, or to set some flags according to the
configuration under test. For instance, if HOST contains "mingw",
the toolchain is presumed to be a Windows-hosted toolchain, and will
be executed using wine. TARGET is used to check whether the target is
bare-metal or linux, or arm vs aarch64. TOOLCHAIN is mainly used to
construct various directories inside toolchain workspace.

Organization:
- bug-XXXX directories contain tests related to bug reports
- tcwg-hello-links checks that simple "hello" programs link, in C and in C++
- tcwg-properties tests various toolchain default properties (endianness, thumb, fp abi, ....)

The whole testsuite is driven by the top-level Makefile, and subdirs
can make use of common.mk to keep their own Makefile minimal. Most
tests are written using a free-form shell script so that it is easy to
handle any need. The expected output is in subdir/result.txt, all of
which are collected by the top-level Makefile.