[test-suite] r214118 - test commit for the ABI-Testsuite
Sunil Srivastava
sunil_srivastava at playstation.sony.com
Mon Jul 28 14:01:10 PDT 2014
Author: ssrivastava
Date: Mon Jul 28 16:01:10 2014
New Revision: 214118
URL: http://llvm.org/viewvc/llvm-project?rev=214118&view=rev
Log:
test commit for the ABI-Testsuite
Added:
test-suite/trunk/ABI-Testsuite/
test-suite/trunk/ABI-Testsuite/Design-of-ABI-Testsuite-7-2.pdf (with props)
test-suite/trunk/ABI-Testsuite/README.txt
Added: test-suite/trunk/ABI-Testsuite/Design-of-ABI-Testsuite-7-2.pdf
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/ABI-Testsuite/Design-of-ABI-Testsuite-7-2.pdf?rev=214118&view=auto
==============================================================================
Binary file - no diff available.
Propchange: test-suite/trunk/ABI-Testsuite/Design-of-ABI-Testsuite-7-2.pdf
------------------------------------------------------------------------------
svn:executable = *
Propchange: test-suite/trunk/ABI-Testsuite/Design-of-ABI-Testsuite-7-2.pdf
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: test-suite/trunk/ABI-Testsuite/README.txt
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/ABI-Testsuite/README.txt?rev=214118&view=auto
==============================================================================
--- test-suite/trunk/ABI-Testsuite/README.txt (added)
+++ test-suite/trunk/ABI-Testsuite/README.txt Mon Jul 28 16:01:10 2014
@@ -0,0 +1,106 @@
+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'.
+
+
+
+
More information about the llvm-commits
mailing list