mirror of
https://github.com/netdata-be/libnodave
synced 2025-10-13 00:42:50 +08:00
202 lines
4.6 KiB
ObjectPascal
Executable File
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.
|