This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

x86-64 ABI testsuite for GCC


Hi,

as noted in http://gcc.gnu.org/ml/gcc/2005-06/msg00415.html I was trying 
to integrate parts of the x86-64 ABI testsuite into GCC, so that it's run 
as part of the regular 'make check'.  This is what I've come up with.

It basically is a copy of the generated files (plus support files) from 
the master copy of the ABI testsuite, together with a small README 
refering to that master copy, and a small .exp file using the c-torture 
framework for compiling and running the tests.  (I used c-torture 
not dg because it's easier to use for this kind of multiple files 
testsuite, without having to annotate each test_* file with the dg-* 
directives).  I've copied the README.gcc and abi-x86_64.exp in clear text 
below, and attached the whole directory as tarball.

I decided to put all the files into gcc.target/x86-64/abi, but I'm open to 
any other suggestion.

I will make sure that the GCC and the master copy will stay in sync if 
this is approved.

Right now it adds 200 new (passing) tests, which take about 40 seconds to 
complete.

Would this be acceptable to 4.1?


Ciao,
Michael.
-- 

        * gcc.target/x86-64/abi: New directory.
        * gcc.target/x86-64/abi/abi-x86_64.exp: New testsuite.
        * gcc.target/x86-64/abi/README.gcc: New file.
        * gcc.target/x86-64/abi/{args.h,defines.h,macros.h}: New headers.
        * gcc.target/x86-64/abi/asm-support.s: New file.
        * gcc.target/x86_64/abi/test_3_element_struct_and_unions.c: New test.
        * gcc.target/x86_64/abi/test_basic_alignment.c: New test.
        * gcc.target/x86_64/abi/test_basic_array_size_and_align.c: New test.
        * gcc.target/x86_64/abi/test_basic_returning.c: New test.
        * gcc.target/x86_64/abi/test_basic_sizes.c: New test.
        * gcc.target/x86_64/abi/test_basic_struct_size_and_align.c: New test.
        * gcc.target/x86_64/abi/test_basic_union_size_and_align.c: New test.
        * gcc.target/x86_64/abi/test_bitfields.c: New test.
        * gcc.target/x86_64/abi/test_complex_returning.c: New test.
        * gcc.target/x86_64/abi/test_passing_floats.c: New test.
        * gcc.target/x86_64/abi/test_passing_integers.c: New test.
        * gcc.target/x86_64/abi/test_passing_structs_and_unions.c: New test.
        * gcc.target/x86_64/abi/test_passing_structs.c: New test.
        * gcc.target/x86_64/abi/test_passing_unions.c: New test.
        * gcc.target/x86_64/abi/test_struct_returning.c: New test.
        * gcc.target/x86_64/abi/test_varargs.c: New test.

------ README.gcc ---------------
This contains a testsuite for the AMD64 psABI.
The ABI document is at http://www.x86-64.org/documentation/abi.pdf .
The content of this directory in the GCC tree is just a (partial) copy of the
ABI testsuite at cvs.x86-64.org.

See http://www.x86-64.org/cvsaccess for accessing the anonymous CVS server.
The module 'abitest' contains the master copy of this directory.

The whole testsuite is licensed under GPL v2.

Be aware that some of the test_*.c files here are generated, with the
generators only being in the master copy of the testsuite.

To change anything, please contact discuss@x86-64.org or the current
maintainer of the testuite directly.

The current maintainer is:
  matz@suse.de

------ abi-x86_64.exp ------------
# Copyright (C) 2005 Free Software Foundation, Inc.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

# The x86-64 ABI testsuite needs one additional assembler file for most
# testcases.  For simplicity we will just link it into each test.

load_lib c-torture.exp

set additional_flags "-W -Wall"

foreach src [lsort [find $srcdir/$subdir test_*.c]] {
    if {[runtest_file_p $runtests $src]} {
	c-torture-execute [list $src \
			        $srcdir/$subdir/asm-support.s] \
				$additional_flags
    }
}
-----------------------------

Attachment: amd64-abitest-for-gcc.tar.bz2
Description: BZip2 compressed data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]