Skip to content

abstract methods are not excluded (since Delphi 2010) #3

@eugeneilyin

Description

@eugeneilyin

Something was changed in .map file format since Delphi 2010 and CodeCoverage32 threat abstract methods as executed non-covered code.

Project settings

Linking / Map file: Detailed

Command Line (32-bit)

CodeCoverage32 -e Project.exe -m Project.map -u SampleUnit -od Coverage -html

Command Line (64-bit)

CodeCoverage64 -e Project.exe -m Project.map -u SampleUnit -od Coverage -html

Minimal code to reproduce

Project.dpr

program Project;

{$APPTYPE CONSOLE}

uses
  SampleUnit in 'SampleUnit.pas';

begin
  with TClassB.Create do
    try
      Method;
    finally
      Free;
    end;
end.

SampleUnit.pas

unit SampleUnit;

interface

type

  TClassA = class
  public
    procedure Method; virtual; abstract;
  end;

  TClassB = class(TClassA)
  public
    procedure Method; override;
  end;

implementation

procedure TClassB.Method;
begin
end;

end.

Coverage Report

Compiler Lines Covered Covered % Report
Delphi 5 2 2 100 % Report
Delphi 6 2 2 100 % Report
Delphi 7 2 2 100 % Report
Delphi 2005 2 2 100 % Report
Delphi 2006 1 1 100 % Report
Delphi 2009 1 1 100 % Report
Delphi 2010 2 1 50 % Report
Delphi XE 3 2 66 % Report
Delphi XE2
32-bit
3 2 66 % Report
Delphi XE2
64-bit
4 3 75 % Report
Delphi XE3
32-bit
3 2 66 % Report
Delphi XE3
64-bit
4 3 75 % Report
Delphi XE4
32-bit
3 2 66 % Report
Delphi XE4
64-bit
4 3 75 % Report
Delphi XE5
32-bit
3 2 66 % Report
Delphi XE5
64-bit
4 3 75 % Report
Delphi XE6
32-bit
3 2 66 % Report
Delphi XE6
64-bit
4 3 75 % Report
Delphi XE7
32-bit
3 2 66 % Report
Delphi XE7
64-bit
4 3 75 % Report
Delphi XE8
32-bit
3 2 66 % Report
Delphi XE8
64-bit
4 3 75 % Report
Delphi 10.0 Seattle
32-bit
3 2 66 % Report
Delphi 10.0 Seattle
64-bit
4 3 75 % Report
Delphi 10.1 Berlin
32-bit
3 2 66 % Report
Delphi 10.1 Berlin
64-bit
4 3 75 % Report
Delphi 10.2 Tokyo
32-bit
3 2 66 % Report
Delphi 10.2 Tokyo
64-bit
4 3 75 % Report
Delphi 10.3 Rio
32-bit
3 2 66 % Report
Delphi 10.3 Rio
64-bit
4 3 75 % Report

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions