> Yes, I've got patch candidate that's going to change gcov format.

Thanks.  As discussed privately, here's a test harness for automatic coverage 
testing in Ada, to be invoked like this:

make -C gcc -k check-gnat RUNTESTFLAGS="gcov.exp"

from the toplevel build directory.

The single test fails because of the issue we're discussing:

Running /home/eric/svn/gcc/gcc/testsuite/gnat.dg/gcov/gcov.exp ...
FAIL: gnat.dg/gcov/check.adb line 8: is 1*:should be 1
FAIL: gnat.dg/gcov/check.adb gcov: 1 failures in line counts, 0 in branch 
percentages, 0 in return percentages, 0 in intermediate format

                === gnat Summary ===

# of expected passes            3
# of unexpected failures        2

Applied on the mainline.


2017-11-06  Eric Botcazou  <ebotca...@adacore.com>

        * gnat.dg/gcov: New directory.
        * gnat.dg/gcov/gcov.exp: New driver.
        * gnat.dg/gcov/check.adb: New test.

-- 
Eric Botcazou
-- { 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 } }
#   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

Reply via email to