From 7cf0861c0bd5f16d28ed157248fdddd3f9dfef63 Mon Sep 17 00:00:00 2001 From: vampirsoft Date: Sun, 1 Sep 2024 17:22:20 +0700 Subject: [PATCH] =?UTF-8?q?=D0=92=D1=8B=D0=BD=D0=B5=D1=81=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8F=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B2=20=D0=BE=D1=82=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9?= =?UTF-8?q?=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавление ALIGN и SCOPEDENUMS в общие настройки --- includes/Common.inc | 26 +++--- tests/includes/Common.Tests.inc | 4 - tests/includes/Utils4D.Tests.inc | 26 ++++++ tests/packages/utils4d.dpr | 65 +-------------- tests/packages/utils4d.dproj | 8 ++ tests/sources/DUnitXTestRunner.pas | 89 +++++++++++++++++++++ tests/sources/Utils.Arrays.Helper.Tests.pas | 2 +- tests/sources/Utils.ExtArray.Tests.pas | 2 +- 8 files changed, 142 insertions(+), 80 deletions(-) create mode 100644 tests/includes/Utils4D.Tests.inc create mode 100644 tests/sources/DUnitXTestRunner.pas diff --git a/includes/Common.inc b/includes/Common.inc index 2e9c97e..d41d22f 100644 --- a/includes/Common.inc +++ b/includes/Common.inc @@ -17,28 +17,30 @@ // КОД СЛЕДУЮЩИЙ НИЖЕ НЕ ПРЕДНАЗНАЧЕН ДЛЯ ИЗМЕНЕНИЯ ПРОГРАММИСТОМ И // СОДЕРЖИТ КРИТИЧЕСКИЕ НАСТРОЙКИ ДЛЯ БИБЛИОТЕКИ CryptoHash +{$ALIGN 8} // Record fields alignment +{$SCOPEDENUMS ON} // Use enum values only with enum type {$WRITEABLECONST OFF} // {$J-} {$OVERFLOWCHECKS OFF} // {$Q-} -{$RANGECHECKS OFF} // {$R-} -{$TYPEDADDRESS ON} // {$T+} -{$BOOLEVAL OFF} // {$B-} -{$SAFEDIVIDE OFF} // {$U-} +{$RANGECHECKS OFF} // {$R-} +{$TYPEDADDRESS ON} // {$T+} +{$BOOLEVAL OFF} // {$B-} +{$SAFEDIVIDE OFF} // {$U-} {$EXTENDEDSYNTAX ON} // {$X+} {$IF DEFINED(DEBUG)} - {$DEBUGINFO ON} // {$D+} + {$DEBUGINFO ON} // {$D+} {$LOCALSYMBOLS ON} // {$L+} {$OPTIMIZATION OFF} // {$O-} - {$ASSERTIONS ON} // {$C+} - {$STACKFRAMES ON} // {$W+} - {$INLINE OFF} + {$ASSERTIONS ON} // {$C+} + {$STACKFRAMES ON} // {$W+} + {$INLINE OFF} // inline methods are used as usual {$ELSE ~ NOT DEBUG} - {$DEBUGINFO OFF} // {$D-} + {$DEBUGINFO OFF} // {$D-} {$LOCALSYMBOLS OFF} // {$L-} {$OPTIMIZATION ON} // {$O+} - {$ASSERTIONS OFF} // {$C-} - {$STACKFRAMES OFF} // {$W-} - {$INLINE ON} + {$ASSERTIONS OFF} // {$C-} + {$STACKFRAMES OFF} // {$W-} + {$INLINE ON} // inline methods are built into the code as part of it {$ENDIF ~ DEBUG} {$ENDIF ~ COMMON_INC} diff --git a/tests/includes/Common.Tests.inc b/tests/includes/Common.Tests.inc index b4e8f23..d60e091 100644 --- a/tests/includes/Common.Tests.inc +++ b/tests/includes/Common.Tests.inc @@ -12,10 +12,6 @@ {$IF NOT DEFINED(COMMON_TESTS_INC)} {$DEFINE COMMON_TESTS_INC} -// Если используется QuickLib (https://github.com/exilon/QuickLib), -// необходимо включить эту опцию -//{$DEFINE USE_QUICK_LIB} - // Управление исполнителями тестов, включать можно только один одновременно. // Если ни один не включен, тесты будут исполняться в косольном режиме //{$DEFINE USE_VCL_TESTRUNNER} diff --git a/tests/includes/Utils4D.Tests.inc b/tests/includes/Utils4D.Tests.inc new file mode 100644 index 0000000..681c989 --- /dev/null +++ b/tests/includes/Utils4D.Tests.inc @@ -0,0 +1,26 @@ +///////////////////////////////////////////////////////////////////////////////// +//*****************************************************************************// +//* Project : localizations *// +//* Latest Source: https://github.com/vampirsoft/localizations *// +//* Unit Name : Utils4D.Tests.inc *// +//* Author : Сергей (LordVampir) Дворников *// +//* Copyright 2024 LordVampir (https://github.com/vampirsoft) *// +//* Licensed under MIT *// +//*****************************************************************************// +///////////////////////////////////////////////////////////////////////////////// + +{$IF NOT DEFINED(UTILS_4_D_TESTS_INC)} +{$DEFINE UTILS_4_D_TESTS_INC} + +// Если используется QuickLib (https://github.com/exilon/QuickLib), +// необходимо включить эту опцию +//{$DEFINE USE_QUICK_LIB} + +// ВНИМАНИЕ!!! +// ============================================================================= +// КОД СЛЕДУЮЩИЙ НИЖЕ НЕ ПРЕДНАЗНАЧЕН ДЛЯ ИЗМЕНЕНИЯ ПРОГРАММИСТОМ И +// СОДЕРЖИТ КРИТИЧЕСКИЕ НАСТРОЙКИ + +{$INCLUDE Common.Tests.inc} + +{$ENDIF ~ UTILS_4_D_TESTS_INC} diff --git a/tests/packages/utils4d.dpr b/tests/packages/utils4d.dpr index e411876..9129442 100644 --- a/tests/packages/utils4d.dpr +++ b/tests/packages/utils4d.dpr @@ -11,27 +11,14 @@ program utils4d; -{$INCLUDE Common.Tests.inc} +{$INCLUDE Utils4D.Tests.inc} {$IFDEF CONSOLE_TESTRUNNER} {$APPTYPE CONSOLE} {$ENDIF} uses - System.SysUtils, -{$IFDEF CONSOLE_TESTRUNNER} - DUnitX.Loggers.Console, - DUnitX.Loggers.Xml.NUnit, -{$ENDIF CONSOLE_TESTRUNNER} -{$IFDEF USE_VCL_TESTRUNNER} - Vcl.Forms, - DUnitX.Loggers.GUI.VCL, -{$ENDIF USE_VCL_TESTRUNNER} -{$IFDEF USE_MOBILE_TESTRUNNER} - FMX.Forms, - DUNitX.Loggers.MobileGUI, -{$ENDIF USE_MOBILE_TESTRUNNER} - DUnitX.TestFramework, + DUnitXTestRunner in '..\sources\DUnitXTestRunner.pas', Utils.ExtArray in '..\..\sources\Utils.ExtArray.pas', Utils.Arrays.Helper in '..\..\sources\Utils.Arrays.Helper.pas', Utils.ExtArray.Tests in '..\sources\Utils.ExtArray.Tests.pas', @@ -40,51 +27,5 @@ uses {$R *.RES} begin - ReportMemoryLeaksOnShutdown := True; -{$IFDEF CONSOLE_TESTRUNNER} - try - //Check command line options, will exit if invalid - TDUnitX.CheckCommandLine; - //Create the test runner - const Runner = TDUnitX.CreateRunner; - //Tell the runner to use RTTI to find Fixtures - Runner.UseRTTI := True; - //When true, Assertions must be made during tests; - Runner.FailsOnNoAsserts := False; - - //tell the runner how we will log things - //Log to the console window if desired - if TDUnitX.Options.ConsoleMode <> TDunitXConsoleMode.Off then - begin - const Logger = TDUnitXConsoleLogger.Create(TDUnitX.Options.ConsoleMode = TDunitXConsoleMode.Quiet); - Runner.AddLogger(Logger); - end; - //Generate an NUnit compatible XML File - const NUnitLogger = TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile); - Runner.AddLogger(NUnitLogger); - - //Run tests - const Results = Runner.Execute; - if not Results.AllPassed then - System.ExitCode := EXIT_ERRORS; - - //We don't want this happening when running under CI. - TDUnitX.Options.ExitBehavior := TDUnitXExitBehavior.Pause; - System.Write('Done... press key to quit.'); - System.Readln; - except - on E: Exception do - System.Writeln(E.ClassName, ': ', E.Message); - end; -{$ENDIF CONSOLE_TESTRUNNER} -{$IFDEF USE_VCL_TESTRUNNER} - Application.Initialize; - Application.CreateForm(TGUIVCLTestRunner, GUIVCLTestRunner); - Application.Run; -{$ENDIF USE_VCL_TESTRUNNER} -{$IFDEF USE_MOBILE_TESTRUNNER} - Application.Initialize; - Application.CreateForm(TMobileGUITestRunner, MobileGUITestRunner); - Application.Run; -{$ENDIF USE_MOBILE_TESTRUNNER} + RunRegisteredTests; end. diff --git a/tests/packages/utils4d.dproj b/tests/packages/utils4d.dproj index 4edab2a..7d848c0 100644 --- a/tests/packages/utils4d.dproj +++ b/tests/packages/utils4d.dproj @@ -182,11 +182,13 @@ MainSource + + Base @@ -247,6 +249,12 @@ true + + + .\ + true + + 1 diff --git a/tests/sources/DUnitXTestRunner.pas b/tests/sources/DUnitXTestRunner.pas new file mode 100644 index 0000000..7c5f2c4 --- /dev/null +++ b/tests/sources/DUnitXTestRunner.pas @@ -0,0 +1,89 @@ +///////////////////////////////////////////////////////////////////////////////// +//*****************************************************************************// +//* Project : utils4d *// +//* Latest Source: https://github.com/vampirsoft/utils4d *// +//* Unit Name : DUnitXTestRunner.pas *// +//* Author : Сергей (LordVampir) Дворников *// +//* Copyright 2024 LordVampir (https://github.com/vampirsoft) *// +//* Licensed under MIT *// +//*****************************************************************************// +///////////////////////////////////////////////////////////////////////////////// + +unit DUnitXTestRunner; + +{$INCLUDE Common.Tests.inc} + +interface + +procedure RunRegisteredTests; + +implementation + +uses + System.SysUtils, +{$IFDEF CONSOLE_TESTRUNNER} + DUnitX.Loggers.Console, + DUnitX.Loggers.Xml.NUnit, +{$ENDIF CONSOLE_TESTRUNNER} +{$IFDEF USE_VCL_TESTRUNNER} + Vcl.Forms, + DUnitX.Loggers.GUI.VCL, +{$ENDIF USE_VCL_TESTRUNNER} +{$IFDEF USE_MOBILE_TESTRUNNER} + FMX.Forms, + DUNitX.Loggers.MobileGUI, +{$ENDIF USE_MOBILE_TESTRUNNER} + DUnitX.TestFramework; + +procedure RunRegisteredTests; +begin + ReportMemoryLeaksOnShutdown := True; + +{$IFDEF CONSOLE_TESTRUNNER} + try + //Check command line options, will exit if invalid + TDUnitX.CheckCommandLine; + //Create the test runner + const Runner = TDUnitX.CreateRunner; + //Tell the runner to use RTTI to find Fixtures + Runner.UseRTTI := True; + //When true, Assertions must be made during tests; + Runner.FailsOnNoAsserts := False; + + //tell the runner how we will log things + //Log to the console window if desired + if TDUnitX.Options.ConsoleMode <> TDunitXConsoleMode.Off then + begin + const Logger = TDUnitXConsoleLogger.Create(TDUnitX.Options.ConsoleMode = TDunitXConsoleMode.Quiet); + Runner.AddLogger(Logger); + end; + //Generate an NUnit compatible XML File + const NUnitLogger = TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile); + Runner.AddLogger(NUnitLogger); + + //Run tests + const Results = Runner.Execute; + if not Results.AllPassed then System.ExitCode := EXIT_ERRORS; + + //We don't want this happening when running under CI. + TDUnitX.Options.ExitBehavior := TDUnitXExitBehavior.Pause; + System.Write('Done... press key to quit.'); + except + on E: Exception do + System.Writeln(E.ClassName, ': ', E.Message); + end; + System.Readln; +{$ENDIF CONSOLE_TESTRUNNER} +{$IFDEF USE_VCL_TESTRUNNER} + Application.Initialize; + Application.CreateForm(TGUIVCLTestRunner, GUIVCLTestRunner); + Application.Run; +{$ENDIF USE_VCL_TESTRUNNER} +{$IFDEF USE_MOBILE_TESTRUNNER} + Application.Initialize; + Application.CreateForm(TMobileGUITestRunner, MobileGUITestRunner); + Application.Run; +{$ENDIF USE_MOBILE_TESTRUNNER} +end; + +end. diff --git a/tests/sources/Utils.Arrays.Helper.Tests.pas b/tests/sources/Utils.Arrays.Helper.Tests.pas index a39d5ff..11b901d 100644 --- a/tests/sources/Utils.Arrays.Helper.Tests.pas +++ b/tests/sources/Utils.Arrays.Helper.Tests.pas @@ -11,7 +11,7 @@ unit Utils.Arrays.Helper.Tests; -{$INCLUDE Common.Tests.inc} +{$INCLUDE Utils4D.Tests.inc} interface diff --git a/tests/sources/Utils.ExtArray.Tests.pas b/tests/sources/Utils.ExtArray.Tests.pas index ba9940e..37050af 100644 --- a/tests/sources/Utils.ExtArray.Tests.pas +++ b/tests/sources/Utils.ExtArray.Tests.pas @@ -11,7 +11,7 @@ unit Utils.ExtArray.Tests; -{$INCLUDE Common.Tests.inc} +{$INCLUDE Utils4D.Tests.inc} interface