mirror of https://gitlab.com/basile.b/dexed.git
run tile unittest, check coverage after application execution
This commit is contained in:
parent
2d5369c192
commit
2ad52c2a79
|
@ -287,6 +287,7 @@ type
|
||||||
// run & exec sub routines
|
// run & exec sub routines
|
||||||
procedure asyncprocOutput(sender: TObject);
|
procedure asyncprocOutput(sender: TObject);
|
||||||
procedure asyncprocTerminate(sender: TObject);
|
procedure asyncprocTerminate(sender: TObject);
|
||||||
|
procedure unittestDone(Sender: TObject);
|
||||||
procedure compileAndRunFile(unittest: boolean = false; redirect: boolean = true;
|
procedure compileAndRunFile(unittest: boolean = false; redirect: boolean = true;
|
||||||
const runArgs: string = '');
|
const runArgs: string = '');
|
||||||
|
|
||||||
|
@ -1899,8 +1900,6 @@ var
|
||||||
dmdproc: TCEProcess;
|
dmdproc: TCEProcess;
|
||||||
lst: TStringList;
|
lst: TStringList;
|
||||||
fname, firstlineFlags: string;
|
fname, firstlineFlags: string;
|
||||||
covname: string;
|
|
||||||
fullcov: boolean;
|
|
||||||
begin
|
begin
|
||||||
|
|
||||||
fMsgs.clearByData(fDoc);
|
fMsgs.clearByData(fDoc);
|
||||||
|
@ -1972,27 +1971,6 @@ begin
|
||||||
while dmdproc.Running do
|
while dmdproc.Running do
|
||||||
application.ProcessMessages;
|
application.ProcessMessages;
|
||||||
|
|
||||||
if unittest and fCovModUt then
|
|
||||||
begin
|
|
||||||
fullcov := true;
|
|
||||||
covname := ReplaceStr(fname + '.lst', DirectorySeparator, '-');
|
|
||||||
if covname.fileExists then
|
|
||||||
begin
|
|
||||||
lst.Clear;
|
|
||||||
lst.LoadFromFile(covname);
|
|
||||||
for i := 0 to lst.Count-1 do
|
|
||||||
if lst[i][1..7] = '0000000' then
|
|
||||||
begin
|
|
||||||
fMsgs.message(format('%s(%d): %s',[fDoc.fileName, i+1,
|
|
||||||
'not covered by the unittests']), fDoc, amcEdit, amkWarn);
|
|
||||||
fullcov := false;
|
|
||||||
end;
|
|
||||||
sysutils.DeleteFile(covname);
|
|
||||||
if fullcov then fMsgs.message(shortenPath(fDoc.fileName, 25)
|
|
||||||
+ ' is 100% covered by the unittests', fDoc, amcEdit, amkInf);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (dmdProc.ExitStatus = 0) then
|
if (dmdProc.ExitStatus = 0) then
|
||||||
begin
|
begin
|
||||||
fMsgs.message(shortenPath(fDoc.fileName, 25) + ' successfully compiled',
|
fMsgs.message(shortenPath(fDoc.fileName, 25) + ' successfully compiled',
|
||||||
|
@ -2005,6 +1983,8 @@ begin
|
||||||
fRunProc.Parameters.AddStrings(lst);
|
fRunProc.Parameters.AddStrings(lst);
|
||||||
end;
|
end;
|
||||||
fRunProc.Executable := fname + exeExt;
|
fRunProc.Executable := fname + exeExt;
|
||||||
|
if unittest and fCovModUt then
|
||||||
|
fRunProc.OnTerminate:=@unittestDone;
|
||||||
if redirect then
|
if redirect then
|
||||||
getprocInputHandler.addProcess(fRunProc);
|
getprocInputHandler.addProcess(fRunProc);
|
||||||
fRunProc.Execute;
|
fRunProc.Execute;
|
||||||
|
@ -2021,6 +2001,42 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCEMainForm.unittestDone(Sender: TObject);
|
||||||
|
var
|
||||||
|
fullcov: boolean;
|
||||||
|
fname, covname: string;
|
||||||
|
lst: TStringList;
|
||||||
|
i: integer;
|
||||||
|
begin
|
||||||
|
asyncprocTerminate(sender);
|
||||||
|
if fCovModUt then
|
||||||
|
begin
|
||||||
|
fname := stripFileExt(TProcess(sender).Executable);
|
||||||
|
fullcov := true;
|
||||||
|
covname := ReplaceStr(fname + '.lst', DirectorySeparator, '-');
|
||||||
|
if covname.fileExists then
|
||||||
|
begin
|
||||||
|
lst := TStringList.Create;
|
||||||
|
try
|
||||||
|
lst.LoadFromFile(covname);
|
||||||
|
for i := 0 to lst.Count-1 do
|
||||||
|
if lst[i][1..7] = '0000000' then
|
||||||
|
begin
|
||||||
|
fMsgs.message(format('%s(%d): %s',[fDoc.fileName, i+1,
|
||||||
|
'not covered by the unittests']), fDoc, amcEdit, amkWarn);
|
||||||
|
fullcov := false;
|
||||||
|
end;
|
||||||
|
sysutils.DeleteFile(covname);
|
||||||
|
if fullcov then fMsgs.message(shortenPath(fDoc.fileName, 25)
|
||||||
|
+ ' is 100% covered by the unittests', fDoc, amcEdit, amkInf);
|
||||||
|
finally
|
||||||
|
lst.free;
|
||||||
|
end;
|
||||||
|
end else
|
||||||
|
fMsgs.message('the coverage file cannot be found', fDoc, amcEdit, amkWarn);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCEMainForm.actFileUnittestExecute(Sender: TObject);
|
procedure TCEMainForm.actFileUnittestExecute(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
if fDoc.isNotNil then
|
if fDoc.isNotNil then
|
||||||
|
|
Loading…
Reference in New Issue