> 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