1
0
mirror of https://github.com/netdata-be/libnodave synced 2025-10-13 00:42:50 +08:00
libnodave/pascal/tests.pas
2012-06-01 10:15:12 +02:00

202 lines
4.6 KiB
ObjectPascal
Executable File

unit tests;
interface
uses nodave
{$ifdef WIN32}
, windows
{$endif}
{$ifdef LINUX}
,oldlinux
{$define UNIX_STYLE}
{$endif}
;
procedure readBench(dc:pdaveConnection);
procedure writeBench(dc:pdaveConnection);
procedure wait;
implementation
procedure wait;
begin
writeln('Press return to continue.');
readln;
end;
var
{$ifdef UNIX_STYLE}
t1,t2:timeval;
{$endif}
{$ifdef WIN32}
t1, t2:longint;
{$endif}
usec:double;
procedure readBench(dc:pdaveConnection);
var seconds, thirds, res: longint;
i:integer;
p:PDU;
begin
seconds:=0;thirds:=0;
writeln('Now going to do read benchmark with minimum block length of 1.');
wait;
writeln('running...');
{$ifdef UNIX_STYLE}
gettimeofday(t1);
{$endif}
{$ifdef WIN32}
t1:=getTickCount();
{$endif}
for i:=0 to 99 do begin
daveReadBytes(dc,daveFlags,0,0,1,nil);
if (i mod 10)=0 then begin
write('...',i);
(* fflush(stdout); *)
end;
end;
writeln;
{$ifdef UNIX_STYLE}
gettimeofday(t2);
usec := 1e6 * (t2.sec - t1.sec) + t2.usec - t1.usec;
usec:=usec/1e6;
{$endif}
{$ifdef WIN32 }
t2:=getTickCount();
usec := 0.001*(t2 - t1);
{$endif}
writeln('100 reads ',usec,' seconds. tried repeats: 2nd:',seconds,' 3rds:',thirds);
seconds:=0;thirds:=0;
writeln('Now going to do read benchmark with shurely supported block length 16.');
wait();
writeln('running...');
{$ifdef UNIX_STYLE}
gettimeofday(t1);
{$endif}
{$ifdef WIN32}
t1:=getTickCount();
{$endif}
for i:=0 to 99 do begin
daveReadBytes(dc,daveFlags,0,0,16,nil);
if (i mod 10)=0 then begin
write('...',i);
{ fflush(stdout);}
end;
end;
writeln('');
{$ifdef UNIX_STYLE }
gettimeofday(t2);
usec := 1e6 * (t2.sec - t1.sec) + t2.usec - t1.usec;
usec :=usec/1e6;
{$endif}
{$ifdef WIN32 }
t2:=getTickCount();
usec := 0.001*(t2 - t1);
{$endif}
writeln('100 reads ',usec,' seconds. tried repeats: 2nd:',seconds,' 3rds:',thirds);
seconds:=0;thirds:=0;
writeln('Now going to do read benchmark with 4 variables in a single request.');
wait;
writeln('running...');
{$ifdef UNIX_STYLE}
gettimeofday(t1);
{$endif}
{$ifdef WIN32}
t1:=getTickCount();
{$endif}
for i:=0 to 99 do begin
davePrepareReadRequest(dc, @p);
daveAddVarToReadRequest(@p,daveInputs,0,0,1);
daveAddVarToReadRequest(@p,daveFlags,0,0,1);
daveAddVarToReadRequest(@p,daveFlags,0,10,1);
daveAddVarToReadRequest(@p,daveFlags,0,20,1);
res:=daveExecReadRequest(dc, @p, nil);
if (i mod 10)=0 then begin
writeln('...',i);
{ fflush(stdout); }
end;
end;
writeln('');
{$ifdef UNIX_STYLE}
gettimeofday(t2);
usec := 1e6 * (t2.sec - t1.sec) + t2.usec - t1.usec;
usec :=usec/1e6;
{$endif}
{$ifdef WIN32 }
t2:=getTickCount();
usec := 0.001*(t2 - t1);
{$endif}
writeln('100 reads took %g secs. tried repeats: 2nd:%d 3rd%d',usec,seconds,thirds);
end;
procedure writeBench(dc:pdaveConnection);
var seconds, thirds, res, c: longint;
i:integer;
p:PDU;
begin
seconds:=0;thirds:=0;
writeln('Now going to do write benchmark with minimum block length of 1.');
wait();
writeln('running...');
{$ifdef UNIX_STYLE }
gettimeofday(t1);
{$endif}
{$ifdef WIN32 }
t1:=getTickCount();
{$endif}
for i:=0 to 99 do begin
daveWriteBytes(dc,daveFlags,0,0,1,@c);
if (i mod 10)=0 then begin
writeln('...',i);
{fflush(stdout); }
end;
end;
writeln('');
{$ifdef UNIX_STYLE }
gettimeofday(t2);
usec := 1e6 * (t2.sec - t1.sec) + t2.usec - t1.usec;
usec :=usec/1e6;
{$endif}
{$ifdef WIN32 }
t2:=getTickCount();
usec := 0.001*(t2 - t1);
{$endif}
writeln('100 writes took ',usec,' seconds. tried repeats: 2nd:',seconds,' 3rds:',thirds);
seconds:=0;thirds:=0;
writeln('Now going to do write benchmark with always supported block length 16.');
wait;
writeln('running...');
{$ifdef UNIX_STYLE }
gettimeofday(t1);
{$endif}
{$ifdef WIN32}
t1:=getTickCount();
{$endif}
for i:=0 to 99 do begin
daveWriteBytes(dc,daveFlags,0,0,16,@c);
if (i mod 10)=0 then begin
writeln('...',i);
{ fflush(stdout); }
end;
end;
writeln('');
{$ifdef UNIX_STYLE }
gettimeofday(t2);
usec := 1e6 * (t2.sec - t1.sec) + t2.usec - t1.usec;
usec :=usec/1e6;
{$endif}
{$ifdef WIN32 }
t2:=getTickCount();
usec := 0.001*(t2 - t1);
{$endif}
writeln('100 writes took ',usec,' seconds. tried repeats: 2nd:',seconds,' 3rds:',thirds);
wait;
end;
end.