79 lines
1.8 KiB
ObjectPascal
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.
|
|
|