xtool/contrib/mORMot/SQLite3/Samples/27 - CrossPlatform Clients/RegressionTests.dpr

79 lines
1.8 KiB
ObjectPascal

program RegressionTests;
{$i SynCrossPlatform.inc} // define e.g. HASINLINE
{$APPTYPE CONSOLE}
{$ifdef MSWINDOWS}
{$ifndef FPC} // under FPC, please run program RegressionTestsServer.dpr
{$define RUNSERVER}
{$endif}
{$endif}
{$ifdef ISDELPHI5OROLDER}
{$undef RUNSERVER} // mORMot.pas not available prior to Delphi 6
{$endif}
uses
{$I SynDprUses.inc} // use FastMM4 on older Delphi, or set FPC threads
SynCrossPlatformJSON,
SynCrossPlatformSpecific,
SynCrossPlatformREST,
SynCrossPlatformCrypto,
SynCrossPlatformTests,
{$ifdef RUNSERVER}
PeopleServer,
{$endif}
SysUtils;
var
TotalFailed: cardinal = 0;
procedure TestWithAuth(aAuth: SynCrossPlatformREST.TSQLRestServerAuthenticationClass);
begin
with TSynCrossPlatformClient.Create(aAuth) do
try
Ident := 'Cross Platform Client for mORMot';
if aAuth=nil then
Ident := Ident+' without authentication' else
Ident := Ident+' using '+string(aAuth.ClassName);
{$ifdef RUNSERVER}
try
if aAuth=TSQLRestServerAuthenticationDefault then
StartServer(psaDefault) else
if aAuth=TSQLRestServerAuthenticationNone then
StartServer(psaWeak) else
StartServer(psaNone);
{$endif}
Run(true);
inc(TotalFailed,Failed);
{$ifdef RUNSERVER}
finally
StopServer;
end;
{$endif}
finally
Free;
end;
end;
begin
with TSynCrossPlatformTests.Create('Cross Platform Units for mORMot') do
try
Run(true);
finally
Free;
end;
writeln;
{$ifdef RUNSERVER} // only last one should be tested for server-less FPC
TestWithAuth(nil);
TestWithAuth(TSQLRestServerAuthenticationNone);
{$endif}
TestWithAuth(TSQLRestServerAuthenticationDefault);
if TotalFailed>0 then
writeln(#10'Some tests failed... please fix it ASAP!');
write(#10'Press [Enter] to quit');
readln;
end.