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.