Graeme Geldenhuys schreef:
On 5/22/06, Florian Klaempfl <[EMAIL PROTECTED]> wrote:
> Should we convert existing tests to fpcunit ?

No, too much work, no real gain :)

Just curious...

I have never looked at the tests created in FPC, but how much work
(lines of code)  would it take to test something like the following
snippet of our tests we have. (very simple example)  If it isn't to
much work, the benefits will be huge as fpcUnit has a lot of
advantages. TestDecorator, Exception testing, XML output, etc...  As I
said, we use fpcUnit extensively.  Currently running at around 1500+
unit tests, testing database connections, string utils, threading,
etc...

In the example below tiUtils.tiDateTimeAsIntlDateDisp outputs dates in
the ISO international datetime format.  Most of our test are as easy
as this, 1 or 2 liners.  Not to mention fpcUnit give you results in
XML output which we convert to a html page via xslt to be viewer over
the web to see what the nightly build did.

procedure TTestTIUtils.tiDateTimeAsIntlDateDisp;
var
 dt: TDateTime;
begin
 dt := EncodeDate(2006, 1, 18) + EncodeTime(15, 19, 22, 0);
 CheckEquals('2006-01-18 15:19:22',
tiUtils.tiDateTimeAsIntlDateDisp(dt), 'Failed on 1');

 dt := EncodeDate(2002, 1, 02) + EncodeTime(12, 34, 56, 12);
 CheckEquals('2002-01-02 12:34:56',
tiUtils.tiDateTimeAsIntlDateDisp(dt), 'Failed on 2');

 dt := EncodeDate(2006, 1, 18);
 CheckEquals('2006-01-18 00:00:00',
tiUtils.tiDateTimeAsIntlDateDisp(dt), 'Failed on 3');

 dt := EncodeTime(9, 10, 41, 22);
 CheckEquals('0000-00-00 09:10:41',
tiUtils.tiDateTimeAsIntlDateDisp(dt), 'Failed on 4');

 dt := EncodeDateTime(1652, 6, 15, 12, 34, 56, 12);
 CheckEquals('1652-06-15 12:34:56',
tiUtils.tiDateTimeAsIntlDateDisp(dt), 'Failed on 5');

[....]
end;


In the current framework it would look like this:

program tiDateTimeAsIntlDateDisp;

uses
  tiUtils; // I am guessing it is a unit, but it could be an object too.

var
 dt: TDateTime;
begin

 dt := EncodeDate(2006, 1, 18) + EncodeTime(15, 19, 22, 0);
 if '2006-01-18 15:19:22'<>
   tiUtils.tiDateTimeAsIntlDateDisp(dt) then halt(1);

 dt := EncodeDate(2002, 1, 02) + EncodeTime(12, 34, 56, 12);
 if '2002-01-02 12:34:56' <> tiUtils.tiDateTimeAsIntlDateDisp(dt)
    then halt(2);

 dt := EncodeDate(2006, 1, 18);
 if '2006-01-18 00:00:00'<>tiUtils.tiDateTimeAsIntlDateDisp(dt)
   then halt(3);

 dt := EncodeTime(9, 10, 41, 22);
 if '0000-00-00 09:10:41'<>tiUtils.tiDateTimeAsIntlDateDisp(dt)
   then halt(4);

 dt := EncodeDateTime(1652, 6, 15, 12, 34, 56, 12);
 if '1652-06-15 12:34:56' <> tiUtils.tiDateTimeAsIntlDateDisp(dt)
   then halt(5);

[....]
end.

The results are gathered and published on:
http://www.freepascal.org/cgi-bin/testsuite.cgi

Vincent.


_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to