Files
ABI-Testsuite
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||
This directory contains the IA64-ABI testsuite. To run the testsuite on linux 1) Make sure you have 'lit' in PYTHONOPATH, and FileCheck in PATH. 2) Do python linux-x86.py <compiler+args> test [any lit arguments] <compiler+args> is the compiler to be tested, with any args as one argument; such as python linux-x86.py clang test # clang must be in PATH python linux-x86.py /home/me/bin/my-clang test # my own compiler, not in PATH python linux-x86.py 'clang -m32' test # test 32 bit mode python linux-x86.py 'clang -O' test # test with optimization on python linux-x86.py 'gcc' test -v # test gcc, with -v passed to lit python linux-x86.py clang test/basic # test only 'basic' directory linux-x86.py runs a small executable to first figure out whether this is 32 bit or 64 bit platform, and then chooses one of the two configurations for testing. Other, non-linux platforms will require edits to the python script to specify compilers, linker, runner (if any). We will provide a sample file that can be modified to other 'similar' platforms, however it should be noted that the testsuite, as released, supports only x86-linux-like platforms (both ILP32 and LP64). Tests are arranged in multiple diretories, starting from 'test'. The pyhthon script can be given any subdirectory. The directory 'test/common' contains utility files used by the testsuite. The overview of files is as follows: README.text # This README linux-x86.py # top level python script test/basic/basic.x # A small directory to test that the basic configuration test/basic/T_st.x # is correct. If this fails, everything else will too. test/common/genselector.c # Directory containing utilities used by the testsuite test/common/select2.h test/common/testsuite.c test/common/testsuite.h test/lit.site.cfg # top config file called from lit test/mangling/arrays.xpp # Mangling test. Using FileCheck test/mangling/c++11.xpp test/mangling/c++11s.xpp .... test/misc/s2_8a.xpp # miscellaneous test directory test/misc/s2_8b.x test/misc/s2_9_5.x test/misc/s3_1.xpp ... test/s2_4/T_novirt_1.x # test targetted to particular section of the spec ... test/s2_5/T_vf1.x test/s2_5/T_vf2.x ... test/s2_6/T_isc.x test/s2_6/T_ksc0.x test/s2_6/T_ksc1.x ... test/struct_layout_tests/CT_bf.x # tests for plain struct layout test/struct_layout_tests/CT_Snen_xaa.x test/struct_layout_tests/CT_Snen_xab.x ... test/struct_layout_tests/PACKED/CT_Snen_xaa.x # test for packed structs test/struct_layout_tests/PACKED/CT_Snen_xab.x ... ------------------------------------------------------------------ Some points to note: a) This release consists of about 290 files. We plan to release more tests a little later. b) As one can see, test files are named with suffixes '.x' and '.xpp'. This is intentional. There is a mechanism, in lit.site.cfg, which copies them to correspondig '.c' or '.cpp' files, looking into a 'skip_list' specified at the top level python file. This mechanism is meant to allow users to mark certain tests 'XFAIL' (expected to fail), on per-file, per-test-script basis. c) Test files are all self-contained and independent. They can be removed or moved around to different directories. d) Most files are named T_*.x or CT_*.x and are 'combined' files having both C and C++ code, separated by '#ifdef __cplusplus'. The '//RUN' header at the top of these files runs both the C and C++ compilers on them and links the resulting object files to make the excutable test. ------------------------------------------------------------------ There are several ways to handle situations where some tests are failing for some understood reasons. 1) There is a mechanism of skip_list to mark certain tests XFAIL by adding them to the skip_list, as shown in sample.py 2) The results of test executablles can be saved as a 'golden master' to compare against future runs. 3) Finally, 'test_params['checker'] can be changed from plain 'grep' to any user written program that can match the test results to such a 'golden master'.