From ab9c216c4918e7c119675cb147367b6a44a569ef Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Thu, 29 May 2025 01:05:39 +0300 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20=D0=97=D0=B0=D0=BF=D1=83=D1=81?= =?UTF-8?q?=D0=BA=20=D0=B1=D0=B5=D0=BD=D1=87=D0=BC=D0=B0=D1=80=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=B8=D0=B7=20=D0=BA=D0=B0=D1=82=D0=B0=D0=BB=D0=BE?= =?UTF-8?q?=D0=B3=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\277\321\203\321\201\320\272\320\260.os" | 35 +++++-- ...20\260\320\273\320\276\320\263\320\260.os" | 87 +++++++++++++++++ ...20\260\321\200\320\272\320\276\320\262.os" | 2 +- ...21\200\320\272\320\270\320\275\320\263.os" | 93 ++++++++++++++++++- ...20\260\321\200\320\272\320\276\320\262.os" | 0 ...21\210\320\270\320\261\320\272\320\270.os" | 9 ++ ...20\270\320\261\320\272\320\276\320\271.os" | 10 ++ ...0\260\320\273\320\276\320\263\320\2601.os" | 9 ++ ...0\260\320\273\320\276\320\263\320\2602.os" | 9 ++ ...20\260\320\273\320\276\320\263\320\260.os" | 9 ++ ...20\260\321\200\320\272\320\276\320\262.os" | 68 ++++++++++++++ 11 files changed, 322 insertions(+), 9 deletions(-) create mode 100644 "src/BenchmarkOneScript/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\214\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" create mode 100644 "tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\221\320\265\320\267\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" create mode 100644 "tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\241\320\236\321\210\320\270\320\261\320\272\320\276\320\271/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\221\320\265\320\267\320\236\321\210\320\270\320\261\320\272\320\270.os" create mode 100644 "tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\241\320\236\321\210\320\270\320\261\320\272\320\276\320\271/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\241\320\236\321\210\320\270\320\261\320\272\320\276\320\271.os" create mode 100644 "tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\247\320\265\321\200\320\265\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\2601.os" create mode 100644 "tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\247\320\265\321\200\320\265\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\2602.os" create mode 100644 "tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\247\320\265\321\200\320\265\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263/\320\222\320\273\320\276\320\266\320\265\320\275\320\275\321\213\320\271 \320\272\320\260\321\202\320\260\320\273\320\276\320\263/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\230\320\267\320\222\320\273\320\276\320\266\320\265\320\275\320\275\320\276\320\263\320\276\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" diff --git "a/src/BenchmarkOneScript/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\320\272\320\260.os" "b/src/BenchmarkOneScript/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\320\272\320\260.os" index 54a33ba..73d596e 100644 --- "a/src/BenchmarkOneScript/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\320\272\320\260.os" +++ "b/src/BenchmarkOneScript/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\320\272\320\260.os" @@ -1,21 +1,42 @@ +// BSLLS:MissingVariablesDescription-off + #Использовать "../../../../" +#Использовать fs +#Использовать logos + +&Опция(Имя = "r recursive", Описание = "Искать бенчмарки во вложенных каталогах") +&Флаг +&ПоУмолчанию(Ложь) +Перем Рекурсивно; -&Аргумент(Имя = "FILE", Описание = "Имя файла класса бенчмарков в текущем каталоге, либо полный путь к нему") +&Аргумент(Имя = "FILE", Описание = "Каталог, полный путь к файлу или имя файла в текущей директории") &ТСтрока Перем ПутьКФайлу; +Перем _Лог; + &КомандаПриложения(Имя = "run", Описание = "Запускает бенчмарки") Процедура ПриСозданииОбъекта() КонецПроцедуры &ВыполнениеКоманды Процедура Запустить() Экспорт - + + Если ФС.КаталогСуществует(ПутьКФайлу) Тогда + Бенчмаркинг.ЗапуститьИзКаталога(ПутьКФайлу, Рекурсивно); + Возврат; + КонецЕсли; + Файл = ФайлКласса(); - ИмяКласса = Файл.ИмяБезРасширения; - ПодключитьСценарий(Файл.ПолноеИмя, ИмяКласса); + Если Файл = Неопределено Тогда + _Лог.Ошибка("Файл <%1> не существует", ПутьКФайлу); + Возврат; + КонецЕсли; - Бенчмаркинг.Запустить(Тип(ИмяКласса)); + Тип = Бенчмаркинг.ПодключитьКласс(Файл.ПолноеИмя); + Если Не Тип = Неопределено Тогда + Бенчмаркинг.Запустить(Тип); + КонецЕсли; КонецПроцедуры @@ -33,6 +54,6 @@ КонецЕсли; КонецЦикла; - ВызватьИсключение СтрШаблон("Файл '%1' не существует", ПутьКФайлу); +КонецФункции -КонецФункции \ No newline at end of file +_Лог = Логирование.ПолучитьЛог("oscript.lib.benchmark.cli"); \ No newline at end of file diff --git "a/src/BenchmarkOneScript/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\214\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" "b/src/BenchmarkOneScript/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\214\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" new file mode 100644 index 0000000..edfb50b --- /dev/null +++ "b/src/BenchmarkOneScript/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\214\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" @@ -0,0 +1,87 @@ +#Использовать logos + +Перем _Лог; // Лог +Перем _Каталог; // Строка +Перем _ИскатьВПодкаталогах; // Булево + +// Запускает бенчмарки из каталога +// +// Параметры: +// Каталог - Строка - Путь к каталогу +// ИскатьВПодкаталогах - Булево - Искать в подкаталогах +Процедура ПриСозданииОбъекта(Каталог, ИскатьВПодкаталогах = Ложь) + _Каталог = Каталог; + _ИскатьВПодкаталогах = ИскатьВПодкаталогах; + _Лог = Логирование.ПолучитьЛог("oscript.lib.benchmark.ЗапускательБенчмарковИзКаталога"); +КонецПроцедуры + +#Область ПрограммныйИнтерфейс + +// Запускает бенчмарки из каталога +// +// Возвращаемое значение: +// ТаблицаЗначений: +// * Результат - см. Бенчмаркинг.Запустить, Неопределено +// * ИмяКласса - Строка - Имя класса +// * ИмяФайла - Строка - Имя файла +// * ПутьКФайлу - Строка - Путь к файлу сценария +// * Успешно - Булево - Запуск бенчмарков выполнен успешно +Функция Запустить() Экспорт + + Результат = ТаблицаРезультата(); + + _Лог.Отладка("Запуск бенчмарков из каталога <%1>", _Каталог); + + Файлы = НайтиФайлы(_Каталог, "*.os", _ИскатьВПодкаталогах); + Если Файлы.Количество() = 0 Тогда + _Лог.Предупреждение("Отсутствуют файлы скриптов (.os) в каталоге <%1>", _Каталог); + Возврат Результат; + КонецЕсли; + + Для Каждого Файл Из Файлы Цикл + + Объект = Бенчмаркинг.ПодключитьКласс(Файл.ПолноеИмя); + Если Объект = Неопределено Тогда + Продолжить; + КонецЕсли; + + СтрокаРезультата = Результат.Добавить(); + СтрокаРезультата.ИмяКласса = Строка(Тип(Объект)); + СтрокаРезультата.ПутьКФайлу = Файл.ПолноеИмя; + СтрокаРезультата.ИмяФайла = Файл.ИмяБезРасширения; + СтрокаРезультата.Результат = Неопределено; + СтрокаРезультата.Успешно = Истина; + + Попытка + СтрокаРезультата.Результат = Бенчмаркинг.Запустить(Объект); + Исключение + СтрокаРезультата.Успешно = Ложь; + _Лог.Ошибка("Возникла ошибка при запуске бенчмарков класса <%1>: %2", + СтрокаРезультата.ИмяКласса, + ОписаниеОшибки()); + КонецПопытки; + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ТаблицаРезультата() + + Таблица = Новый ТаблицаЗначений(); + Таблица.Колонки.Добавить("ИмяКласса"); + Таблица.Колонки.Добавить("ПутьКФайлу"); + Таблица.Колонки.Добавить("ИмяФайла"); + Таблица.Колонки.Добавить("Результат"); + Таблица.Колонки.Добавить("Успешно"); + + Возврат Таблица; + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git "a/src/BenchmarkOneScript/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\321\217\320\224\320\265\321\201\320\272\321\200\320\270\320\277\321\202\320\276\321\200\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/src/BenchmarkOneScript/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\321\217\320\224\320\265\321\201\320\272\321\200\320\270\320\277\321\202\320\276\321\200\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 6dd8488..563e3ce 100644 --- "a/src/BenchmarkOneScript/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\321\217\320\224\320\265\321\201\320\272\321\200\320\270\320\277\321\202\320\276\321\200\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/src/BenchmarkOneScript/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\321\217\320\224\320\265\321\201\320\272\321\200\320\270\320\277\321\202\320\276\321\200\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,6 +1,6 @@ #Использовать fluent -Перем _ДескрипторыБенчмарков; +Перем _ДескрипторыБенчмарков; // Массив из ДескрипторБенчмарка // Коллекция дескрипторов бенчмарков // diff --git "a/src/BenchmarkOneScript/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\275\320\263.os" "b/src/BenchmarkOneScript/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\275\320\263.os" index 058f0a6..ad8b5d1 100644 --- "a/src/BenchmarkOneScript/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\275\320\263.os" +++ "b/src/BenchmarkOneScript/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\275\320\263.os" @@ -1,3 +1,10 @@ +#Использовать logos + +Перем _Лог; // Лог +Перем _РегуляркаПодготовкиИмениКласса; // РегулярноеВыражение + +#Область ПрограммныйИнтерфейс + // Запускает бенчмарки // // Параметры: @@ -32,4 +39,88 @@ ЗапускательБенчмарков = Новый ЗапускательБенчмарков(Источник, Конфигурация); Возврат ЗапускательБенчмарков.Запустить(); -КонецФункции \ No newline at end of file +КонецФункции + +// Запускает бенчмарки из каталога +// +// Параметры: +// Каталог - Строка - Путь к каталогу +// ИскатьВПодкаталогах - Булево - Искать в подкаталогах +// +// Возвращаемое значение: +// ТаблицаЗначений: +// * Результат - см. Бенчмаркинг.Запустить, Неопределено +// * ИмяКласса - Строка - Имя класса +// * ИмяФайла - Строка - Имя файла +// * ПутьКФайлу - Строка - Путь к файлу сценария +// * Успешно - Булево - Запуск бенчмарков выполнен успешно +Функция ЗапуститьИзКаталога(Каталог, ИскатьВПодкаталогах = Ложь) Экспорт + + ЗапускательБенчмарковИзКаталога = Новый ЗапускательБенчмарковИзКаталога(Каталог, ИскатьВПодкаталогах); + Возврат ЗапускательБенчмарковИзКаталога.Запустить(); + +КонецФункции + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +// Подключает класс бенчмарков +// +// Параметры: +// ПутьКФайлу - Строка - Путь к файлу класса бенчмарков +// +// Возвращаемое значение: +// Произвольный, Неопределено +Функция ПодключитьКласс(ПутьКФайлу) Экспорт + + Объект = Неопределено; + ИмяКласса = ИмяКлассаИзСтроки(Новый Файл(ПутьКФайлу).ИмяБезРасширения); + + Если СценарийПодключенПоИмени(ИмяКласса) Тогда + ИмяКласса = ИмяКласса + "_" + СтрЗаменить(Новый УникальныйИдентификатор(), "-", ""); + КонецЕсли; + + Попытка + ПодключитьСценарий(ПутьКФайлу, ИмяКласса); + Объект = Новый(ИмяКласса); + Исключение + _Лог.Ошибка("Не удалось подключить сценарий бенчмарков <%1> по причине: %2", ПутьКФайлу, ОписаниеОшибки()); + Возврат Неопределено; + КонецПопытки; + + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Объект); + Если ДескрипторыБенчмарков.Количество() = 0 Тогда + _Лог.Предупреждение("Класс <%1> не содержит бенчмарков", ИмяКласса); + Возврат Неопределено; + КонецЕсли; + + _Лог.Отладка("Найдено бенчмарков в классе <%1>: %2 шт.", ИмяКласса, ДескрипторыБенчмарков.Количество()); + + Возврат Объект; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ИмяКлассаИзСтроки(Строка) + Если _РегуляркаПодготовкиИмениКласса = Неопределено Тогда + _РегуляркаПодготовкиИмениКласса = Новый РегулярноеВыражение("[^a-zA-Zа-яА-Я0-9_]"); + КонецЕсли; + Возврат _РегуляркаПодготовкиИмениКласса.Заменить(Строка, ""); +КонецФункции + +Функция СценарийПодключенПоИмени(ИмяСценария) + Попытка + Объект = Новый(ИмяСценария); + Возврат Истина; + Исключение + Возврат Ложь; + КонецПопытки; +КонецФункции + +#КонецОбласти + +_Лог = Логирование.ПолучитьЛог("oscript.lib.benchmark.Бенчмаркинг"); \ No newline at end of file diff --git "a/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\221\320\265\320\267\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\221\320\265\320\267\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" new file mode 100644 index 0000000..e69de29 diff --git "a/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\241\320\236\321\210\320\270\320\261\320\272\320\276\320\271/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\221\320\265\320\267\320\236\321\210\320\270\320\261\320\272\320\270.os" "b/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\241\320\236\321\210\320\270\320\261\320\272\320\276\320\271/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\221\320\265\320\267\320\236\321\210\320\270\320\261\320\272\320\270.os" new file mode 100644 index 0000000..42cebdb --- /dev/null +++ "b/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\241\320\236\321\210\320\270\320\261\320\272\320\276\320\271/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\221\320\265\320\267\320\236\321\210\320\270\320\261\320\272\320\270.os" @@ -0,0 +1,9 @@ +&СтратегияХолодныйЗапуск +&КоличествоИтераций(1) +&КоличествоВызововЗаИтерацию(1) +Процедура ПриСозданииОбъекта() +КонецПроцедуры + +&Бенчмарк +Процедура Бенчмарк() Экспорт +КонецПроцедуры \ No newline at end of file diff --git "a/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\241\320\236\321\210\320\270\320\261\320\272\320\276\320\271/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\241\320\236\321\210\320\270\320\261\320\272\320\276\320\271.os" "b/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\241\320\236\321\210\320\270\320\261\320\272\320\276\320\271/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\241\320\236\321\210\320\270\320\261\320\272\320\276\320\271.os" new file mode 100644 index 0000000..dcb5b5f --- /dev/null +++ "b/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\241\320\236\321\210\320\270\320\261\320\272\320\276\320\271/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\241\320\236\321\210\320\270\320\261\320\272\320\276\320\271.os" @@ -0,0 +1,10 @@ +&СтратегияХолодныйЗапуск +&КоличествоИтераций(1) +&КоличествоВызововЗаИтерацию(1) +Процедура ПриСозданииОбъекта() +КонецПроцедуры + +&Бенчмарк +Процедура Бенчмарк() Экспорт + ВызватьИсключение "Ошибка"; +КонецПроцедуры \ No newline at end of file diff --git "a/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\247\320\265\321\200\320\265\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\2601.os" "b/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\247\320\265\321\200\320\265\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\2601.os" new file mode 100644 index 0000000..42cebdb --- /dev/null +++ "b/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\247\320\265\321\200\320\265\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\2601.os" @@ -0,0 +1,9 @@ +&СтратегияХолодныйЗапуск +&КоличествоИтераций(1) +&КоличествоВызововЗаИтерацию(1) +Процедура ПриСозданииОбъекта() +КонецПроцедуры + +&Бенчмарк +Процедура Бенчмарк() Экспорт +КонецПроцедуры \ No newline at end of file diff --git "a/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\247\320\265\321\200\320\265\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\2602.os" "b/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\247\320\265\321\200\320\265\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\2602.os" new file mode 100644 index 0000000..42cebdb --- /dev/null +++ "b/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\247\320\265\321\200\320\265\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\2602.os" @@ -0,0 +1,9 @@ +&СтратегияХолодныйЗапуск +&КоличествоИтераций(1) +&КоличествоВызововЗаИтерацию(1) +Процедура ПриСозданииОбъекта() +КонецПроцедуры + +&Бенчмарк +Процедура Бенчмарк() Экспорт +КонецПроцедуры \ No newline at end of file diff --git "a/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\247\320\265\321\200\320\265\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263/\320\222\320\273\320\276\320\266\320\265\320\275\320\275\321\213\320\271 \320\272\320\260\321\202\320\260\320\273\320\276\320\263/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\230\320\267\320\222\320\273\320\276\320\266\320\265\320\275\320\275\320\276\320\263\320\276\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" "b/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\247\320\265\321\200\320\265\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263/\320\222\320\273\320\276\320\266\320\265\320\275\320\275\321\213\320\271 \320\272\320\260\321\202\320\260\320\273\320\276\320\263/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\230\320\267\320\222\320\273\320\276\320\266\320\265\320\275\320\275\320\276\320\263\320\276\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" new file mode 100644 index 0000000..42cebdb --- /dev/null +++ "b/tests/fixtures/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\247\320\265\321\200\320\265\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263/\320\222\320\273\320\276\320\266\320\265\320\275\320\275\321\213\320\271 \320\272\320\260\321\202\320\260\320\273\320\276\320\263/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\230\320\267\320\222\320\273\320\276\320\266\320\265\320\275\320\275\320\276\320\263\320\276\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" @@ -0,0 +1,9 @@ +&СтратегияХолодныйЗапуск +&КоличествоИтераций(1) +&КоличествоВызововЗаИтерацию(1) +Процедура ПриСозданииОбъекта() +КонецПроцедуры + +&Бенчмарк +Процедура Бенчмарк() Экспорт +КонецПроцедуры \ No newline at end of file diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 49e5a19..02e936d 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -16,6 +16,74 @@ КонецПроцедуры +&Тест +Процедура Тест_ЗапускБенчмарковИзКаталога() Экспорт + + Каталог = "./tests/fixtures/Классы/БенчмаркиЧерезКаталог"; + Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог); + + Ожидаем.Что(Результат).ИмеетДлину(2); + Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога1", "ИмяФайла")).Заполнено(); + Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога2", "ИмяФайла")).Заполнено(); + +КонецПроцедуры + +&Тест +Процедура Тест_ЗапускБенчмарковИзКаталогаРекурсивно() Экспорт + + Каталог = "./tests/fixtures/Классы/БенчмаркиЧерезКаталог"; + Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог, Истина); + + Ожидаем.Что(Результат).ИмеетДлину(3); + Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога1", "ИмяФайла")).Заполнено(); + Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога2", "ИмяФайла")).Заполнено(); + Ожидаем.Что(Результат.Найти("БенчмаркИзВложенногоКаталога", "ИмяФайла")).Заполнено(); + +КонецПроцедуры + +&Тест +Процедура Тест_ЗапускБенчмарковИзНесуществующегоКаталога() Экспорт + + Каталог = "./tests/fixtures/Классы/НесуществуюущийКаталог"; + Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог); + + Ожидаем.Что(Результат).ИмеетДлину(0); + +КонецПроцедуры + +&Тест +Процедура Тест_ЗапускБенчмарковСОшибкой() Экспорт + + Каталог = "./tests/fixtures/Классы/БенчмаркиСОшибкой"; + Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог); + + Ожидаем.Что(Результат).ИмеетДлину(2); + Ожидаем.Что(Результат.Найти(Истина, "Успешно")).Заполнено(); + Ожидаем.Что(Результат.Найти(Ложь, "Успешно")).Заполнено(); + +КонецПроцедуры + +&Тест +Процедура Тест_ПодключениеКлассаБенчмарков() Экспорт + + ПутьКФайлу = "./tests/fixtures/Классы/БенчмаркНесуществующий.os"; + Объект = Бенчмаркинг.ПодключитьКласс(ПутьКФайлу); + + Ожидаем.Что(Объект).ЭтоНеопределено(); + +КонецПроцедуры + +&Тест +Процедура Тест_ПодключениеКлассаБенчмарковБезБенчмарков() Экспорт + + ПутьКФайлу = "./tests/fixtures/Классы/БенчмаркБезБенчмарков.os"; + Объект = Бенчмаркинг.ПодключитьКласс(ПутьКФайлу); + + Ожидаем.Что(Объект).ЭтоНеопределено(); + +КонецПроцедуры + + &Тест Процедура Тест_ЗапретЗапускаСРазнымиТипамиОбъектов() Экспорт From a9bb201a6b78892e72976119e4df9db9f1d9e146 Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Thu, 29 May 2025 01:18:49 +0300 Subject: [PATCH 2/5] =?UTF-8?q?docs:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=B1=D0=B5=D0=BD=D1=87=D0=BC=D0=B0=D1=80=D0=BA=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=B8=D0=B7=20=D0=BA=D0=B0=D1=82=D0=B0=D0=BB=D0=BE=D0=B3?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ ...1\320\241\321\202\320\260\321\200\321\202.md" | 2 ++ ...4\320\260\321\200\320\272\320\276\320\262.md" | 16 ++++++++++++++++ ...2\320\260\320\273\320\276\320\263\320\260.os" | 5 +++++ 4 files changed, 25 insertions(+) create mode 100644 "samples/api/\320\227\320\260\320\277\321\203\321\201\320\272\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" diff --git a/README.md b/README.md index cc9af78..aa4b73b 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,8 @@ benchos run [FILE] Результат = Бенчмаркинг.Запустить(Тип("КонкатенацияСтрок")); ``` +Более подробно можно почитать в [документации](docs/ЗапускБенчмарков.md). + ## 4. Просмотр результатов После завершения тестов в консоли будет отображена подробная сводная таблица, оформленная в формате Markdown: diff --git "a/docs/\320\221\321\213\321\201\321\202\321\200\321\213\320\271\320\241\321\202\320\260\321\200\321\202.md" "b/docs/\320\221\321\213\321\201\321\202\321\200\321\213\320\271\320\241\321\202\320\260\321\200\321\202.md" index 31c1052..6b74cba 100644 --- "a/docs/\320\221\321\213\321\201\321\202\321\200\321\213\320\271\320\241\321\202\320\260\321\200\321\202.md" +++ "b/docs/\320\221\321\213\321\201\321\202\321\200\321\213\320\271\320\241\321\202\320\260\321\200\321\202.md" @@ -63,6 +63,8 @@ benchos run [FILE] Результат = Бенчмаркинг.Запустить(Тип("КонкатенацияСтрок")); ``` +Более подробно можно почитать в [документации](ЗапускБенчмарков.md). + ## 4. Просмотр результатов После завершения тестов в консоли будет отображена подробная сводная таблица, оформленная в формате Markdown: diff --git "a/docs/\320\227\320\260\320\277\321\203\321\201\320\272\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.md" "b/docs/\320\227\320\260\320\277\321\203\321\201\320\272\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.md" index d7a5b14..936381d 100644 --- "a/docs/\320\227\320\260\320\277\321\203\321\201\320\272\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.md" +++ "b/docs/\320\227\320\260\320\277\321\203\321\201\320\272\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.md" @@ -19,6 +19,12 @@ benchos run МойКласс.os # Запуск по абсолютному пути benchos run /path/to/МойКласс.os + +# Запуск из каталога +benchos run /path/to/benchmarks + +# Запуск из каталога, включая вложенные каталоги +benchos run -r /path/to/benchmarks ``` ## API @@ -47,6 +53,16 @@ benchos run /path/to/МойКласс.os Результат = Бенчмаркинг.Запустить(ДескрипторыБенчмарков); ``` +### Запуск бенчмарков из каталога + +```bsl +// Запуск из каталога +Результат = Бенчмаркинг.ЗапуститьИзКаталога("/path/to/benchmarks"); + +// Запуск из каталога, включая вложенные каталоги +Результат = Бенчмаркинг.ЗапуститьИзКаталога("/path/to/benchmarks", Истина); +``` + ### Передача конфигурации ```bsl diff --git "a/samples/api/\320\227\320\260\320\277\321\203\321\201\320\272\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" "b/samples/api/\320\227\320\260\320\277\321\203\321\201\320\272\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" new file mode 100644 index 0000000..9a913d0 --- /dev/null +++ "b/samples/api/\320\227\320\260\320\277\321\203\321\201\320\272\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" @@ -0,0 +1,5 @@ +#Использовать benchmark + +Каталог = ОбъединитьПути(ТекущийСценарий().Каталог, "../benchmarks/Классы"); + +Бенчмаркинг.ЗапуститьИзКаталога(Каталог); \ No newline at end of file From efeb78c445754c6b665622ac17f529e36e48ade7 Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Thu, 29 May 2025 01:24:57 +0300 Subject: [PATCH 3/5] =?UTF-8?q?style:=20=D0=98=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20code=20style?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bsl-language-server.json | 2 +- ...320\260\321\200\320\272\320\270\320\275\320\263.os" | 10 +++++----- ...320\274\320\260\321\200\320\272\320\276\320\262.os" | 3 +-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.bsl-language-server.json b/.bsl-language-server.json index 54684e5..688a957 100644 --- a/.bsl-language-server.json +++ b/.bsl-language-server.json @@ -5,7 +5,7 @@ "listOfIncorrectFirstSymbol": ";|,\\s*\\S+" }, "Typo": { - "userWordsToIgnore": "Бенчмарк,бенчмарк,Бенчмарки,бенчмарки,Бенчмарков,бенчмарков,Бенчмарка,бенчмарка,Прогревочных,прогревочных,Запускатель,запускатель,Распарсить,распарсить" + "userWordsToIgnore": "Бенчмаркинг,Бенчмарк,бенчмарк,Бенчмарки,бенчмарки,Бенчмарков,бенчмарков,Бенчмарка,бенчмарка,Прогревочных,прогревочных,Запускатель,запускатель,Распарсить,распарсить,Регулярка" } } } diff --git "a/src/BenchmarkOneScript/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\275\320\263.os" "b/src/BenchmarkOneScript/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\275\320\263.os" index ad8b5d1..1f1cb0b 100644 --- "a/src/BenchmarkOneScript/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\275\320\263.os" +++ "b/src/BenchmarkOneScript/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\270\320\275\320\263.os" @@ -1,7 +1,7 @@ #Использовать logos Перем _Лог; // Лог -Перем _РегуляркаПодготовкиИмениКласса; // РегулярноеВыражение +Перем _РегуляркаЗапрещенныеСимволыВИмени; // РегулярноеВыражение #Область ПрограммныйИнтерфейс @@ -106,15 +106,15 @@ #Область СлужебныеПроцедурыИФункции Функция ИмяКлассаИзСтроки(Строка) - Если _РегуляркаПодготовкиИмениКласса = Неопределено Тогда - _РегуляркаПодготовкиИмениКласса = Новый РегулярноеВыражение("[^a-zA-Zа-яА-Я0-9_]"); + Если _РегуляркаЗапрещенныеСимволыВИмени = Неопределено Тогда + _РегуляркаЗапрещенныеСимволыВИмени = Новый РегулярноеВыражение("[^a-zA-Zа-яА-Я0-9_]"); КонецЕсли; - Возврат _РегуляркаПодготовкиИмениКласса.Заменить(Строка, ""); + Возврат _РегуляркаЗапрещенныеСимволыВИмени.Заменить(Строка, ""); КонецФункции Функция СценарийПодключенПоИмени(ИмяСценария) Попытка - Объект = Новый(ИмяСценария); + Объект = Новый(ИмяСценария); // BSLLS:UnusedLocalVariable-off Возврат Истина; Исключение Возврат Ложь; diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 02e936d..c23530c 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -44,7 +44,7 @@ &Тест Процедура Тест_ЗапускБенчмарковИзНесуществующегоКаталога() Экспорт - Каталог = "./tests/fixtures/Классы/НесуществуюущийКаталог"; + Каталог = "./tests/fixtures/Классы/НесуществующийКаталог"; Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог); Ожидаем.Что(Результат).ИмеетДлину(0); @@ -83,7 +83,6 @@ КонецПроцедуры - &Тест Процедура Тест_ЗапретЗапускаСРазнымиТипамиОбъектов() Экспорт From 1b3d3b5b0e9c38facedf9c67daace0c2ca637fa0 Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Thu, 29 May 2025 01:42:14 +0300 Subject: [PATCH 4/5] =?UTF-8?q?feat:=20=D0=A3=D0=BA=D0=B0=D0=B7=D0=B0?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=8F=D0=B2=D0=BD=D0=BE=20=D1=82=D0=B8=D0=BF?= =?UTF-8?q?=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...60\321\202\320\260\320\273\320\276\320\263\320\260.os" | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git "a/src/BenchmarkOneScript/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\214\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" "b/src/BenchmarkOneScript/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\214\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" index edfb50b..3c602ac 100644 --- "a/src/BenchmarkOneScript/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\214\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" +++ "b/src/BenchmarkOneScript/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\214\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" @@ -74,11 +74,11 @@ Функция ТаблицаРезультата() Таблица = Новый ТаблицаЗначений(); - Таблица.Колонки.Добавить("ИмяКласса"); - Таблица.Колонки.Добавить("ПутьКФайлу"); - Таблица.Колонки.Добавить("ИмяФайла"); + Таблица.Колонки.Добавить("ИмяКласса", Новый ОписаниеТипов("Строка")); + Таблица.Колонки.Добавить("ПутьКФайлу", Новый ОписаниеТипов("Строка")); + Таблица.Колонки.Добавить("ИмяФайла", Новый ОписаниеТипов("Строка")); Таблица.Колонки.Добавить("Результат"); - Таблица.Колонки.Добавить("Успешно"); + Таблица.Колонки.Добавить("Успешно", Новый ОписаниеТипов("Булево")); Возврат Таблица; From dc140caaeb4550a3c396e65799f7f5e9d8d87efa Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Thu, 29 May 2025 01:48:12 +0300 Subject: [PATCH 5/5] refactor: code style --- ...60\321\202\320\260\320\273\320\276\320\263\320\260.os" | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git "a/src/BenchmarkOneScript/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\214\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" "b/src/BenchmarkOneScript/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\214\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" index 3c602ac..5d6c864 100644 --- "a/src/BenchmarkOneScript/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\214\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" +++ "b/src/BenchmarkOneScript/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\214\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\230\320\267\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.os" @@ -73,10 +73,12 @@ Функция ТаблицаРезультата() + ТипСтрока = Новый ОписаниеТипов("Строка"); + Таблица = Новый ТаблицаЗначений(); - Таблица.Колонки.Добавить("ИмяКласса", Новый ОписаниеТипов("Строка")); - Таблица.Колонки.Добавить("ПутьКФайлу", Новый ОписаниеТипов("Строка")); - Таблица.Колонки.Добавить("ИмяФайла", Новый ОписаниеТипов("Строка")); + Таблица.Колонки.Добавить("ИмяКласса", ТипСтрока); + Таблица.Колонки.Добавить("ПутьКФайлу", ТипСтрока); + Таблица.Колонки.Добавить("ИмяФайла", ТипСтрока); Таблица.Колонки.Добавить("Результат"); Таблица.Колонки.Добавить("Успешно", Новый ОписаниеТипов("Булево"));