Browse Source

* For large times, use [[hh:]nn:]ss date/time format

git-svn-id: trunk@28278 -
michael 11 years ago
parent
commit
347742ba80
1 changed files with 19 additions and 1 deletions
  1. 19 1
      packages/fcl-fpcunit/src/latextestreport.pp

+ 19 - 1
packages/fcl-fpcunit/src/latextestreport.pp

@@ -23,11 +23,14 @@ uses
 
 type
    
+  { TLatexResultsWriter }
+
   TLatexResultsWriter = class(TCustomResultsWriter)
   private
     FDoc: TStringList;
     FSuiteHeaderIdx: TFPList;
     FTempFailure: TTestFailure;
+    function TimeFormat(ATiming: TDateTime): String;
   protected
     class function EscapeText(const S: string): String; virtual;
     procedure WriteTestHeader(ATest: TTest; ALevel: integer; ACount: integer); override;
@@ -53,6 +56,21 @@ function GetSuiteAsLatex(aSuite: TTestSuite): string;
 
 implementation
 
+uses dateutils;
+
+function TLatexResultsWriter.TimeFormat(ATiming: TDateTime): String;
+Var
+  M : Int64;
+
+begin
+  Result:='ss.zzz';
+  M:=MinutesBetween(ATiming,0);
+  if M>60 then
+    Result:='hh:mm:'+Result
+  else if M>1 then
+   Result:='mm:'+Result;
+end;
+
 class function TLatexResultsWriter.EscapeText(const S: string): String;
 var
   i: integer;
@@ -161,7 +179,7 @@ begin
   inherited;
   S:=StringOfChar(' ',ALevel*2)+ '  '+ '\item[-] ';
   if Not SkipTiming then
-    S:=S+FormatDateTime('ss.zzz', ATiming);
+    S:=S+FormatDateTime(TimeFormat(ATiming), ATiming);
   S:=S+ '  ' + EscapeText(ATest.TestName);
   FDoc.Add(S);
   if Assigned(FTempFailure) then