From 7aa840fc5fc9531742f67871d6ee07a528660544 Mon Sep 17 00:00:00 2001 From: Andy Hutchinson Date: Mon, 2 Jun 2008 22:39:12 +0000 Subject: [PATCH] avr.exp: Add avr testsuite. * 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. From-SVN: r136304 --- gcc/testsuite/ChangeLog | 7 +++ gcc/testsuite/gcc.target/avr/avr.exp | 41 +++++++++++++ .../gcc.target/avr/torture/avr-torture.exp | 61 +++++++++++++++++++ .../gcc.target/avr/torture/trivial.c | 14 +++++ gcc/testsuite/gcc.target/avr/trivial.c | 14 +++++ 5 files changed, 137 insertions(+) create mode 100644 gcc/testsuite/gcc.target/avr/avr.exp create mode 100644 gcc/testsuite/gcc.target/avr/torture/avr-torture.exp create mode 100644 gcc/testsuite/gcc.target/avr/torture/trivial.c create mode 100644 gcc/testsuite/gcc.target/avr/trivial.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 67583a16f68..1f319a0e120 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2008-06-02 Andy Hutchinson + + * 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 * 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 00000000000..90aeed41e1f --- /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 +# . + +# 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 00000000000..355b3ad88bd --- /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 +# . + +# 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 00000000000..91163f9226e --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/torture/trivial.c @@ -0,0 +1,14 @@ +/* { dg-do run } */ +#include + +#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 00000000000..91163f9226e --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/trivial.c @@ -0,0 +1,14 @@ +/* { dg-do run } */ +#include + +#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; +} -- 2.30.2