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/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 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..5d6c864 --- /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,89 @@ +#Использовать 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..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,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_]"); + КонецЕсли; + Возврат _РегуляркаЗапрещенныеСимволыВИмени.Заменить(Строка, ""); +КонецФункции + +Функция СценарийПодключенПоИмени(ИмяСценария) + Попытка + Объект = Новый(ИмяСценария); // BSLLS:UnusedLocalVariable-off + Возврат Истина; + Исключение + Возврат Ложь; + КонецПопытки; +КонецФункции + +#КонецОбласти + +_Лог = Логирование.ПолучитьЛог("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..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" @@ -16,6 +16,73 @@ КонецПроцедуры +&Тест +Процедура Тест_ЗапускБенчмарковИзКаталога() Экспорт + + Каталог = "./tests/fixtures/Классы/БенчмаркиЧерезКаталог"; + Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог); + + Ожидаем.Что(Результат).ИмеетДлину(2); + Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога1", "ИмяФайла")).Заполнено(); + Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога2", "ИмяФайла")).Заполнено(); + +КонецПроцедуры + +&Тест +Процедура Тест_ЗапускБенчмарковИзКаталогаРекурсивно() Экспорт + + Каталог = "./tests/fixtures/Классы/БенчмаркиЧерезКаталог"; + Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог, Истина); + + Ожидаем.Что(Результат).ИмеетДлину(3); + Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога1", "ИмяФайла")).Заполнено(); + Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога2", "ИмяФайла")).Заполнено(); + Ожидаем.Что(Результат.Найти("БенчмаркИзВложенногоКаталога", "ИмяФайла")).Заполнено(); + +КонецПроцедуры + +&Тест +Процедура Тест_ЗапускБенчмарковИзНесуществующегоКаталога() Экспорт + + Каталог = "./tests/fixtures/Классы/НесуществующийКаталог"; + Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог); + + Ожидаем.Что(Результат).ИмеетДлину(0); + +КонецПроцедуры + +&Тест +Процедура Тест_ЗапускБенчмарковСОшибкой() Экспорт + + Каталог = "./tests/fixtures/Классы/БенчмаркиСОшибкой"; + Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог); + + Ожидаем.Что(Результат).ИмеетДлину(2); + Ожидаем.Что(Результат.Найти(Истина, "Успешно")).Заполнено(); + Ожидаем.Что(Результат.Найти(Ложь, "Успешно")).Заполнено(); + +КонецПроцедуры + +&Тест +Процедура Тест_ПодключениеКлассаБенчмарков() Экспорт + + ПутьКФайлу = "./tests/fixtures/Классы/БенчмаркНесуществующий.os"; + Объект = Бенчмаркинг.ПодключитьКласс(ПутьКФайлу); + + Ожидаем.Что(Объект).ЭтоНеопределено(); + +КонецПроцедуры + +&Тест +Процедура Тест_ПодключениеКлассаБенчмарковБезБенчмарков() Экспорт + + ПутьКФайлу = "./tests/fixtures/Классы/БенчмаркБезБенчмарков.os"; + Объект = Бенчмаркинг.ПодключитьКласс(ПутьКФайлу); + + Ожидаем.Что(Объект).ЭтоНеопределено(); + +КонецПроцедуры + &Тест Процедура Тест_ЗапретЗапускаСРазнымиТипамиОбъектов() Экспорт