diff options
author | janis <janis@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-10-18 00:22:58 +0000 |
---|---|---|
committer | janis <janis@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-10-18 00:22:58 +0000 |
commit | a22c581bb50a3bd05cf583ae227ae80dd50ba2b6 (patch) | |
tree | da6b04741aa409eb1dceee4f2ad3003d6c8d1007 /gcc/testsuite/README.compat | |
parent | 9745a09461a73f315caf10ec1dae3f3a265d51a6 (diff) | |
download | gcc-a22c581bb50a3bd05cf583ae227ae80dd50ba2b6.tar.gz |
2002-10-17 Janis Johnson <janis187@us.ibm.com>
* g++.dg/README: Describe new compat directory.
* g++.dg/dg.exp: Skip tests in compat directory.
* README.compat: New file.
* lib/compat.exp: New expect script.
* g++.dg/compat: New test directory.
* g++.dg/compat/compat.exp: New expect script.
* g++.dg/compat/abi: New test directory.
* g++.dg/compat/abi/bitfield1_x.C, g++.dg/compat/abi/bitfield1_main.C,
g++.dg/compat/abi/bitfield1_y.C, g++.dg/compat/abi/bitfield1.h,
g++.dg/compat/abi/bitfield2_x.C, g++.dg/compat/abi/bitfield2_main.C,
g++.dg/compat/abi/bitfield2_y.C, g++.dg/compat/abi/bitfield2.h,
g++.dg/compat/abi/vbase8-10_x.C, g++.dg/compat/abi/vbase8-10_main.C,
g++.dg/compat/abi/vbase8-10_y.C, g++.dg/compat/abi/vbase8-10.h,
g++.dg/compat/abi/vbase8-21_x.C, g++.dg/compat/abi/vbase8-21_main.C,
g++.dg/compat/abi/vbase8-21_y.C, g++.dg/compat/abi/vbase8-21.h,
g++.dg/compat/abi/vbase8-22_x.C, g++.dg/compat/abi/vbase8-22_main.C,
g++.dg/compat/abi/vbase8-22_y.C, g++.dg/compat/abi/vbase8-22.h,
g++.dg/compat/abi/vbase8-4_x.C, g++.dg/compat/abi/vbase8-4_main.C,
g++.dg/compat/abi/vbase8-4_y.C, g++.dg/compat/abi/vbase8-4.h: New files.
* g++.dg/compat/break: New test directory.
* g++.dg/compat/break/empty6_x.C, g++.dg/compat/break/empty6_main.C,
g++.dg/compat/break/empty6_y.C, g++.dg/compat/break/empty6.h,
g++.dg/compat/break/vbase10_x.C, g++.dg/compat/break/vbase10_main.C,
g++.dg/compat/break/vbase10_y.C, g++.dg/compat/break/vbase10.h,
g++.dg/compat/break/vbase11_x.C, g++.dg/compat/break/vbase11_main.C,
g++.dg/compat/break/vbase11_y.C, g++.dg/compat/break/vbase11.h,
g++.dg/compat/break/bitfield7_x.C, g++.dg/compat/break/bitfield7_main.C,
g++.dg/compat/break/bitfield7_y.C, g++.dg/compat/break/bitfield7.h,
g++.dg/compat/break/bitfield5_x.C, g++.dg/compat/break/bitfield5_main.C,
g++.dg/compat/break/bitfield5_y.C, g++.dg/compat/break/bitfield5.h,
g++.dg/compat/break/README: New files.
* g++.dg/compat/eh: New test directory.
* g++.dg/compat/eh/ctor1_x.C, g++.dg/compat/eh/ctor1_main.C,
g++.dg/compat/eh/ctor1_y.C, g++.dg/compat/eh/ctor1.h,
g++.dg/compat/eh/ctor2_x.C, g++.dg/compat/eh/ctor2_main.C,
g++.dg/compat/eh/ctor2_y.C, g++.dg/compat/eh/ctor2.h,
g++.dg/compat/eh/dtor1_x.C, g++.dg/compat/eh/dtor1_main.C,
g++.dg/compat/eh/dtor1_y.C, g++.dg/compat/eh/dtor1.h,
g++.dg/compat/eh/filter1_x.C, g++.dg/compat/eh/filter1_main.C,
g++.dg/compat/eh/filter1_y.C, g++.dg/compat/eh/filter1.h,
g++.dg/compat/eh/filter2_x.C, g++.dg/compat/eh/filter2_main.C,
g++.dg/compat/eh/filter2_y.C,
g++.dg/compat/eh/new1_x.C, g++.dg/compat/eh/new1_main.C,
g++.dg/compat/eh/new1_y.C,
g++.dg/compat/eh/nrv1_x.C, g++.dg/compat/eh/nrv1_main.C,
g++.dg/compat/eh/nrv1_y.C, g++.dg/compat/eh/nrv1.h,
g++.dg/compat/eh/spec3_x.C, g++.dg/compat/eh/spec3_main.C,
g++.dg/compat/eh/spec3_y.C, g++.dg/compat/eh/spec3.h,
g++.dg/compat/eh/template1_x.C, g++.dg/compat/eh/template1_main.C,
g++.dg/compat/eh/template1_y.C, g++.dg/compat/eh/template1.h,
g++.dg/compat/eh/unexpected1_x.C, g++.dg/compat/eh/unexpected1_main.C,
g++.dg/compat/eh/unexpected1_y.C: New files.
* g++.dg/compat/init: New test directory.
* g++.dg/compat/init/array5_x.C, g++.dg/compat/init/array5_main.C,
g++.dg/compat/init/array5_y.C,
g++.dg/compat/init/byval1_x.C, g++.dg/compat/init/byval1_main.C,
g++.dg/compat/init/byval1_y.C, g++.dg/compat/init/byval1.h,
g++.dg/compat/init/dtor1_x.C, g++.dg/compat/init/dtor1_main.C,
g++.dg/compat/init/dtor1_y.C, g++.dg/compat/init/dtor1.h,
g++.dg/compat/init/elide1_x.C, g++.dg/compat/init/elide1_main.C,
g++.dg/compat/init/elide1_y.C, g++.dg/compat/init/elide1.h,
g++.dg/compat/init/init-ref2_x.C, g++.dg/compat/init/init-ref2_main.C,
g++.dg/compat/init/init-ref2_y.C: New files.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@58266 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/README.compat')
-rw-r--r-- | gcc/testsuite/README.compat | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/gcc/testsuite/README.compat b/gcc/testsuite/README.compat new file mode 100644 index 00000000000..da2340a9050 --- /dev/null +++ b/gcc/testsuite/README.compat @@ -0,0 +1,72 @@ +Compatibility test suites that use lib/compat.exp test interoperability +of two compilers that follow the same ABI, or of multiple sets of +compiler options that are not intended to affect binary compatibility. +They do not test conformance to a formal ABI; they check that things are +done consistently, not that they are done correctly. They are meant to +complement ABI test suites, not to replace them. + +Each test in these suites splits up functionality into two source files +that can be compiled with two different versions of GCC and with two +sets of compiler options. + + Override the default pairs of compiler options (from compat.exp) by + defining the environment variable COMPAT_OPTIONS as: + COMPAT_OPTIONS="[list [list {tst1} {alt1}]...[list {tstn} {altn}]]" + where tsti and alti are lists of options, with "tsti" used by the + compiler under test and "alti" used by the alternate compiler. The + characters "[", "{", "}", and "]" are really in the string, as in + "[list [list {-g} {-O3}] [list {-O3} {-g}]]". + + To use an alternate compiler, define the environment variable for the + language you're testing; e.g., for C++ define ALT_CXX_UNDER_TEST to be + the full pathname of an installed compiler. That will be written to + the site.exp file used by DejaGNU. The default is to build each test + with the compiler under test using the first of each pair of compiler + options from COMPAT_OPTIONS. When ALT_CXX_UNDER_TEST is "same", each + test is built using the compiler under test but with combinations of + the options from COMPAT_OPTIONS. + +A test that fails when the pieces are compiled with different compilers +but passes when the pieces are compiled with the same compiler +demonstrates incompatibility of the generated code or runtime support. +A test that fails for the alternate compiler but passes for the compiler +under test probably tests for a fix that is not present in the alternate +compiler. + +There's a lot more that can be done with these tests. + + Increase the robustness of the existing tests: + + - recognize target triples in dg-options strings in test files + + - continue to split up tests that rely on language runtime support + and add them to this set of tests + + - make sure they work for testing with a simulator + + - multilibs support? + + Build test pieces into more combinations that will be likely to find + unusual errors: + + - link using the alternate compiler; this requires support for + LD_LIBRARY_PATH for the alternate compiler in the support for each + language + + - build pieces of the test into shared libraries; this requires + support for LD_LIBRARY_PATH for the alternate compiler, and + knowledge about how to build a shared library for each target + + - build pieces of the test into static libraries; this requires + knowledge about how to build a static library for each target + + Continue to add tests to g++.dg/compat, based on existing tests for + language runtime support and for test cases in PRs that didn't used to + fit into the test suite. + + Set up similar tests in libstdc++-v3/testsuite. + + Set up similar tests for additional languages and libraries. + +Janis Johnson, <janis187@us.ibm.com> +October 2002 |