program fpcunitproject1;
// - basic tests for port from Delphi to FPC
{$mode objfpc}{$H+}
{$Define l3DisableDelphiMode}
{$Include l3Define.inc}
uses
l3IntfUses
{$IFDEF UNIX}
, cthreads
{$ENDIF}
, Interfaces // this includes the LCL widgetset
, l3ExceptionsLog
, fpcunit
, testregistry
, l3ExceptionsLogEx
, l3Logger
, l3Base
, l3ProtoObject
, l3SimpleObject
, utGUITestsRunner
, printer4lazarus
, fpvectorialpkg
, indylaz
, primtestcase1
, primtestcase2
, l3ScreenIC
, utBaseTest
, utOutputTest
, TestCase1
// ---------------------------------
, TestCases
// ---------------------------------
, UnicodeTestCases
// ---------------------------------
, utMSSTests
// - подключаем скрипты
// ---------------------------------
, tfwTypeModifier
, tfwScriptingInterfaces
, vcmInsiderTest
, CustomInsiderScripter
, Ik2TagReaderWordsPack
, Ik2TagWriterWordsPack
, Ik2TagGeneratorWordsPack
, evdNativeWriter
, ddRTFWriterRegister
, evdAllDocumentSubsEliminator
, evDocumentValidator
, ddHTMLWriter
, evdXMLWriter
//, ddHTMLWriter
, afwCustomCaretType
//, tfwScriptingInterfaces
, m3DBCheckRunner in '..\..\..\components\m3DBCheck\m3DBCheckRunner.pas'
;
{$R *.res}
begin
TutMSSTests.Register;
// - Регистрируем скриптовые тесты
TutGUITestsRunner.Run;
(*
[*
+-----------------------------------------------------------------------+
| fpcunitproject1 - ГЛАВНЫЙ ТЕСТОВЫЙ ПРОЕКТ FPC |
| ============================================= |
| |
| Назначение: портирование системы с Delphi на Free Pascal |
| Единая точка входа для всех тестов под FPC |
| (Windows и Linux) |
| |
+-----------------------------------------------------------------------+
+-----------------------------------------------------------------------+
| СТРУКТУРА ПРОЕКТА |
+-----------------------------------------------------------------------+
┌─────────────────────────────────────────────────────────────────────┐
│ fpcunitproject1.dpr │
├─────────────────────────────────────────────────────────────────────┤
│ {$mode objfpc}{$H+} // режим Object Pascal, длинные строки │
│ {$R *.res} // ресурсы │
└─────────────────────────────────────────────────────────────────────┘
│
v
┌─────────────────────────────────────────────────────────────────────┐
│ TutGUITestsRunner.Run │
│ (графический тестовый раннер) │
└─────────────────────────────────────────────────────────────────────┘
│
┌───────────────────────────┼───────────────────────────┐
v v v
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ СТАНДАРТНЫЕ │ │ СКРИПТОВЫЕ │ │ УТИЛИТЫ │
│ ТЕСТЫ │ │ ТЕСТЫ │ │ │
└─────────────┘ └─────────────┘ └─────────────┘
+-----------------------------------------------------------------------+
| СОСТАВ ПРОЕКТА (ПОДКЛЮЧЁННЫЕ МОДУЛИ) |
+-----------------------------------------------------------------------+
┌─────────────────────────────────────────────────────────────────────┐
│ 1. ФУНДАМЕНТ (L3) │
├─────────────────────────────────────────────────────────────────────┤
│ l3IntfUses // интерфейсы L3 │
│ l3ExceptionsLog // базовый логгер │
│ l3ExceptionsLogEx // логгер без автоперехвата │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ 2. ТЕСТОВЫЕ БАЗОВЫЕ КЛАССЫ │
├─────────────────────────────────────────────────────────────────────┤
│ utGUITestsRunner // графический раннер │
│ utBaseTest // базовый класс тестов │
│ utOutputTest // тесты с выводом │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ 3. СТАНДАРТНЫЕ ТЕСТЫ │
├─────────────────────────────────────────────────────────────────────┤
│ primtestcase1 // примитивные тесты (часть 1) │
│ primtestcase2 // примитивные тесты (часть 2) │
│ TestCase1 // тесты общего назначения │
│ TestCases // набор тестов │
│ UnicodeTestCases // тесты Unicode/кодировок │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ 4. СКРИПТОВЫЕ ТЕСТЫ │
├─────────────────────────────────────────────────────────────────────┤
│ DailyAutoTestFPC // регистрация автоматических скриптовых тестов│
│ │
│ tfwTypeModifier // модификаторы типов (скриптовый движок) │
│ tfwScriptingInterfaces // интерфейсы скриптов │
│ vcmInsiderTest // внутренние тесты VCM │
│ CustomInsiderScripter // кастомный скриптер │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ 5. K2 / EVD (МОДЕЛЬ ДАННЫХ) │
├─────────────────────────────────────────────────────────────────────┤
│ Ik2TagReaderWordsPack // чтение тегов │
│ Ik2TagWriterWordsPack // запись тегов │
│ Ik2TagGeneratorWordsPack // генерация тегов │
│ evdNativeWriter // запись EVD │
│ evdAllDocumentSubsEliminator // фильтр сабов │
│ evdXMLWriter // запись EVD в XML │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ 6. ЭКСПОРТ (RTF, HTML, DOCX) │
├─────────────────────────────────────────────────────────────────────┤
│ ddRTFWriterRegister // регистрация RTF-писателя │
│ ddHTMLWriter // HTML-писатель (закомментирован) │
│ evDocumentValidator // валидатор документов │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ 7. GUI-КОМПОНЕНТЫ │
├─────────────────────────────────────────────────────────────────────┤
│ afwCustomCaretType // каретка (текстовый курсор) │
│ printer4lazarus // печать (Lazarus) │
│ fpvectorialpkg // векторная графика (SVG, etc) │
│ indylaz // интернет-компоненты (Indy) │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ 8. УТИЛИТЫ │
├─────────────────────────────────────────────────────────────────────┤
│ m3DBCheckRunner // утилита проверки базы данных │
└─────────────────────────────────────────────────────────────────────┘
+-----------------------------------------------------------------------+
| ПОРЯДОК ЗАПУСКА |
+-----------------------------------------------------------------------+
1. Регистрация скриптовых тестов
│
v
RegisterDailyAutoTestsFPC;
│
│ (регистрирует тесты из .ms.script файлов)
│
v
2. Запуск графического раннера
│
v
TutGUITestsRunner.Run;
│
│ (отображает окно со списком всех зарегистрированных тестов)
│
v
3. Пользователь выбирает тесты и запускает их
│
v
4. Тесты выполняются, результаты отображаются в GUI
+-----------------------------------------------------------------------+
| КЛЮЧЕВЫЕ ОСОБЕННОСТИ |
+-----------------------------------------------------------------------+
┌─────────────────────────────────────────────────────────────────────┐
│ 1. КРОССПЛАТФОРМЕННОСТЬ │
│ - {$IFDEF UNIX} cthreads {$ENDIF} // поддержка потоков в Linux │
│ - режим objfpc (Object Pascal) для совместимости с Delphi │
│ - длинные строки {$H+} для AnsiString │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ 2. ИНТЕГРАЦИЯ СКРИПТОВ │
│ - скриптовые тесты регистрируются через RegisterDailyAutoTestsFPC│
│ - скриптовый движок (tfw) подключен │
│ - vcmInsiderTest, CustomInsiderScripter для внутренних тестов │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ 3. ПОЛНЫЙ ОХВАТ │
│ - L3 (фундамент) │
│ - K2/evd (модель данных) │
│ - Экспорт (RTF, HTML) │
│ - GUI-компоненты (afw, printer, fpvectorial) │
│ - Утилиты (m3DBCheck) │
└─────────────────────────────────────────────────────────────────────┘
+-----------------------------------------------------------------------+
| ЗАДАЧА |
+-----------------------------------------------------------------------+
| |
| Этот проект доказывает, что портирование системы с Delphi на FPC |
| успешно завершено. Все ключевые компоненты: |
| - L3 (логирование, ссылочная модель) |
| - K2 (модель данных) |
| - Эверест (редактор) |
| - m3 (индексы, хранилище) |
| - Экспорт (RTF, HTML, PDF) |
| - Скрипты (tfw) |
| |
| работают как под Windows, так и под Linux. |
| |
| Запуск этого проекта — финальная проверка перед релизом. |
| |
+-----------------------------------------------------------------------+
*]
*)
end.
Комментариев нет:
Отправить комментарий