diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 67583a16f68ec629cc3d154a447af2d0634edc92..1f319a0e1201bc724e34cd632e05f041e2e1ffb6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2008-06-02 Andy Hutchinson <hutchinsonandy@aim.com> + + * gcc.target/avr/avr.exp: Add avr testsuite. + * gcc.target/avr/trivial.c: Add simple test. + * gcc.target/avr/torture/avr-torture.exp: Add avr-torture testsuite. + * gcc.target/avr/torture/trivial.c: Add simple test. + 2008-06-02 Andy Hutchinson <hutchinsonandy@aim.com> * gcc.dg/pr19340.c: Disable for AVR as it has no scheduling. diff --git a/gcc/testsuite/gcc.target/avr/avr.exp b/gcc/testsuite/gcc.target/avr/avr.exp new file mode 100644 index 0000000000000000000000000000000000000000..90aeed41e1fa1a4192eeffbfc8ded404edcfffae --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/avr.exp @@ -0,0 +1,41 @@ +# Copyright (C) 2008 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 3 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 GCC; see the file COPYING3. If not see +# <http://www.gnu.org/licenses/>. + +# GCC testsuite that uses the `dg.exp' driver. + +# Exit immediately if this isn't an AVR target. +if ![istarget avr-*-*] then { + return +} + +# Load support procs. +load_lib gcc-dg.exp + +# If a testcase doesn't have special options, use these. +global DEFAULT_CFLAGS +if ![info exists DEFAULT_CFLAGS] then { + set DEFAULT_CFLAGS " -ansi -pedantic-errors" +} + +# Initialize `dg'. +dg-init + +# Main loop. +dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \ + "" $DEFAULT_CFLAGS + +# All done. +dg-finish diff --git a/gcc/testsuite/gcc.target/avr/torture/avr-torture.exp b/gcc/testsuite/gcc.target/avr/torture/avr-torture.exp new file mode 100644 index 0000000000000000000000000000000000000000..355b3ad88bd71c8c506510513707f83982f00be8 --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/torture/avr-torture.exp @@ -0,0 +1,61 @@ +# Copyright (C) 2008 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 3 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 GCC; see the file COPYING3. If not see +# <http://www.gnu.org/licenses/>. + +# GCC testsuite that uses the `gcc-dg.exp' driver, looping over +# optimization options. + +# Exit immediately if this isn't a AVR target. +if { ![istarget avr-*-*] } then { + return +} + +# Load support procs. +load_lib gcc-dg.exp + +# If a testcase doesn't have special options, use these. +global DEFAULT_CFLAGS +if ![info exists DEFAULT_CFLAGS] then { + set DEFAULT_CFLAGS " -ansi -pedantic-errors" +} + +# Initialize `dg'. +dg-init + + set AVR_TORTURE_OPTIONS [list \ + { -O0 } \ + { -O1 } \ + { -O2 } \ + { -O2 -mcall-prologues } \ + { -Os -fomit-frame-pointer } \ + { -Os -fomit-frame-pointer -finline-functions } \ + { -O3 -g } \ + { -Os -mcall-prologues} ] + + +#Initialize use of torture lists. +torture-init + +set-torture-options $AVR_TORTURE_OPTIONS + + +# Main loop. +gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] $DEFAULT_CFLAGS + +# Finalize use of torture lists. +torture-finish + +# All done. +dg-finish diff --git a/gcc/testsuite/gcc.target/avr/torture/trivial.c b/gcc/testsuite/gcc.target/avr/torture/trivial.c new file mode 100644 index 0000000000000000000000000000000000000000..91163f9226e200d9cb22ec8eb769db991b06282c --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/torture/trivial.c @@ -0,0 +1,14 @@ +/* { dg-do run } */ +#include <stdio.h> + +#define __ATTR_PROGMEM__ __attribute__((__progmem__)) + +#define PROGMEM __ATTR_PROGMEM__ +char PROGMEM a1 = 0x12; +int PROGMEM a2 = 0x2345; +long PROGMEM a3 = 0x12345678; +int main(void) +{ + printf("Hello World\n"); + return 0; +} diff --git a/gcc/testsuite/gcc.target/avr/trivial.c b/gcc/testsuite/gcc.target/avr/trivial.c new file mode 100644 index 0000000000000000000000000000000000000000..91163f9226e200d9cb22ec8eb769db991b06282c --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/trivial.c @@ -0,0 +1,14 @@ +/* { dg-do run } */ +#include <stdio.h> + +#define __ATTR_PROGMEM__ __attribute__((__progmem__)) + +#define PROGMEM __ATTR_PROGMEM__ +char PROGMEM a1 = 0x12; +int PROGMEM a2 = 0x2345; +long PROGMEM a3 = 0x12345678; +int main(void) +{ + printf("Hello World\n"); + return 0; +}