gcov: New directory.
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 6 Nov 2017 11:41:49 +0000 (11:41 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 6 Nov 2017 11:41:49 +0000 (11:41 +0000)
* gnat.dg/gcov: New directory.
* gnat.dg/gcov/gcov.exp: New driver.
* gnat.dg/gcov/check.adb: New test.

From-SVN: r254447

gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/gcov/check.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/gcov/gcov.exp [new file with mode: 0644]

index ceb0f430126d408e6e034fcf006736f122bb12f2..1c3a2fa2abb5ae0c379939708da2788860bd1624 100644 (file)
@@ -1,3 +1,9 @@
+2017-11-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gnat.dg/gcov: New directory.
+       * gnat.dg/gcov/gcov.exp: New driver.
+       * gnat.dg/gcov/check.adb: New test.
+
 2017-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
 
        * gcc.c-torture/execute/pr23135.c: Move dg-add-options after
diff --git a/gcc/testsuite/gnat.dg/gcov/check.adb b/gcc/testsuite/gnat.dg/gcov/check.adb
new file mode 100644 (file)
index 0000000..b3cb8e3
--- /dev/null
@@ -0,0 +1,27 @@
+-- { dg-options "-fprofile-arcs -ftest-coverage" }
+-- { dg-do run { target native } } */
+
+procedure Check is
+
+  function Add1 (I1, I2 : Integer) return Integer is
+  begin
+    return I1 + I2;  -- count(1)
+  end;
+
+  function Add2 (I1, I2 : Integer) return Integer is
+    pragma Suppress (Overflow_Check);
+  begin
+    return I1 + I2;  -- count(1)
+  end;
+
+begin
+  if Add1 (1, 2) /= 3 then
+    raise Program_Error;
+  end if;
+
+  if Add2 (1, 2) /= 3 then
+    raise Program_Error;
+  end if;
+end;
+
+-- { dg-final { run-gcov check.adb } }
diff --git a/gcc/testsuite/gnat.dg/gcov/gcov.exp b/gcc/testsuite/gnat.dg/gcov/gcov.exp
new file mode 100644 (file)
index 0000000..732ff87
--- /dev/null
@@ -0,0 +1,44 @@
+#   Copyright (C) 1997-2017 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/>.
+
+# Gcov test driver.
+
+# Load support procs.
+load_lib gnat-dg.exp
+load_lib gcov.exp
+
+global GCC_UNDER_TEST
+
+# For now find gcov in the same directory as $GCC_UNDER_TEST.
+if { ![is_remote host] && [string match "*/*" [lindex $GCC_UNDER_TEST 0]] } {
+    set GCOV [file dirname [lindex $GCC_UNDER_TEST 0]]/gcov
+} else {
+    set GCOV gcov
+}
+
+# Initialize harness.
+dg-init
+
+# Delete old .gcda files.
+set files [glob -nocomplain *.gcda]
+if { $files != "" } {
+    eval "remote_file build delete $files"
+}
+
+# Main loop.
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.adb]] "" ""
+
+dg-finish