From 662e4382a0ae7ed419c11ed25c1274d423c783f5 Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Wed, 25 Mar 2026 14:04:22 +0300 Subject: [PATCH 01/12] =?UTF-8?q?tests:=20=D0=A0=D0=B5=D1=84=D0=B0=D0=BA?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B8=D0=BD=D0=B3=20=D0=B8=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D1=8B=D1=85=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\274\320\260\321\200\320\272\320\260.os" | 22 +- ...21\200\320\233\320\276\320\263\320\260.os" | 10 +- ...20\260\321\200\320\272\320\276\320\262.os" | 66 +++++ ...20\260\321\200\320\272\320\276\320\262.os" | 137 ++++++++++ ...20\274\320\265\321\200\320\276\320\262.os" | 55 ++-- ...20\260\321\200\320\272\320\276\320\262.os" | 178 +++++++----- ...20\260\321\200\320\272\320\276\320\262.os" | 142 ++++++++++ ...21\200\320\260\321\206\320\270\320\270.os" | 39 +-- ...20\260\321\200\320\272\320\276\320\262.os" | 198 ++++++++++++++ ...260\321\200\320\272\320\276\320\262CLI.os" | 2 +- ...20\274\320\260\321\200\320\272\320\260.os" | 31 ++- ...21\202\320\265\320\273\320\265\320\271.os" | 255 +++++++++--------- ...20\260\321\200\320\272\320\276\320\262.os" | 10 +- ...20\260\321\200\320\272\320\276\320\262.os" | 10 +- ...21\201\321\202\320\270\320\272\320\270.os" | 106 +++++++- ...20\274\320\260\321\200\320\272\320\260.os" | 115 ++++++++ ...21\202\320\265\321\200\320\276\320\262.os" | 96 +++---- 17 files changed, 1122 insertions(+), 350 deletions(-) create mode 100644 "tests/\320\242\320\265\321\201\321\202\321\213\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\232\320\265\320\271\321\201\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" create mode 100644 "tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\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/\320\242\320\265\321\201\321\202\321\213\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\260\320\237\321\200\320\276\321\206\320\265\321\201\321\201\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" create mode 100644 "tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" diff --git "a/src/BenchmarkOneScript/core/running/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\265\320\271\321\201\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" "b/src/BenchmarkOneScript/core/running/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\265\320\271\321\201\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" index a6c8892..432b5b9 100644 --- "a/src/BenchmarkOneScript/core/running/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\265\320\271\321\201\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" +++ "b/src/BenchmarkOneScript/core/running/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\265\320\271\321\201\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" @@ -6,11 +6,25 @@ #Область ОбработчикиСобытий -Процедура ПриСозданииОбъекта(Идентификатор, Дескриптор, Параметры, ИсполняющаяСреда = Неопределено) +// Создает кейс запуска бенчмарка. +// +// Параметры: +// Идентификатор - Число - Уникальный идентификатор кейса. +// Дескриптор - ДескрипторБенчмарка - Дескриптор запускаемого бенчмарка. +// Параметры - Массив из ПараметрБенчмарка - Параметры запуска кейса. Если не заданы, +// - Неопределено создается пустой массив параметров. +// ИсполняющаяСреда - ИсполняющаяСредаБенчмарков - Исполняющая среда кейса. Если не задана, +// - Неопределено создается среда по умолчанию. +Процедура ПриСозданииОбъекта(Идентификатор, Дескриптор, Параметры = Неопределено, ИсполняющаяСреда = Неопределено) - _Идентификатор = Идентификатор; - _Дескриптор = Дескриптор; - _Параметры = Параметры; + _Идентификатор = Идентификатор; + _Дескриптор = Дескриптор; + + Если Параметры = Неопределено Тогда + _Параметры = Новый Массив(); + Иначе + _Параметры = Параметры; + КонецЕсли; Если ИсполняющаяСреда = Неопределено Тогда _ИсполняющаяСреда = Новый ИсполняющаяСредаБенчмарков(); diff --git "a/tests/fixtures/\320\220\320\277\320\277\320\265\320\275\320\264\320\265\321\200\320\233\320\276\320\263\320\260.os" "b/tests/fixtures/\320\220\320\277\320\277\320\265\320\275\320\264\320\265\321\200\320\233\320\276\320\263\320\260.os" index 8e7f5a3..c18a58e 100644 --- "a/tests/fixtures/\320\220\320\277\320\277\320\265\320\275\320\264\320\265\321\200\320\233\320\276\320\263\320\260.os" +++ "b/tests/fixtures/\320\220\320\277\320\277\320\265\320\275\320\264\320\265\321\200\320\233\320\276\320\263\320\260.os" @@ -1,15 +1,15 @@ -Перем мСообщенияЛога; +Перем _СообщенияЛога; Функция ПолучитьСообщения() Экспорт - Возврат мСообщенияЛога; + Возврат _СообщенияЛога; КонецФункции Процедура Вывести(Знач Сообщение, Знач УровеньВывода) Экспорт - мСообщенияЛога.Добавить(Сообщение); + _СообщенияЛога.Добавить(Сообщение); КонецПроцедуры Процедура Закрыть() Экспорт - мСообщенияЛога = Неопределено; + _СообщенияЛога = Неопределено; КонецПроцедуры -мСообщенияЛога = Новый Массив; +_СообщенияЛога = Новый Массив; 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 0a6988a..a9d37b9 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" @@ -131,6 +131,72 @@ КонецПроцедуры +&Тест +Процедура ТестДолжен_ПодключитьБенчмаркСУникальнымТипомПриКоллизииИмен() Экспорт + + // Подготовка + Каталог = _МенеджерВременныхФайлов.СоздатьКаталог(); + ПутьКФайлу = ОбъединитьПути(Каталог, "ПустойБенчмарк.os"); + + Код = " + |&Бенчмарк + |Процедура Бенчмарк() Экспорт + |КонецПроцедуры"; + + ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8); + ЗаписьТекста.Записать(Код); + ЗаписьТекста.Закрыть(); + + // Действие + Тип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлу); + ИмяТипа = Строка(Тип); + + // Проверка + Ожидаем.Что(ИмяТипа).Не_().Равно("ПустойБенчмарк"); + Ожидаем.Что(Лев(ИмяТипа, СтрДлина("ПустойБенчмарк_"))).Равно("ПустойБенчмарк_"); + Ожидаем.Что(Тип).Не_().Равно(Тип("ПустойБенчмарк")); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ПередатьФактическийТипВСценарийИзолированногоЗапуска() Экспорт + + // Подготовка + Каталог = _МенеджерВременныхФайлов.СоздатьКаталог(); + ПутьКФайлу = ОбъединитьПути(Каталог, "ПустойБенчмарк.os"); + + Код = " + |&Бенчмарк + |Процедура Бенчмарк() Экспорт + |КонецПроцедуры"; + + ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8); + ЗаписьТекста.Записать(Код); + ЗаписьТекста.Закрыть(); + + ПодключенныйТип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлу); + Конфигурация = Новый КонфигурацияБенчмарков(ПодключенныйТип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + Конфигурация.УстановитьСтратегию(СтратегииЗапускаБенчмарка.ХолодныйЗапуск); + + // Действие + Результат = Бенчмаркинг.Запустить(ПодключенныйТип, Конфигурация); + Дескриптор = Результат.ДескрипторыБенчмарков.ПолучитьПервый(); + Запуск = Результат.Запуски[0]; + + // Проверка + Ожидаем.Что(Результат.ДескрипторыБенчмарков.Количество()).Равно(1); + Ожидаем.Что(Результат.Запуски.Количество()).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица.Количество()).Равно(1); + + Ожидаем.Что(Дескриптор.ТипКласса()).Равно(ПодключенныйТип); + Ожидаем.Что(Запуск.Кейс.ДескрипторБенчмарка()).Равно(Дескриптор); + Ожидаем.Что(Запуск.Кейс.ДескрипторБенчмарка().ТипКласса()).Равно(ПодключенныйТип); + Ожидаем.Что(Запуск.Кейс.ДескрипторБенчмарка().ТипКласса()).Не_().Равно(Тип("ПустойБенчмарк")); + Ожидаем.Что(Запуск.Замеры.Количество()).Равно(1); + +КонецПроцедуры + &Тест Процедура ТестДолжен_ПроверитьЗапретЗапускаСРазнымиТипамиОбъектов() Экспорт diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\232\320\265\320\271\321\201\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/tests/\320\242\320\265\321\201\321\202\321\213\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\232\320\265\320\271\321\201\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" new file mode 100644 index 0000000..4c6f3de --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\232\320\265\320\271\321\201\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" @@ -0,0 +1,137 @@ +// BSLLS:LineLength-off + +#Использовать asserts +#Использовать "helpers" +#Использовать "fixtures/benchmarks" + +&Тест +Процедура ТестДолжен_СгенерироватьОдинКейсДляБенчмаркаБезПараметров() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ГенераторКейсов = Новый ГенераторКейсовБенчмарков(ДескрипторыБенчмарков, Конфигурация); + + // Действие + Кейсы = ГенераторКейсов.СгенерироватьВсеКейсы(); + Кейс = Кейсы[0]; + + // Проверка + Ожидаем.Что(Кейсы).ИмеетДлину(1); + Ожидаем.Что(Кейс.Идентификатор()).Равно(1); + Ожидаем.Что(Кейс.ДескрипторБенчмарка().ТипКласса()).Равно(Тип); + Ожидаем.Что(Кейс.Параметры()).ИмеетДлину(0); + Ожидаем.Что(Кейс.ИсполняющаяСреда()).ИмеетТип("ИсполняющаяСредаБенчмарков"); + Ожидаем.Что(Кейс.ИсполняющаяСреда().Версия).Равно(""); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_СгенерироватьМатрицуКейсовДляПараметровИИсполняющихСред() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСПараметрамиМетодаИПоля"); + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .ДобавитьИсполняющуюСреду("dev") + .ДобавитьИсполняющуюСреду("stable"); + ГенераторКейсов = Новый ГенераторКейсовБенчмарков(ДескрипторыБенчмарков, Конфигурация); + + // Действие + Кейсы = ГенераторКейсов.СгенерироватьВсеКейсы(); + ПредставленияКейсов = ПредставленияКейсов(Кейсы); + + // Проверка + Ожидаем.Что(Кейсы).ИмеетДлину(8); + Ожидаем.Что(Кейсы[0].Идентификатор()).Равно(1); + Ожидаем.Что(Кейсы[7].Идентификатор()).Равно(8); + Ожидаем.Что(ПредставленияКейсов).Содержит("dev|1|3|4"); + Ожидаем.Что(ПредставленияКейсов).Содержит("dev|1|5|6"); + Ожидаем.Что(ПредставленияКейсов).Содержит("dev|2|3|4"); + Ожидаем.Что(ПредставленияКейсов).Содержит("dev|2|5|6"); + Ожидаем.Что(ПредставленияКейсов).Содержит("stable|1|3|4"); + Ожидаем.Что(ПредставленияКейсов).Содержит("stable|1|5|6"); + Ожидаем.Что(ПредставленияКейсов).Содержит("stable|2|3|4"); + Ожидаем.Что(ПредставленияКейсов).Содержит("stable|2|5|6"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_СгенерироватьТолькоЗапрошенныеКейсыПоИдентификаторам() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСПараметрамиМетода"); + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ГенераторКейсов = Новый ГенераторКейсовБенчмарков(ДескрипторыБенчмарков, Конфигурация); + ИдентификаторыКейсов = Новый Массив(); + ИдентификаторыКейсов.Добавить(2); + + // Действие + Кейсы = ГенераторКейсов.СгенерироватьПоИдентификаторам(ИдентификаторыКейсов); + Кейс = Кейсы[0]; + + // Проверка + Ожидаем.Что(Кейсы).ИмеетДлину(1); + Ожидаем.Что(Кейс.Идентификатор()).Равно(2); + Ожидаем.Что(ЗначениеПараметра(Кейс, "Парам1")).Равно(20); + Ожидаем.Что(ЗначениеПараметра(Кейс, "Парам2")).Равно(200); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеПриГенерацииКейсовСНеизвестнымИдентификатором() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ГенераторКейсов = Новый ГенераторКейсовБенчмарков(ДескрипторыБенчмарков, Конфигурация); + + ИдентификаторыКейсов = Новый Массив(); + ИдентификаторыКейсов.Добавить(1); + ИдентификаторыКейсов.Добавить(100); + + ПараметрыМетода = Новый Массив(); + ПараметрыМетода.Добавить(ИдентификаторыКейсов); + + // Действие и Проверка + Ожидаем + .Что(ГенераторКейсов) + .Метод("СгенерироватьПоИдентификаторам", ПараметрыМетода) + .ВыбрасываетИсключение("Не найдено 1 из 2 запрошенных кейсов. Ненайденные идентификаторы кейсов: 100"); + +КонецПроцедуры + +Функция ПредставленияКейсов(Кейсы) + + Результат = Новый Массив(); + + Для Каждого Кейс Из Кейсы Цикл + Результат.Добавить( + СтрШаблон( + "%1|%2|%3|%4", + Кейс.ИсполняющаяСреда().Версия, + ЗначениеПараметра(Кейс, "ПолеОбщее"), + ЗначениеПараметра(Кейс, "Парам1"), + ЗначениеПараметра(Кейс, "Парам2") + ) + ); + КонецЦикла; + + Возврат Результат; + +КонецФункции + +Функция ЗначениеПараметра(Кейс, ИмяПараметра) + + Для Каждого Параметр Из Кейс.Параметры() Цикл + Если Параметр.Имя() = ИмяПараметра Тогда + Возврат Параметр.Значение(); + КонецЕсли; + КонецЦикла; + + Возврат Неопределено; + +КонецФункции diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\321\200\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\321\200\320\276\320\262.os" index 2e6787c..82cbf6e 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\321\200\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\321\200\320\276\320\262.os" @@ -6,18 +6,19 @@ #Использовать "fixtures/benchmarks" &Тест -Процедура ТестДолжен_ПроверитьВыделяемуюПамять() Экспорт +Процедура ТестДолжен_ИзмеритьВыделяемуюПамятьБуфераДвоичныхДанных() Экспорт + // Подготовка РазмерВБайтах = 1024 * 1024; - Тип = Тип("БенчмаркБуферДвоичныхДанных"); - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); ДескрипторБенчмарка = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк"); ДескрипторБенчмарка.ДобавитьПараметры(РазмерВБайтах); - - Результат = Бенчмаркинг.Запустить(ДескрипторыБенчмарков); + // Действие + Результат = Бенчмаркинг.Запустить(ДескрипторБенчмарка); + + // Проверка ВыделеноБайт = Результат.Запуски[0].Статистика.ВыделяемаяПамять; Коэффициент = РазмерВБайтах / ВыделеноБайт; @@ -26,51 +27,61 @@ КонецПроцедуры &Тест -Процедура ТестДолжен_ПроверитьВыделяемуюПамятьПустогоБенчмарка() Экспорт +Процедура ТестДолжен_ИзмеритьВыделяемуюПамятьПустогоБенчмарка() Экспорт + // Подготовка Тип = Тип("ПустойБенчмарк"); + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .УстановитьКоличествоИтераций(5) + .УстановитьКоличествоПрогревочныхИтераций(0) + .ДобавитьМониторингПамяти(); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Запуски[0].Статистика.ВыделяемаяПамять).Между(1, 2000); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_НеЗаполнятьВыделяемуюПамятьБезПрофилированияПамяти() Экспорт + // Подготовка + Тип = Тип("ПустойБенчмарк"); Конфигурация = Новый КонфигурацияБенчмарков(Тип) - .ДобавитьМониторингПамяти() .УстановитьКоличествоИтераций(5) .УстановитьКоличествоПрогревочныхИтераций(0); + // Действие Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - ВыделеноБайт = Результат.Запуски[0].Статистика.ВыделяемаяПамять; - - Ожидаем.Что(ВыделеноБайт).Между(1, 2000); + // Проверка + Ожидаем.Что(Результат.Запуски[0].Статистика.ВыделяемаяПамять).Равно(0); КонецПроцедуры &Тест -Процедура Тест_Производительность() Экспорт +Процедура ТестДолжен_РассчитатьПоказателиПроизводительности() Экспорт + // Действие Результат = Бенчмаркинг.Запустить(Тип("БенчмаркиСЗадержкой")); + + // Проверка Запуски = Результат.Запуски; Отчет = Результат.Отчет; - Статистика1 = Запуски[0].Статистика.ВМиллисекунды(); Статистика2 = Запуски[1].Статистика.ВМиллисекунды(); - // Среднее Ожидаем.Что(Статистика1.Среднее).Больше(10); Ожидаем.Что(Статистика2.Среднее).Больше(20); - - // СтандартноеОтклонение Ожидаем.Что(Статистика1.СтандартноеОтклонение).Больше(0); Ожидаем.Что(Статистика2.СтандартноеОтклонение).Больше(0); - - // СтандартнаяОшибкаСреднего Ожидаем.Что(Статистика1.СтандартнаяОшибкаСреднего).Больше(0); Ожидаем.Что(Статистика2.СтандартнаяОшибкаСреднего).Больше(0); - - // Медиана Ожидаем.Что(Статистика1.Медиана).Больше(10); Ожидаем.Что(Статистика2.Медиана).Больше(20); - - // Эталон Ожидаем.Что(Отчет.Таблица[0][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно(1); Ожидаем.Что(Отчет.Таблица[1][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Больше(1); -КонецПроцедуры \ No newline at end of file +КонецПроцедуры diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\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/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\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 51ec9d6..b4f2581 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\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/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\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" @@ -27,7 +27,7 @@ Процедура ТестДолжен_ПодготовитьКаждыйОбычныйФайлИзЯвногоСписка() Экспорт // Действие - Сообщения = ВыполнитьСЗахватомЛогаПодготовителя( + Сообщения = ПолучитьСообщенияПодготовителяФайлаБенчмарка( МассивФайлов( "./tests/fixtures/АлгоритмБезАннотации.os", "./tests/fixtures/АлгоритмБезАннотации2.os" @@ -45,11 +45,8 @@ Процедура ТестДолжен_НеПодготавливатьАннотированныйФайл() Экспорт // Действие - Сообщения = ВыполнитьСЗахватомЛогаПодготовителя( - МассивФайлов( - "./tests/fixtures/benchmarks/Классы/ПустойБенчмарк.os", - "ФайлКоторогоНеСуществуетДляТестаЗапускателя.os" - ) + Сообщения = ПолучитьСообщенияПодготовителяФайлаБенчмарка( + МассивФайлов("./tests/fixtures/benchmarks/Классы/ПустойБенчмарк.os") ); // Проверка @@ -61,11 +58,8 @@ Процедура ТестДолжен_НеПодготавливатьФайлыИзКаталогаСКлассическимиБенчмарками() Экспорт // Действие - Сообщения = ВыполнитьСЗахватомЛогаПодготовителя( - МассивФайлов( - "./tests/fixtures/БенчмаркиЧерезКаталог", - "ФайлКоторогоНеСуществуетДляТестаЗапускателя.os" - ) + Сообщения = ПолучитьСообщенияПодготовителяФайлаБенчмарка( + МассивФайлов("./tests/fixtures/БенчмаркиЧерезКаталог") ); // Проверка @@ -81,11 +75,8 @@ АбсолютныйПуть = ПолныйПутьКФайлу(ОтносительныйПуть); // Действие - Сообщения = ВыполнитьСЗахватомЛогаПодготовителя( - МассивФайлов( - ОтносительныйПуть, - АбсолютныйПуть - ) + Сообщения = ПолучитьСообщенияПодготовителяФайлаБенчмарка( + МассивФайлов(ОтносительныйПуть, АбсолютныйПуть) ); // Проверка @@ -98,28 +89,23 @@ Процедура ТестДолжен_ЗаписатьПредупреждениеЕслиНеНайденыФайлыБенчмарков() Экспорт // Подготовка - Лог = Логирование.ПолучитьЛог("oscript.lib.benchmark.ЗапускательФайловБенчмарков"); - ПредыдущийУровень = Лог.Уровень(); - Аппендер = ЗагрузитьСценарий(ПолныйПутьКФайлу("./tests/fixtures/АппендерЛога.os")); - - Лог.УстановитьУровень(УровниЛога.Предупреждение); - Лог.ДобавитьСпособВывода(Аппендер, УровниЛога.Предупреждение); + КонтекстЛога = ПодключитьАппендерЛога( + "oscript.lib.benchmark.ЗапускательФайловБенчмарков", + УровниЛога.Предупреждение + ); // Действие Попытка Запускатель = Новый ЗапускательФайловБенчмарков(Новый Массив()); Запускатель.Запустить(); - - Сообщения = Аппендер.ПолучитьСообщения(); + Сообщения = КонтекстЛога.Аппендер.ПолучитьСообщения(); Исключение - Лог.УдалитьСпособВывода(Аппендер); - Лог.УстановитьУровень(ПредыдущийУровень); + ОтключитьАппендерЛога(КонтекстЛога); ВызватьИсключение; КонецПопытки; - Лог.УдалитьСпособВывода(Аппендер); - Лог.УстановитьУровень(ПредыдущийУровень); - + ОтключитьАппендерЛога(КонтекстЛога); + // Проверка Ожидаем.Что(Сообщения).ИмеетДлину(1); Ожидаем.Что(Сообщения[0]).Равно("ПРЕДУПРЕЖДЕНИЕ - Не найдено ни одного файла с бенчмарками для запуска"); @@ -131,36 +117,56 @@ // Подготовка ВременныеФайлыДоЗапуска = НайтиВременныеOSФайлы(); + Запускатель = Новый ЗапускательФайловБенчмарков( + МассивФайлов("./tests/fixtures/АлгоритмБезАннотации.os", ИмяНесуществующегоФайлаЗапускателя()) + ); - МассивФайлов = Новый Массив(); - МассивФайлов.Добавить("./tests/fixtures/АлгоритмБезАннотации.os"); - МассивФайлов.Добавить("ФайлКоторогоНеСуществуетДляТестаЗапускателя.os"); - - // Действие - Запускатель = Новый ЗапускательФайловБенчмарков(МассивФайлов); - - // Проверка + // Действие и Проверка Ожидаем .Что(Запускатель) .Метод("Запустить") - .ВыбрасываетИсключение("Файл <ФайлКоторогоНеСуществуетДляТестаЗапускателя.os> не существует"); + .ВыбрасываетИсключение(ТекстОшибкиНесуществующегоФайлаЗапускателя()); Ожидаем.Что(НайтиНовыеВременныеФайлы(ВременныеФайлыДоЗапуска, НайтиВременныеOSФайлы())).ИмеетДлину(0); КонецПроцедуры +&Тест +Процедура ТестДолжен_УдалитьВременныеФайлыПослеУспешногоЗапускаОбычныхФайлов() Экспорт + + // Подготовка + ВременныеФайлыДоЗапуска = НайтиВременныеOSФайлы(); + КаталогАртефактов = _МенеджерВременныхФайлов.СоздатьКаталог(); + Запускатель = Новый ЗапускательФайловБенчмарков( + МассивФайлов( + "./tests/fixtures/АлгоритмБезАннотации.os", + "./tests/fixtures/АлгоритмБезАннотации2.os" + ), + Ложь, + НастройкиСJsonЭкспортером(КаталогАртефактов) + ); + + // Действие + Запускатель.Запустить(); + + // Проверка + Ожидаем.Что(НайтиНовыеВременныеФайлы(ВременныеФайлыДоЗапуска, НайтиВременныеOSФайлы())).ИмеетДлину(0); + Ожидаем.Что(НайтиФайлы(КаталогАртефактов, "*.json")).ИмеетДлину(1); + Ожидаем.Что(ФС.ФайлСуществует(ОбъединитьПути(КаталогАртефактов, "benchmarks-report.json"))).ЭтоИстина(); + + РезультатЗапуска = ПрочитатьРезультатИзJson(ОбъединитьПути(КаталогАртефактов, "benchmarks-report.json")); + Ожидаем.Что(РезультатЗапуска.ДескрипторыБенчмарков.Количество()).Равно(2); + Ожидаем.Что(РезультатЗапуска.Запуски).ИмеетДлину(2); + +КонецПроцедуры + &Тест Процедура ТестДолжен_СобратьОдинОтчетПоБенчмаркамАлгоритмам() Экспорт // Подготовка КаталогАртефактов = _МенеджерВременныхФайлов.СоздатьКаталог(); + Настройки = НастройкиСJsonЭкспортером(КаталогАртефактов); - Настройки = Новый НастройкиЗапускаБенчмарков(); - Настройки.Конфигурация = ТестированиеБенчмарков - .КонфигурацияПоУмолчанию() - .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Json) - .УстановитьКаталогАртефактов(КаталогАртефактов); - Запускатель = Новый ЗапускательФайловБенчмарков( МассивФайлов( "./tests/fixtures/benchmarks/Классы/ПустойБенчмарк.os", @@ -179,7 +185,7 @@ Файлы = НайтиФайлы(КаталогАртефактов, "*.json"); Ожидаем.Что(Файлы, "Должно быть создано два файла отчета").ИмеетДлину(2); - + Ожидаем .Что( ФС.ФайлСуществует(ПутьКФайлуОтчета), @@ -198,8 +204,7 @@ "Файла отчета для АлгоритмБезАннотации2 не должен быть создан") .ЭтоЛожь(); - Сериализатор = Новый СериализаторРезультатовБенчмарков(); - РезультатЗапуска = Сериализатор.ПрочитатьИзJson(ПутьКФайлуОтчета); + РезультатЗапуска = ПрочитатьРезультатИзJson(ПутьКФайлуОтчета); Ожидаем .Что( @@ -235,39 +240,78 @@ КонецПроцедуры -Функция ВыполнитьСЗахватомЛогаПодготовителя(МассивФайлов) +Функция ПолучитьСообщенияПодготовителяФайлаБенчмарка(ФайлыДляЗапуска) - Лог = Логирование.ПолучитьЛог("oscript.lib.benchmark.ПодготовительФайлаБенчмарка"); - ПредыдущийУровень = Лог.Уровень(); - Аппендер = ЗагрузитьСценарий(ПолныйПутьКФайлу("./tests/fixtures/АппендерЛога.os")); - - Лог.УстановитьУровень(УровниЛога.Отладка); - Лог.ДобавитьСпособВывода(Аппендер, УровниЛога.Отладка); + КонтекстЛога = ПодключитьАппендерЛога( + "oscript.lib.benchmark.ПодготовительФайлаБенчмарка", + УровниЛога.Отладка + ); - МассивФайлов.Добавить("ФайлКоторогоНеСуществуетДляТестаЗапускателя.os"); + ФайлыДляПроверки = Новый Массив(); + Для Каждого ФайлДляЗапуска Из ФайлыДляЗапуска Цикл + ФайлыДляПроверки.Добавить(ФайлДляЗапуска); + КонецЦикла; + ФайлыДляПроверки.Добавить(ИмяНесуществующегоФайлаЗапускателя()); Попытка - Запускатель = Новый ЗапускательФайловБенчмарков(МассивФайлов); + Запускатель = Новый ЗапускательФайловБенчмарков(ФайлыДляПроверки); Ожидаем .Что(Запускатель) .Метод("Запустить") - .ВыбрасываетИсключение("Файл <ФайлКоторогоНеСуществуетДляТестаЗапускателя.os> не существует"); + .ВыбрасываетИсключение(ТекстОшибкиНесуществующегоФайлаЗапускателя()); - Сообщения = Аппендер.ПолучитьСообщения(); + Сообщения = КонтекстЛога.Аппендер.ПолучитьСообщения(); Исключение - Лог.УдалитьСпособВывода(Аппендер); - Лог.УстановитьУровень(ПредыдущийУровень); + ОтключитьАппендерЛога(КонтекстЛога); ВызватьИсключение; КонецПопытки; - Лог.УдалитьСпособВывода(Аппендер); - Лог.УстановитьУровень(ПредыдущийУровень); + ОтключитьАппендерЛога(КонтекстЛога); Возврат Сообщения; КонецФункции +Функция ПодключитьАппендерЛога(ИмяЛога, Уровень) + + Лог = Логирование.ПолучитьЛог(ИмяЛога); + Аппендер = ЗагрузитьСценарий(ПолныйПутьКФайлу("./tests/fixtures/АппендерЛога.os")); + ПредыдущийУровень = Лог.Уровень(); + + Лог.УстановитьУровень(Уровень); + Лог.ДобавитьСпособВывода(Аппендер, Уровень); + + Возврат Новый Структура("Лог, Аппендер, ПредыдущийУровень", Лог, Аппендер, ПредыдущийУровень); + +КонецФункции + +Процедура ОтключитьАппендерЛога(КонтекстЛога) + + КонтекстЛога.Лог.УдалитьСпособВывода(КонтекстЛога.Аппендер); + КонтекстЛога.Лог.УстановитьУровень(КонтекстЛога.ПредыдущийУровень); + +КонецПроцедуры + +Функция НастройкиСJsonЭкспортером(КаталогАртефактов) + + Настройки = Новый НастройкиЗапускаБенчмарков(); + Настройки.Конфигурация = ТестированиеБенчмарков + .КонфигурацияПоУмолчанию() + .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Json) + .УстановитьКаталогАртефактов(КаталогАртефактов); + + Возврат Настройки; + +КонецФункции + +Функция ПрочитатьРезультатИзJson(ПутьКФайлу) + + Сериализатор = Новый СериализаторРезультатовБенчмарков(); + Возврат Сериализатор.ПрочитатьИзJson(ПутьКФайлу); + +КонецФункции + Функция ПолныйПутьКФайлу(ПутьКФайлу) Возврат ФС.НормализоватьПуть(ОбъединитьПути(ТекущийКаталог(), ПутьКФайлу)); КонецФункции @@ -313,4 +357,12 @@ Возврат НовыеФайлы; -КонецФункции \ No newline at end of file +КонецФункции + +Функция ИмяНесуществующегоФайлаЗапускателя() + Возврат "ФайлКоторогоНеСуществуетДляТестаЗапускателя.os"; +КонецФункции + +Функция ТекстОшибкиНесуществующегоФайлаЗапускателя() + Возврат СтрШаблон("Файл <%1> не существует", ИмяНесуществующегоФайлаЗапускателя()); +КонецФункции diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\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\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\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..c27d7ed --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -0,0 +1,142 @@ +// BSLLS:LineLength-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать fluent +#Использовать "helpers" +#Использовать "fixtures/benchmarks" + +&Тест +Процедура ТестДолжен_ЗапуститьТолькоВыбранныйКейсПоИдентификатору() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСПараметрамиМетода"); + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + Исполнитель = Новый ИсполнительБенчмарков(Тип, Конфигурация); + + ИдентификаторыКейсов = Новый Массив(); + ИдентификаторыКейсов.Добавить(2); + + // Действие + Результат = Исполнитель.Запустить(ИдентификаторыКейсов); + + // Проверка + Ожидаем.Что(Результат.Запуски, "Запуски").ИмеетДлину(1); + Ожидаем.Что(Результат.Отчет.Таблица, "Отчет").ИмеетДлину(1); + + Кейс = Результат.Запуски[0].Кейс; + + Ожидаем.Что(Кейс.Идентификатор(), "Идентификатор кейса").Равно(2); + Ожидаем.Что(Кейс.Параметры()[0].Значение(), "Параметр 1").Равно(20); + Ожидаем.Что(Кейс.Параметры()[1].Значение(), "Параметр 2").Равно(200); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ПропуститьКейсыДоЧекпоинта() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСПараметрамиМетода"); + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + Конфигурация.УстановитьСтратегию(СтратегииЗапускаБенчмарка.ХолодныйЗапуск); + + Исполнитель = Новый ИсполнительБенчмарков(Тип, Конфигурация); + + Чекпоинт = Новый ЧекпоинтЗапускаБенчмарков(); + Чекпоинт.ИмяМетода = "Бенчмарк"; + Чекпоинт.ИдентификаторКейса = 2; + Чекпоинт.Этап = ЭтапыБенчмарка.Измерение; + Чекпоинт.НомерИтерации = 1; + + Исполнитель.УстановитьЧекпоинт(Чекпоинт); + + // Действие + Результат = Исполнитель.Запустить(); + + // Проверка + Ожидаем.Что(Результат.Запуски, "Запуски").ИмеетДлину(1); + Ожидаем.Что(Результат.Чекпоинт, "Чекпоинт").ЭтоНеопределено(); + + Кейс = Результат.Запуски[0].Кейс; + + Ожидаем.Что(Кейс.Идентификатор(), "Идентификатор кейса").Равно(2); + Ожидаем.Что(Кейс.Параметры()[0].Значение(), "Параметр 1").Равно(20); + Ожидаем.Что(Кейс.Параметры()[1].Значение(), "Параметр 2").Равно(200); + Ожидаем.Что(Результат.Запуски[0].Замеры[0].НомерИтерации, "Номер итерации").Равно(1); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ПродолжитьХолодныйЗапускПоЧекпоинтуИзмерения() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСПараметрамиМетода"); + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + Конфигурация + .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ХолодныйЗапуск) + .УстановитьКоличествоИтераций(3); + + // Действие + ПервыйИсполнитель = Новый ИсполнительБенчмарков(Тип, Конфигурация); + ПервыйРезультат = ПервыйИсполнитель.Запустить(); + + ВторойИсполнитель = Новый ИсполнительБенчмарков(Тип, Конфигурация); + ВторойИсполнитель.УстановитьЧекпоинт(ПервыйРезультат.Чекпоинт); + ВторойРезультат = ВторойИсполнитель.Запустить(); + + ТретийИсполнитель = Новый ИсполнительБенчмарков(Тип, Конфигурация); + ТретийИсполнитель.УстановитьЧекпоинт(ВторойРезультат.Чекпоинт); + ТретийРезультат = ТретийИсполнитель.Запустить(); + + // Проверка + Ожидаем.Что(ПервыйРезультат.Чекпоинт, "Чекпоинт первого запуска").Заполнено(); + Ожидаем.Что(ПервыйРезультат.Чекпоинт.Этап, "Этап первого запуска").Равно(ЭтапыБенчмарка.Измерение); + Ожидаем.Что(ПервыйРезультат.Чекпоинт.НомерИтерации, "Номер итерации первого запуска").Равно(2); + Ожидаем.Что(ПервыйРезультат.Запуски[0].Замеры[0].НомерИтерации, "Первая выполненная итерация").Равно(1); + + Ожидаем.Что(ВторойРезультат.Чекпоинт, "Чекпоинт второго запуска").Заполнено(); + Ожидаем.Что(ВторойРезультат.Чекпоинт.Этап, "Этап второго запуска").Равно(ЭтапыБенчмарка.Измерение); + Ожидаем.Что(ВторойРезультат.Чекпоинт.НомерИтерации, "Номер итерации второго запуска").Равно(3); + Ожидаем.Что(ВторойРезультат.Запуски[0].Замеры[0].НомерИтерации, "Вторая выполненная итерация").Равно(2); + + Ожидаем.Что(ТретийРезультат.Чекпоинт, "Чекпоинт третьего запуска").ЭтоНеопределено(); + Ожидаем.Что(ТретийРезультат.Запуски[0].Замеры[0].НомерИтерации, "Третья выполненная итерация").Равно(3); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ПродолжитьХолодныйЗапускПоЧекпоинтуПамяти() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + Конфигурация + .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ХолодныйЗапуск) + .УстановитьКоличествоИтераций(1) + .ДобавитьМониторингПамяти(); + + // Действие + ПервыйИсполнитель = Новый ИсполнительБенчмарков(Тип, Конфигурация); + ПервыйРезультат = ПервыйИсполнитель.Запустить(); + + ВторойИсполнитель = Новый ИсполнительБенчмарков(Тип, Конфигурация); + ВторойИсполнитель.УстановитьЧекпоинт(ПервыйРезультат.Чекпоинт); + ВторойРезультат = ВторойИсполнитель.Запустить(); + + // Проверка + Ожидаем.Что(ПервыйРезультат.Чекпоинт, "Чекпоинт первого запуска").Заполнено(); + Ожидаем.Что(ПервыйРезультат.Чекпоинт.Этап, "Этап первого запуска").Равно(ЭтапыБенчмарка.Память); + Ожидаем.Что(ПервыйРезультат.Чекпоинт.НомерИтерации, "Номер итерации первого запуска").Равно(1); + Ожидаем.Что(ПервыйРезультат.Запуски[0].Замеры, "Замеры первого запуска").ИмеетДлину(1); + Ожидаем.Что(ПервыйРезультат.Запуски[0].Замеры[0].Этап, "Этап замера первого запуска").Равно(ЭтапыБенчмарка.Измерение); + + Ожидаем.Что(ВторойРезультат.Чекпоинт, "Чекпоинт второго запуска").ЭтоНеопределено(); + Ожидаем.Что(ВторойРезультат.Запуски[0].Замеры, "Замеры второго запуска").ИмеетДлину(1); + Ожидаем.Что(ВторойРезультат.Запуски[0].Замеры[0].Этап, "Этап замера второго запуска").Равно(ЭтапыБенчмарка.Память); + +КонецПроцедуры diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" index a4ec460..ac1fd20 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" @@ -8,16 +8,16 @@ #Использовать "helpers" #Использовать "fixtures/benchmarks" -Перем МенеджерВременныхФайлов; // МенеджерВременныхФайлов +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов &Инициализация Процедура ПередВсеми() Экспорт - МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); КонецПроцедуры &Завершение Процедура ПослеВсех() Экспорт - МенеджерВременныхФайлов.Удалить(); + _МенеджерВременныхФайлов.Удалить(); КонецПроцедуры &Тест @@ -317,7 +317,7 @@ // Подготовка Тип = Тип("БенчмаркСОбработчикамиСобытий"); - ПутьКЛогу = МенеджерВременныхФайлов.НовоеИмяФайла(); + ПутьКЛогу = _МенеджерВременныхФайлов.НовоеИмяФайла(); Конфигурация = Новый КонфигурацияБенчмарков(Тип); ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); @@ -346,7 +346,7 @@ // Подготовка Тип = Тип("БенчмаркСОбработчикамиСобытий"); - ПутьКЛогу = МенеджерВременныхФайлов.НовоеИмяФайла(); + ПутьКЛогу = _МенеджерВременныхФайлов.НовоеИмяФайла(); Конфигурация = Новый КонфигурацияБенчмарков(Тип); ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); @@ -370,7 +370,7 @@ // Подготовка Тип = Тип("БенчмаркСОбработчикамиСобытий"); - ПутьКЛогу = МенеджерВременныхФайлов.НовоеИмяФайла(); + ПутьКЛогу = _МенеджерВременныхФайлов.НовоеИмяФайла(); Конфигурация = Новый КонфигурацияБенчмарков(Тип); ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); @@ -851,31 +851,6 @@ КонецПроцедуры -&Тест -Процедура ТестДолжен_ВыброситьИсключениеПриГенерацииКейсовСНеизвестнымИдентификатором() Экспорт - - // Подготовка - Тип = Тип("ПустойБенчмарк"); - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - - ИдентификаторыКейсов = Новый Массив(); - ИдентификаторыКейсов.Добавить(1); - ИдентификаторыКейсов.Добавить(100); - - ПараметрыМетода = Новый Массив(); - ПараметрыМетода.Добавить(ИдентификаторыКейсов); - - ГенераторКейсов = Новый ГенераторКейсовБенчмарков(ДескрипторыБенчмарков, Конфигурация); - - // Действие и Проверка - Ожидаем - .Что(ГенераторКейсов) - .Метод("СгенерироватьПоИдентификаторам", ПараметрыМетода) - .ВыбрасываетИсключение("Не найдено 1 из 2 запрошенных кейсов. Ненайденные идентификаторы кейсов: 100"); - -КонецПроцедуры - Процедура ПроверитьКонфигурациюБенчмаркаСАннотациямиКонфигурации(Конфигурация) Экспортеры = Конфигурация.Экспортеры(); @@ -932,4 +907,4 @@ Возврат СтрРазделить(ТекстЛога, Символы.ПС, Ложь); -КонецФункции \ No newline at end of file +КонецФункции diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\260\320\237\321\200\320\276\321\206\320\265\321\201\321\201\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/tests/\320\242\320\265\321\201\321\202\321\213\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\260\320\237\321\200\320\276\321\206\320\265\321\201\321\201\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" new file mode 100644 index 0000000..f0efb54 --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\260\320\237\321\200\320\276\321\206\320\265\321\201\321\201\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" @@ -0,0 +1,198 @@ +// BSLLS:LineLength-off + +#Использовать asserts +#Использовать tempfiles +#Использовать "helpers" +#Использовать "fixtures/benchmarks" + +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов +Перем _ИсходныйТаймаутПроцесса; // Строка + +&Инициализация +Процедура ПередВсеми() Экспорт + + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); + _ИсходныйТаймаутПроцесса = ПолучитьПеременнуюСреды("BENCHOS_PROCESS_TIMEOUT"); + +КонецПроцедуры + +&Завершение +Процедура ПослеВсех() Экспорт + + _МенеджерВременныхФайлов.Удалить(); + +КонецПроцедуры + +&После +Процедура ПослеКаждого() Экспорт + + УстановитьПеременнуюСреды("BENCHOS_PROCESS_TIMEOUT", _ИсходныйТаймаутПроцесса); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ЗапуститьБенчмаркВДочернемПроцессе() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Менеджер = НовыйМенеджерПроцессов(Тип, ДескрипторыБенчмарков); + Кейс = Новый КейсБенчмарка(1, ДескрипторыБенчмарков.ПолучитьПервый()); + + // Действие + Результат = Менеджер.ЗапуститьПроцесс(Кейс); + + // Проверка + Ожидаем.Что(Результат).Заполнено(); + Ожидаем.Что(Результат.ДескрипторыБенчмарков.Количество()).Равно(1); + Ожидаем.Что(Результат.ДескрипторыБенчмарков.ПолучитьПервый().ТипКласса()).Равно(Тип); + Ожидаем.Что(Результат.Запуски.Количество()).Равно(1); + Ожидаем.Что(Результат.Запуски[0].Кейс.Идентификатор()).Равно(1); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ЗапуститьНесколькоКейсовВДочернемПроцессе() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСПараметрамиМетода"); + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Конфигурация = КонфигурацияДляТестов(Тип); + ГенераторКейсов = Новый ГенераторКейсовБенчмарков(ДескрипторыБенчмарков, Конфигурация); + Кейсы = ГенераторКейсов.СгенерироватьВсеКейсы(); + Менеджер = Новый МенеджерПроцессовБенчмарков( + ДескрипторыБенчмарков, + Конфигурация, + Новый НулевойРепортерБенчмарков() + ); + + // Действие + Результат = Менеджер.ЗапуститьПроцесс(Кейсы); + + // Проверка + Ожидаем.Что(Результат).Заполнено(); + Ожидаем.Что(Результат.Запуски.Количество()).Равно(2); + Ожидаем.Что(Результат.Запуски[0].Кейс.Идентификатор()).Равно(1); + Ожидаем.Что(Результат.Запуски[1].Кейс.Идентификатор()).Равно(2); + Ожидаем.Что(Результат.Запуски[0].Кейс.Параметры()[0].Значение()).Равно(10); + Ожидаем.Что(Результат.Запуски[0].Кейс.Параметры()[1].Значение()).Равно(100); + Ожидаем.Что(Результат.Запуски[1].Кейс.Параметры()[0].Значение()).Равно(20); + Ожидаем.Что(Результат.Запуски[1].Кейс.Параметры()[1].Значение()).Равно(200); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ЗапуститьБенчмаркВДочернемПроцессеСФактическимТипом() Экспорт + + // Подготовка + Каталог = _МенеджерВременныхФайлов.СоздатьКаталог(); + ПутьКФайлуБенчмарка = ОбъединитьПути(Каталог, "ПустойБенчмарк.os"); + ЗаписатьТекст( + ПутьКФайлуБенчмарка, + " + |&Бенчмарк + |Процедура Бенчмарк() Экспорт + |КонецПроцедуры" + ); + + ПодключенныйТип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлуБенчмарка); + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(ПодключенныйТип); + Менеджер = НовыйМенеджерПроцессов(ПодключенныйТип, ДескрипторыБенчмарков); + Кейс = Новый КейсБенчмарка(1, ДескрипторыБенчмарков.ПолучитьПервый()); + + // Действие + Результат = Менеджер.ЗапуститьПроцесс(Кейс); + + // Проверка + Ожидаем.Что(Строка(ПодключенныйТип)).Не_().Равно("ПустойБенчмарк"); + Ожидаем.Что(Результат).Заполнено(); + Ожидаем.Что(Результат.ДескрипторыБенчмарков.ПолучитьПервый().ТипКласса()).Равно(ПодключенныйТип); + Ожидаем.Что(Результат.Запуски[0].Кейс.ДескрипторБенчмарка().ТипКласса()).Равно(ПодключенныйТип); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеЕслиДочернийПроцессЗавершилсяСОшибкой() Экспорт + + // Подготовка + ПутьКФайлуБенчмарка = ПолныйПутьКФайлу("./tests/fixtures/БенчмаркиСОшибкой/БенчмаркСОшибкой.os"); + Тип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлуБенчмарка); + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Менеджер = НовыйМенеджерПроцессов(Тип, ДескрипторыБенчмарков); + Кейс = Новый КейсБенчмарка(1, ДескрипторыБенчмарков.ПолучитьПервый()); + + ПараметрыМетода = Новый Массив(); + ПараметрыМетода.Добавить(Кейс); + + // Действие и Проверка + Ожидаем + .Что(Менеджер) + .Метод("ЗапуститьПроцесс", ПараметрыМетода) + .ВыбрасываетИсключение("Завершение процесса с ошибкой"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ПрерватьДочернийПроцессПоТаймаутуИзПеременнойСреды() Экспорт + + // Подготовка + Каталог = _МенеджерВременныхФайлов.СоздатьКаталог(); + ПутьКФайлуБенчмарка = ОбъединитьПути(Каталог, "ДолгийБенчмарк.os"); + ЗаписатьТекст( + ПутьКФайлуБенчмарка, + " + |&Бенчмарк + |Процедура Бенчмарк() Экспорт + | Приостановить(2000); + |КонецПроцедуры" + ); + + Тип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлуБенчмарка); + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Менеджер = НовыйМенеджерПроцессов(Тип, ДескрипторыБенчмарков); + Кейс = Новый КейсБенчмарка(1, ДескрипторыБенчмарков.ПолучитьПервый()); + + ПараметрыМетода = Новый Массив(); + ПараметрыМетода.Добавить(Кейс); + + УстановитьПеременнуюСреды("BENCHOS_PROCESS_TIMEOUT", "1"); + + // Действие и Проверка + Ожидаем + .Что(Менеджер) + .Метод("ЗапуститьПроцесс", ПараметрыМетода) + .ВыбрасываетИсключение("Превышено время ожидания (1 сек.) завершения дочернего процесса"); + +КонецПроцедуры + +Функция НовыйМенеджерПроцессов(Тип, ДескрипторыБенчмарков) + + Возврат Новый МенеджерПроцессовБенчмарков( + ДескрипторыБенчмарков, + КонфигурацияДляТестов(Тип), + Новый НулевойРепортерБенчмарков() + ); + +КонецФункции + +Функция КонфигурацияДляТестов(Тип) + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + Конфигурация.УдалитьМониторингПамяти(); + + Возврат Конфигурация; + +КонецФункции + +Функция ПолныйПутьКФайлу(ПутьКФайлу) + Возврат ФС.НормализоватьПуть(ОбъединитьПути(ТекущийКаталог(), ПутьКФайлу)); +КонецФункции + +Процедура ЗаписатьТекст(ПутьКФайлу, Текст) + + ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8); + ЗаписьТекста.Записать(Текст); + ЗаписьТекста.Закрыть(); + +КонецПроцедуры diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\260\321\200\321\201\320\265\321\200\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\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\262CLI.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\260\321\200\321\201\320\265\321\200\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\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\262CLI.os" index 950ed85..8c02c6e 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\260\321\200\321\201\320\265\321\200\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\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\262CLI.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\260\321\200\321\201\320\265\321\200\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\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\262CLI.os" @@ -4,7 +4,7 @@ Перем _ПарсерПараметровБенчмарковCLI; // ПарсерПараметровБенчмарковCLI &Инициализация -Процедура Инициализация() Экспорт +Процедура ПередВсеми() Экспорт _ПарсерПараметровБенчмарковCLI = Новый ПарсерПараметровБенчмарковCLI(); diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\264\320\263\320\276\321\202\320\276\320\262\320\270\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\264\320\263\320\276\321\202\320\276\320\262\320\270\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" index dc40030..1785392 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\264\320\263\320\276\321\202\320\276\320\262\320\270\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\264\320\263\320\276\321\202\320\276\320\262\320\270\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" @@ -5,21 +5,19 @@ #Использовать tempfiles #Использовать "helpers" -Перем МенеджерВременныхФайлов; // МенеджерВременныхФайлов -Перем ПодготовительФайлаБенчмарка; // ПодготовительФайлаБенчмарка - -&Перед -Процедура ПередЗапускомТеста() Экспорт - - МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); - ПодготовительФайлаБенчмарка = Новый ПодготовительФайлаБенчмарка(МенеджерВременныхФайлов); +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов +Перем _ПодготовительФайлаБенчмарка; // ПодготовительФайлаБенчмарка +&Инициализация +Процедура ПередВсеми() Экспорт + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); + _ПодготовительФайлаБенчмарка = Новый ПодготовительФайлаБенчмарка(_МенеджерВременныхФайлов); КонецПроцедуры -&После -Процедура ПослеЗапускаТеста() Экспорт +&Завершение +Процедура ПослеВсех() Экспорт - МенеджерВременныхФайлов.Удалить(); + _МенеджерВременныхФайлов.Удалить(); КонецПроцедуры @@ -30,11 +28,11 @@ ПутьКФайлу = "./tests/fixtures/benchmarks/Классы/ПустойБенчмарк.os"; // Действие - ПодготовленныйФайл = ПодготовительФайлаБенчмарка.Подготовить(ПутьКФайлу); + ПодготовленныйФайл = _ПодготовительФайлаБенчмарка.Подготовить(ПутьКФайлу); // Проверка Ожидаем.Что(ПодготовленныйФайл).Равно(ПутьКФайлу); - Ожидаем.Что(МенеджерВременныхФайлов.Файлы()).ИмеетДлину(0); + Ожидаем.Что(_МенеджерВременныхФайлов.Файлы()).ИмеетДлину(0); КонецПроцедуры @@ -45,7 +43,7 @@ ПутьКФайлу = "./tests/fixtures/АлгоритмБезАннотации.os"; // Действие - ПодготовленныйФайл = ПодготовительФайлаБенчмарка.Подготовить(ПутьКФайлу); + ПодготовленныйФайл = _ПодготовительФайлаБенчмарка.Подготовить(ПутьКФайлу); // Проверка ТекстВременногоФайла = ПрочитатьТекст(ПодготовленныйФайл); @@ -53,7 +51,7 @@ ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); Ожидаем.Что(ФС.ФайлСуществует(ПодготовленныйФайл)).Равно(Истина); - Ожидаем.Что(МенеджерВременныхФайлов.Файлы()).ИмеетДлину(1); + Ожидаем.Что(_МенеджерВременныхФайлов.Файлы()).ИмеетДлину(1); Ожидаем.Что(ТекстВременногоФайла).Содержит("#Использовать fs"); Ожидаем.Что(ТекстВременногоФайла).Содержит("&Бенчмарк"); Ожидаем.Что(ТекстВременногоФайла).Содержит("Процедура Бенчмарк() Экспорт"); @@ -68,7 +66,8 @@ &Параметры("./tests/fixtures/АлгоритмБезАннотации.os", Ложь) Процедура ТестДолжен_ОпределитьНаличиеБенчмарковВФайле(ПутьКФайлу, Ожидание) Экспорт - Ожидаем.Что(ПодготовительФайлаБенчмарка.СодержитБенчмарки(ПутьКФайлу)).Равно(Ожидание); + // Действие и Проверка + Ожидаем.Что(_ПодготовительФайлаБенчмарка.СодержитБенчмарки(ПутьКФайлу)).Равно(Ожидание); КонецПроцедуры diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271.os" index 2272901..b096302 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271.os" @@ -5,163 +5,158 @@ #Использовать "helpers" &Тест -Процедура Тест_ПредставлениеБайт() Экспорт +&Параметры(0, "0 B") +&Параметры(1, "1 B") +&Параметры(512, "512 B") +&Параметры(1024, "1 KB") +&Параметры(524288, "512 KB") +&Параметры(1048576, "1 MB") +&Параметры(536870912, "512 MB") +&Параметры(1073741824, "1 GB") +&Параметры(1099511627776, "1,024 GB") +Процедура ТестДолжен_ФорматироватьБайтыВЧитаемыйВид(Значение, ОжидаемоеПредставление) Экспорт + + // Действие + Результат = ПредставленияПоказателейБенчмарков.ПредставлениеЧитаемое( + Значение, + ЕдиницыИзмеренийБенчмарков.Байт + ); + + // Проверка + Ожидаем.Что(Результат).Равно(ОжидаемоеПредставление); - Кратность = 1024; - - ТестовыйНабор = Новый Соответствие(); - ТестовыйНабор[0] = "0 B"; - ТестовыйНабор[1] = "1 B"; - ТестовыйНабор[512] = "512 B"; - ТестовыйНабор[Кратность] = "1 KB"; - ТестовыйНабор[Pow(Кратность, 2) / 2] = "512 KB"; - ТестовыйНабор[Pow(Кратность, 2)] = "1 MB"; - ТестовыйНабор[Pow(Кратность, 3) / 2] = "512 MB"; - ТестовыйНабор[Pow(Кратность, 3)] = "1 GB"; - ТестовыйНабор[Pow(Кратность, 4)] = "1,024 GB"; - - Для Каждого Строка Из ТестовыйНабор Цикл - - Байт = Строка.Ключ; - Представление = Строка.Значение; - - Результат = ПредставленияПоказателейБенчмарков.ПредставлениеЧитаемое( - Байт, - ЕдиницыИзмеренийБенчмарков.Байт - ); - - Ожидаем.Что(Результат).Равно(Представление); - - КонецЦикла; - КонецПроцедуры &Тест -Процедура Тест_ПредставлениеСекунд() Экспорт - - ТестовыйНабор = Новый Соответствие(); - ТестовыйНабор[0] = "0.0 ns"; - ТестовыйНабор[10] = "10.0 ns"; - ТестовыйНабор[100] = "100.0 ns"; - ТестовыйНабор[1000] = "1.0 us"; - ТестовыйНабор[10000] = "10.0 us"; - ТестовыйНабор[100000] = "100.0 us"; - ТестовыйНабор[1000000] = "1.0 ms"; - ТестовыйНабор[10000000] = "10.0 ms"; - ТестовыйНабор[100000000] = "100.0 ms"; - ТестовыйНабор[1000000000] = "1.0 s"; - ТестовыйНабор[10000000000] = "10.0 s"; - ТестовыйНабор[60000000000] = "60.0 s"; - ТестовыйНабор[600000000000] = "600.0 s"; - - Для Каждого Строка Из ТестовыйНабор Цикл - - Наносекунд = Строка.Ключ; - Представление = Строка.Значение; - - Результат = ПредставленияПоказателейБенчмарков.ПредставлениеЧитаемое( - Наносекунд, - ЕдиницыИзмеренийБенчмарков.Наносекунда - ); - - Ожидаем.Что(Результат).Равно(Представление); - - КонецЦикла; - +&Параметры(0, "0.0 ns") +&Параметры(10, "10.0 ns") +&Параметры(100, "100.0 ns") +&Параметры(1000, "1.0 us") +&Параметры(10000, "10.0 us") +&Параметры(100000, "100.0 us") +&Параметры(1000000, "1.0 ms") +&Параметры(10000000, "10.0 ms") +&Параметры(100000000, "100.0 ms") +&Параметры(1000000000, "1.0 s") +&Параметры(10000000000, "10.0 s") +&Параметры(60000000000, "60.0 s") +&Параметры(600000000000, "600.0 s") +Процедура ТестДолжен_ФорматироватьНаносекундыВЧитаемыйВид(Значение, ОжидаемоеПредставление) Экспорт + + // Действие + Результат = ПредставленияПоказателейБенчмарков.ПредставлениеЧитаемое( + Значение, + ЕдиницыИзмеренийБенчмарков.Наносекунда + ); + + // Проверка + Ожидаем.Что(Результат).Равно(ОжидаемоеПредставление); + КонецПроцедуры &Тест -Процедура Тест_ПредставлениеЧислаСекунды() Экспорт - +&Параметры(0, "0.0") +&Параметры(1, "1.0") +&Параметры(0.1, "0.1") +&Параметры(0.12, "0.12") +&Параметры(0.123, "0.123") +&Параметры(0.1234, "0.123") +&Параметры(0.01, "0.01") +&Параметры(0.012, "0.012") +&Параметры(0.0123, "0.0123") +&Параметры(0.01234, "0.0123") +&Параметры(0.001, "0.001") +&Параметры(0.0012, "0.0012") +&Параметры(0.00123, "0.0012") +&Параметры(1.1, "1.1") +&Параметры(1.12, "1.12") +&Параметры(1.123, "1.123") +&Параметры(1.1234, "1.123") +&Параметры(10.1, "10.1") +&Параметры(10.12, "10.12") +&Параметры(10.123, "10.12") +&Параметры(100.1, "100.1") +&Параметры(100.12, "100.1") +&Параметры(1000.1, "1,000.1") +&Параметры(1000.12, "1,000.1") +Процедура ТестДолжен_ФорматироватьЧислоДляПоказателяВремени(ЧислоДляПроверки, ОжидаемоеПредставление) Экспорт + + // Подготовка ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.Наносекунда; - ТестовыйНабор = Новый Соответствие(); - ТестовыйНабор[0] = "0.0"; - ТестовыйНабор[1] = "1.0"; - - ТестовыйНабор[0.1] = "0.1"; - ТестовыйНабор[0.12] = "0.12"; - ТестовыйНабор[0.123] = "0.123"; - ТестовыйНабор[0.1234] = "0.123"; - - ТестовыйНабор[0.01] = "0.01"; - ТестовыйНабор[0.012] = "0.012"; - ТестовыйНабор[0.0123] = "0.0123"; - ТестовыйНабор[0.01234] = "0.0123"; - - ТестовыйНабор[0.001] = "0.001"; - ТестовыйНабор[0.0012] = "0.0012"; - ТестовыйНабор[0.00123] = "0.0012"; - - ТестовыйНабор[1.1] = "1.1"; - ТестовыйНабор[1.12] = "1.12"; - ТестовыйНабор[1.123] = "1.123"; - ТестовыйНабор[1.1234] = "1.123"; + // Действие + Результат = ПредставленияПоказателейБенчмарков.ПредставлениеЧисла( + ЧислоДляПроверки, + ЕдиницаИзмерения + ); + РезультатСМинусом = ПредставленияПоказателейБенчмарков.ПредставлениеЧисла( + -ЧислоДляПроверки, + ЕдиницаИзмерения + ); + + // Проверка + Ожидаем.Что(Результат).Равно(ОжидаемоеПредставление); + Если ЧислоДляПроверки <> 0 Тогда + Ожидаем.Что(РезультатСМинусом).Равно("-" + ОжидаемоеПредставление); + КонецЕсли; - ТестовыйНабор[10.1] = "10.1"; - ТестовыйНабор[10.12] = "10.12"; - ТестовыйНабор[10.123] = "10.12"; - - ТестовыйНабор[100.1] = "100.1"; - ТестовыйНабор[100.12] = "100.1"; +КонецПроцедуры - ТестовыйНабор[1000.1] = "1,000.1"; - ТестовыйНабор[1000.12] = "1,000.1"; +&Тест +&Параметры(Истина, "True") +&Параметры(Ложь, "False") +Процедура ТестДолжен_ФорматироватьБулево(Значение, ОжидаемоеПредставление) Экспорт - Для Каждого Строка Из ТестовыйНабор Цикл + // Действие + Результат = ПредставленияПоказателейБенчмарков.Представление(Значение); - Число = Строка.Ключ; - Представление = Строка.Значение; + // Проверка + Ожидаем.Что(Результат).Равно(ОжидаемоеПредставление); - Результат = ПредставленияПоказателейБенчмарков.ПредставлениеЧисла(Число, ЕдиницаИзмерения); - РезультатСМинусом = ПредставленияПоказателейБенчмарков.ПредставлениеЧисла(-Число, ЕдиницаИзмерения); +КонецПроцедуры - Ожидаем.Что(Результат).Равно(Представление); +&Тест +&Параметры(Истина, "Yes") +&Параметры(Ложь, "No") +Процедура ТестДолжен_ФорматироватьБулевоПоФорматнойСтроке(Значение, ОжидаемоеПредставление) Экспорт - Если Число <> 0 Тогда - Ожидаем.Что(РезультатСМинусом).Равно("-" + Представление); - КонецЕсли; + // Действие + Результат = ПредставленияПоказателейБенчмарков.Представление(Значение, , "БЛ=No; БИ=Yes"); - КонецЦикла; + // Проверка + Ожидаем.Что(Результат).Равно(ОжидаемоеПредставление); КонецПроцедуры &Тест -Процедура Тест_ПредставлениеБулево() Экспорт - - ТестовыйНабор = Новый Соответствие(); - ТестовыйНабор[Истина] = "True"; - ТестовыйНабор[Ложь] = "False"; +Процедура ТестДолжен_ФорматироватьЧислоБезДобавленияЕдиницыИзмерения() Экспорт - Для Каждого Строка Из ТестовыйНабор Цикл + // Действие + Результат = ПредставленияПоказателейБенчмарков.ПредставлениеЧитаемое( + 1500, + ЕдиницыИзмеренийБенчмарков.Наносекунда, + "", + Ложь + ); - Значение = Строка.Ключ; - Представление = Строка.Значение; - - Результат = ПредставленияПоказателейБенчмарков.Представление(Значение); - Ожидаем.Что(Результат).Равно(Представление); - - КонецЦикла; + // Проверка + Ожидаем.Что(Результат).Равно("1.5"); КонецПроцедуры &Тест -Процедура Тест_ПредставлениеБулевоФорматнойСтрокой() Экспорт - - ФорматнаяСтрока = "БЛ=No; БИ=Yes"; - - ТестовыйНабор = Новый Соответствие(); - ТестовыйНабор[Истина] = "Yes"; - ТестовыйНабор[Ложь] = "No"; +Процедура ТестДолжен_ФормироватьФиксированнуюСтроку() Экспорт - Для Каждого Строка Из ТестовыйНабор Цикл + // Действие + СтрокаСВыравниваниемВлево = ПредставленияПоказателейБенчмарков.ФиксированнаяСтрока("abc", 5); + СтрокаСВыравниваниемВправо = ПредставленияПоказателейБенчмарков.ФиксированнаяСтрока("abc", 5, Истина); + СтрокаСОборачиванием = ПредставленияПоказателейБенчмарков.ФиксированнаяСтрока("abc", 5, Ложь, "-", Истина); + СтрокаБезОбрезания = ПредставленияПоказателейБенчмарков.ФиксированнаяСтрока("abcdef", 3); - Значение = Строка.Ключ; - Представление = Строка.Значение; + // Проверка + Ожидаем.Что(СтрокаСВыравниваниемВлево).Равно("abc "); + Ожидаем.Что(СтрокаСВыравниваниемВправо).Равно(" abc"); + Ожидаем.Что(СтрокаСОборачиванием).Равно("-abc-"); + Ожидаем.Что(СтрокаБезОбрезания).Равно("abcdef"); - Результат = ПредставленияПоказателейБенчмарков.Представление(Значение, , ФорматнаяСтрока); - Ожидаем.Что(Результат).Равно(Представление); - - КонецЦикла; - -КонецПроцедуры \ No newline at end of file +КонецПроцедуры diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\227\320\260\320\277\321\203\321\201\320\272\320\260\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\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 760cfdb..3360320 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\227\320\260\320\277\321\203\321\201\320\272\320\260\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\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -7,16 +7,16 @@ #Использовать "helpers" #Использовать "fixtures/benchmarks" -Перем МенеджерВременныхФайлов; // МенеджерВременныхФайлов +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов &Инициализация Процедура ПередВсеми() Экспорт - МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); КонецПроцедуры &Завершение Процедура ПослеВсех() Экспорт - МенеджерВременныхФайлов.Удалить(); + _МенеджерВременныхФайлов.Удалить(); КонецПроцедуры &Тест @@ -27,7 +27,7 @@ Конфигурация = Новый КонфигурацияБенчмарков(Тип); КоллекцияДескрипторов = Новый КоллекцияДескрипторовБенчмарков(Тип); - ИмяФайла = МенеджерВременныхФайлов.НовоеИмяФайла(); + ИмяФайла = _МенеджерВременныхФайлов.НовоеИмяФайла(); НастройкиЗапуска = Новый НастройкиЗапускаБенчмарков(); НастройкиЗапуска.ДескрипторыБенчмарков = КоллекцияДескрипторов; @@ -112,4 +112,4 @@ Ожидаем.Что(ИсточникиПараметров[0].ИмяПоля, "Источники параметров").Равно("ОбщееЗначение"); Ожидаем.Что(ИсточникиПараметров[0].Источник, "Источники параметров").Равно("ПолучитьЗначения"); -КонецПроцедуры \ No newline at end of file +КонецПроцедуры diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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 1320ff8..e1b6575 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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" @@ -9,16 +9,16 @@ #Использовать "helpers" #Использовать "fixtures/benchmarks" -Перем МенеджерВременныхФайлов; // МенеджерВременныхФайлов +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов &Инициализация Процедура ПередВсеми() Экспорт - МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); КонецПроцедуры &Завершение Процедура ПослеВсех() Экспорт - МенеджерВременныхФайлов.Удалить(); + _МенеджерВременныхФайлов.Удалить(); КонецПроцедуры &После @@ -63,7 +63,7 @@ // Действие Результат = Бенчмаркинг.Запустить(ДескрипторыБенчмарков, Конфигурация); - ИмяФайла = МенеджерВременныхФайлов.НовоеИмяФайла(); + ИмяФайла = _МенеджерВременныхФайлов.НовоеИмяФайла(); Сериализатор = Новый СериализаторРезультатовБенчмарков(); Сериализатор.ЗаписатьВJson(Результат, ИмяФайла); РезультатПрочитанный = Сериализатор.ПрочитатьИзJson(ИмяФайла); @@ -170,4 +170,4 @@ Ожидаем.Что(ИсполняющиеСреды[0].Наименование, "Исполняющая среда 1").Равно("develop"); Ожидаем.Что(ИсполняющиеСреды[0].ЭтоЭталон, "Исполняющая среда 1").ЭтоЛожь(); -КонецПроцедуры \ No newline at end of file +КонецПроцедуры diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\270.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\270.os" index b3bd9ab..8f1225b 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\270.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\270.os" @@ -31,7 +31,7 @@ КонецПроцедуры &Тест -Процедура Тест_НечетныйРазмер() Экспорт +Процедура ТестДолжен_РассчитатьСтатистикуДляНечетногоКоличестваЗамеров() Экспорт ТестовыеЗамеры = ТестовыеЗамеры("12, 15, 22, 25, 17, 28, 14", "100, 101, 102"); @@ -55,7 +55,7 @@ КонецПроцедуры &Тест -Процедура Тест_ЧетныйРазмер() Экспорт +Процедура ТестДолжен_РассчитатьСтатистикуДляЧетногоКоличестваЗамеров() Экспорт ТестовыеЗамеры = ТестовыеЗамеры("12, 15, 22, 25, 17, 28, 20, 4", "100, 102"); @@ -79,7 +79,7 @@ КонецПроцедуры &Тест -Процедура Тест_ОдинаковыеЗначения() Экспорт +Процедура ТестДолжен_РассчитатьСтатистикуДляОдинаковыхЗамеров() Экспорт ТестовыеЗамеры = ТестовыеЗамеры("5, 5, 5, 5", "100, 100"); @@ -103,7 +103,7 @@ КонецПроцедуры &Тест -Процедура Тест_ОтрицательныеЗначения() Экспорт +Процедура ТестДолжен_РассчитатьСтатистикуДляОтрицательныхЗамеров() Экспорт ТестовыеЗамеры = ТестовыеЗамеры("-12, 15, -22, 25, 17, 28, 0, 4", "100, -100"); @@ -127,7 +127,7 @@ КонецПроцедуры &Тест -Процедура Тест_ВМиллисекунды() Экспорт +Процедура ТестДолжен_КонвертироватьСтатистикуВМиллисекунды() Экспорт ОтношениеКБазовой = ЕдиницыИзмеренийБенчмарков.Миллисекунда.ОтношениеКБазовой; @@ -153,7 +153,7 @@ КонецПроцедуры &Тест -Процедура Тест_ВСекунды() Экспорт +Процедура ТестДолжен_КонвертироватьСтатистикуВСекунды() Экспорт ОтношениеКБазовой = ЕдиницыИзмеренийБенчмарков.Секунда.ОтношениеКБазовой; @@ -179,7 +179,7 @@ КонецПроцедуры &Тест -Процедура Тест_ВНаносекунды() Экспорт +Процедура ТестДолжен_ВернутьСтатистикуВНаносекундахПослеОбратнойКонвертации() Экспорт ТестовыеЗамеры = ТестовыеЗамеры("12, 15, 22, 25, 17, 28, 14", "100, 101"); @@ -203,7 +203,7 @@ КонецПроцедуры &Тест -Процедура Тест_Разделить() Экспорт +Процедура ТестДолжен_РазделитьСтатистику() Экспорт ТестовыеЗамеры1 = ТестовыеЗамеры("32, 16, 64, 128", "100, 102"); ТестовыеЗамеры2 = ТестовыеЗамеры("2, 8, 16, 4", "50, 51"); @@ -230,6 +230,94 @@ КонецПроцедуры +&Тест +Процедура ТестДолжен_ПрочитатьЗамерыИзСтруктуры() Экспорт + + // Подготовка + ЗамерыВремени = Новый Массив(); + ЗамерыВремени.Добавить(10); + ЗамерыВремени.Добавить(20); + + ЗамерыПамяти = Новый Массив(); + ЗамерыПамяти.Добавить(100); + ЗамерыПамяти.Добавить(200); + + Замеры = Новый Структура( + "ЗамерыВремени, ЗамерыПамяти", + ЗамерыВремени, + ЗамерыПамяти + ); + + Статистика = Новый СтатистикаБенчмарка(); + + // Действие + Статистика.Прочитать(Замеры); + + // Проверка + Ожидаем.Что(Статистика.КоличествоИтераций, "Количество итераций").Равно(2); + Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(15); + Ожидаем.Что(Статистика.Мин, "Мин").Равно(10); + Ожидаем.Что(Статистика.Макс, "Макс").Равно(20); + Ожидаем.Что(Статистика.ВыделяемаяПамять, "Выделяемая память").Равно(150); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВернутьПроцентили() Экспорт + + // Подготовка + Статистика = Новый СтатистикаБенчмарка(ТестовыеЗамеры("12, 15, 22, 25, 17, 28, 14", "100, 101")); + + // Действие + Процентили = Статистика.ПолучитьПроцентили(); + + // Проверка + Ожидаем.Что(Процентили.P0, "P0").Равно(12); + Ожидаем.Что(Процентили.P25, "P25").Равно(14.5); + Ожидаем.Что(Процентили.P50, "P50").Равно(17); + Ожидаем.Что(Процентили.P67, "P67").Равно(22.06); + Ожидаем.Что(Процентили.P80, "P80").Равно(24.4); + Ожидаем.Что(Процентили.P85, "P85").Равно(25.3); + Ожидаем.Что(Процентили.P90, "P90").Равно(26.2); + Ожидаем.Что(Процентили.P95, "P95").Равно(27.1); + Ожидаем.Что(Процентили.P100, "P100").Равно(28); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВозвращатьКопииЗамеров() Экспорт + + // Подготовка + Статистика = Новый СтатистикаБенчмарка(ТестовыеЗамеры("12, 15, 22", "100, 101")); + ЗамерыВремени = Статистика.ЗамерыВремени(); + ЗамерыПамяти = Статистика.ЗамерыПамяти(); + + // Действие + ЗамерыВремени.Добавить(1000); + ЗамерыПамяти.Добавить(1000); + + // Проверка + Ожидаем.Что(Статистика.ЗамерыВремени(), "Замеры времени").ИмеетДлину(3); + Ожидаем.Что(Статистика.ЗамерыПамяти(), "Замеры памяти").ИмеетДлину(2); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеДляНеподдерживаемогоТипаЗамеров() Экспорт + + // Подготовка + Статистика = Новый СтатистикаБенчмарка(); + ПараметрыМетода = Новый Массив(); + ПараметрыМетода.Добавить(Новый Соответствие()); + + // Действие и Проверка + Ожидаем + .Что(Статистика) + .Метод("Прочитать", ПараметрыМетода) + .ВыбрасываетИсключение("Замеры с типом Соответствие не поддерживаются"); + +КонецПроцедуры + Функция ТестовыеЗамеры(СтрокаЗамерыВремени, СтрокаЗамерыПамяти, Множитель = 1) Экспорт Замеры = Новый Массив(); @@ -253,4 +341,4 @@ Возврат Замеры; -КонецФункции \ No newline at end of file +КонецФункции diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" new file mode 100644 index 0000000..e8f83a3 --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" @@ -0,0 +1,115 @@ +// BSLLS:LineLength-off + +#Использовать asserts +#Использовать fs +#Использовать tempfiles +#Использовать "helpers" +#Использовать "fixtures/benchmarks" + +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов + +&Инициализация +Процедура ПередВсеми() Экспорт + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); +КонецПроцедуры + +&Завершение +Процедура ПослеВсех() Экспорт + _МенеджерВременныхФайлов.Удалить(); +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ЗаписатьФайлСценарияИФайлНастроекЗапуска() Экспорт + + // Подготовка + Сценарий = Новый СценарийЗапускаБенчмарка( + Новый КоллекцияДескрипторовБенчмарков(Тип("ПустойБенчмарк")), + ТестированиеБенчмарков.КонфигурацияПоУмолчанию() + ); + ПутьКФайлуСценария = _МенеджерВременныхФайлов.НовоеИмяФайла("os"); + Кейс = КейсПустогоБенчмарка(17); + + // Действие + Сценарий.Записать(ПутьКФайлуСценария, Кейс); + + // Проверка + Ожидаем.Что(ФС.ФайлСуществует(ПутьКФайлуСценария)).Равно(Истина); + Ожидаем.Что(ФС.ФайлСуществует(ПутьКФайлуНастроек(ПутьКФайлуСценария))).Равно(Истина); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ЗаписатьИдентификаторОдиночногоКейсаВНастройкиЗапуска() Экспорт + + // Подготовка + Сценарий = Новый СценарийЗапускаБенчмарка( + Новый КоллекцияДескрипторовБенчмарков(Тип("ПустойБенчмарк")), + ТестированиеБенчмарков.КонфигурацияПоУмолчанию() + ); + ПутьКФайлуСценария = _МенеджерВременныхФайлов.НовоеИмяФайла("os"); + ИдентификаторКейса = 23; + + // Действие + Сценарий.Записать(ПутьКФайлуСценария, КейсПустогоБенчмарка(ИдентификаторКейса)); + НастройкиЗапуска = ПрочитатьНастройкиЗапуска(ПутьКФайлуНастроек(ПутьКФайлуСценария)); + + // Проверка + Ожидаем.Что(НастройкиЗапуска.ИдентификаторыКейсов).ИмеетДлину(1); + Ожидаем.Что(НастройкиЗапуска.ИдентификаторыКейсов[0]).Равно(ИдентификаторКейса); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ЗаписатьИдентификаторыВсехКейсовИЧекпоинтВНастройкиЗапуска() Экспорт + + // Подготовка + Сценарий = Новый СценарийЗапускаБенчмарка( + Новый КоллекцияДескрипторовБенчмарков(Тип("ПустойБенчмарк")), + ТестированиеБенчмарков.КонфигурацияПоУмолчанию() + ); + ПутьКФайлуСценария = _МенеджерВременныхФайлов.НовоеИмяФайла("os"); + Кейсы = Новый Массив(); + Кейсы.Добавить(КейсПустогоБенчмарка(101)); + Кейсы.Добавить(КейсПустогоБенчмарка(102)); + + Чекпоинт = Новый ЧекпоинтЗапускаБенчмарков(); + Чекпоинт.ИмяМетода = "Бенчмарк"; + Чекпоинт.ИдентификаторКейса = 102; + Чекпоинт.Этап = "ПослеИтерации"; + Чекпоинт.НомерИтерации = 3; + + // Действие + Сценарий.Записать(ПутьКФайлуСценария, Кейсы, Чекпоинт); + НастройкиЗапуска = ПрочитатьНастройкиЗапуска(ПутьКФайлуНастроек(ПутьКФайлуСценария)); + + // Проверка + Ожидаем.Что(НастройкиЗапуска.ИдентификаторыКейсов).ИмеетДлину(2); + Ожидаем.Что(НастройкиЗапуска.ИдентификаторыКейсов[0]).Равно(101); + Ожидаем.Что(НастройкиЗапуска.ИдентификаторыКейсов[1]).Равно(102); + Ожидаем.Что(НастройкиЗапуска.Чекпоинт.ИмяМетода).Равно("Бенчмарк"); + Ожидаем.Что(НастройкиЗапуска.Чекпоинт.ИдентификаторКейса).Равно(102); + Ожидаем.Что(НастройкиЗапуска.Чекпоинт.Этап).Равно("ПослеИтерации"); + Ожидаем.Что(НастройкиЗапуска.Чекпоинт.НомерИтерации).Равно(3); + +КонецПроцедуры + +Функция КейсПустогоБенчмарка(Идентификатор) + + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип("ПустойБенчмарк")); + Возврат Новый КейсБенчмарка(Идентификатор, ДескрипторыБенчмарков.ПолучитьПервый()); + +КонецФункции + +Функция ПутьКФайлуНастроек(ПутьКФайлуСценария) + + Файл = Новый Файл(ПутьКФайлуСценария); + Возврат ОбъединитьПути(Файл.Путь, Файл.ИмяБезРасширения + ".settings.json"); + +КонецФункции + +Функция ПрочитатьНастройкиЗапуска(ПутьКФайлу) + + Сериализатор = Новый СериализаторНастроекЗапускаБенчмарков(); + Возврат Сериализатор.ПрочитатьИзJson(ПутьКФайлу); + +КонецФункции diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\265\321\200\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\265\321\200\320\276\320\262.os" index e4e0fe9..bfa7fad 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\265\321\200\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\265\321\200\320\276\320\262.os" @@ -8,15 +8,16 @@ &После Процедура ПослеЗапускаТеста() Экспорт - - КаталогАртефактов = ".\BenchmarkArtifacts"; - ФС.УдалитьФайлы(КаталогАртефактов); + ФС.УдалитьФайлы(".\BenchmarkArtifacts"); КонецПроцедуры &Тест -Процедура Тест_ЭкспортВMarkdown() Экспорт +&Параметры("Markdown", "md", "tests/fixtures/verified-report.md") +&Параметры("Json", "json", "tests/fixtures/verified-report.json") +&Параметры("Html", "html", "tests/fixtures/verified-report.html") +Процедура ТестДолжен_ЭкспортироватьОтчетВУказанныйФормат(ИмяЭкспортера, Расширение, ПутьКЭталону) Экспорт Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда Возврат; @@ -24,31 +25,20 @@ // Подготовка Тип = Тип("БенчмаркиДляЭкспорта"); - - ТекстЭталон = СтроковыеФункции.ПрочитатьФайл("tests/fixtures/verified-report.md"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Конфигурация - .ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаВремени", СобытияБенчмарков.ПослеКаждогоКейса) - .ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаМокСредыОкружения", СобытияБенчмарков.ПослеВсех) - .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Markdown); - - ПутьКФайлу = ОбъединитьПути(Конфигурация.КаталогАртефактов(), "БенчмаркиДляЭкспорта-report.md"); + ТекстЭталон = СтроковыеФункции.ПрочитатьФайл(ПутьКЭталону); + Конфигурация = ПодготовитьКонфигурациюЭкспорта(Тип, ИмяЭкспортера); + ПутьКФайлу = ОбъединитьПути(Конфигурация.КаталогАртефактов(), "БенчмаркиДляЭкспорта-report." + Расширение); // Действие Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - Текст = СтроковыеФункции.ПрочитатьФайл(ПутьКФайлу); + Ожидаем.Что(СтроковыеФункции.ПрочитатьФайл(ПутьКФайлу)).Равно(ТекстЭталон); - Ожидаем.Что(Текст).Равно(ТекстЭталон); - КонецПроцедуры &Тест -Процедура Тест_ЭкспортВJson() Экспорт +Процедура ТестДолжен_НеСоздаватьАртефактыБезЭкспортеров() Экспорт Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда Возврат; @@ -56,58 +46,48 @@ // Подготовка Тип = Тип("БенчмаркиДляЭкспорта"); - - ТекстЭталон = СтроковыеФункции.ПрочитатьФайл("tests/fixtures/verified-report.json"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Конфигурация - .ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаВремени", СобытияБенчмарков.ПослеКаждогоКейса) - .ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаМокСредыОкружения", СобытияБенчмарков.ПослеВсех) - .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Json) - .УстановитьКоличествоИтераций(10); - - ПутьКФайлу = ОбъединитьПути(Конфигурация.КаталогАртефактов(), "БенчмаркиДляЭкспорта-report.json"); + Конфигурация = ПодготовитьКонфигурациюЭкспорта(Тип); + Конфигурация.УдалитьЭкспортеры(); // Действие Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - Текст = СтроковыеФункции.ПрочитатьФайл(ПутьКФайлу); + Ожидаем.Что(НайтиФайлы(Конфигурация.КаталогАртефактов(), "*-report.*")).ИмеетДлину(0); - Ожидаем.Что(Текст).Равно(ТекстЭталон); - КонецПроцедуры -&Тест -Процедура Тест_ЭкспортВHtml() Экспорт - - Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда - Возврат; - КонецЕсли; - - // Подготовка - Тип = Тип("БенчмаркиДляЭкспорта"); - - ТекстЭталон = СтроковыеФункции.ПрочитатьФайл("tests/fixtures/verified-report.html"); +Функция ПодготовитьКонфигурациюЭкспорта(Тип, ИмяЭкспортера = "") Конфигурация = Новый КонфигурацияБенчмарков(Тип); ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); Конфигурация .ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаВремени", СобытияБенчмарков.ПослеКаждогоКейса) - .ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаМокСредыОкружения", СобытияБенчмарков.ПослеВсех) - .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Html); - - ПутьКФайлу = ОбъединитьПути(Конфигурация.КаталогАртефактов(), "БенчмаркиДляЭкспорта-report.html"); + .ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаМокСредыОкружения", СобытияБенчмарков.ПослеВсех); - // Действие - Бенчмаркинг.Запустить(Тип, Конфигурация); + Если ЗначениеЗаполнено(ИмяЭкспортера) Тогда + Конфигурация.ДобавитьЭкспортер(ЭкспортерПоИмени(ИмяЭкспортера)); + КонецЕсли; - // Проверка - Текст = СтроковыеФункции.ПрочитатьФайл(ПутьКФайлу); + Если ИмяЭкспортера = "Json" Тогда + Конфигурация.УстановитьКоличествоИтераций(10); + КонецЕсли; + + Возврат Конфигурация; + +КонецФункции + +Функция ЭкспортерПоИмени(ИмяЭкспортера) + + Если ИмяЭкспортера = "Markdown" Тогда + Возврат ЭкспортерыРезультатовБенчмарков.Markdown; + ИначеЕсли ИмяЭкспортера = "Json" Тогда + Возврат ЭкспортерыРезультатовБенчмарков.Json; + ИначеЕсли ИмяЭкспортера = "Html" Тогда + Возврат ЭкспортерыРезультатовБенчмарков.Html; + КонецЕсли; + + ВызватьИсключение СтрШаблон("Неизвестный экспортер <%1>", ИмяЭкспортера); - Ожидаем.Что(Текст).Равно(ТекстЭталон); - -КонецПроцедуры \ No newline at end of file +КонецФункции From 86611a439c7b405e0eb37247b3558b1eda8fd4a0 Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Wed, 25 Mar 2026 14:17:49 +0300 Subject: [PATCH 02/12] fix --- ...21\207\320\274\320\260\321\200\320\272\320\276\320\262.os" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\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\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index c27d7ed..ce78810 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\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\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -73,7 +73,7 @@ Процедура ТестДолжен_ПродолжитьХолодныйЗапускПоЧекпоинтуИзмерения() Экспорт // Подготовка - Тип = Тип("БенчмаркСПараметрамиМетода"); + Тип = Тип("ПустойБенчмарк"); Конфигурация = Новый КонфигурацияБенчмарков(Тип); ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); Конфигурация @@ -139,4 +139,4 @@ Ожидаем.Что(ВторойРезультат.Запуски[0].Замеры, "Замеры второго запуска").ИмеетДлину(1); Ожидаем.Что(ВторойРезультат.Запуски[0].Замеры[0].Этап, "Этап замера второго запуска").Равно(ЭтапыБенчмарка.Память); -КонецПроцедуры +КонецПроцедуры \ No newline at end of file From 2ff57065b07892882bbb1e16d844165d00b539e2 Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Wed, 25 Mar 2026 18:27:34 +0300 Subject: [PATCH 03/12] =?UTF-8?q?=D0=A2=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\260\321\200\320\272\320\276\320\262.os" | 822 ---------------- ...20\260\321\200\320\272\320\276\320\262.os" | 162 ++++ ...20\260\321\200\320\272\320\276\320\262.os" | 8 + ...20\260\321\200\320\272\320\276\320\262.os" | 172 ++++ ...20\274\320\265\321\200\320\276\320\262.os" | 128 ++- ...20\260\321\200\320\272\320\276\320\262.os" | 466 +++++++++ ...20\260\321\200\320\272\320\276\320\262.os" | 41 +- ...20\260\321\200\320\272\320\276\320\262.os" | 6 +- ...20\260\321\200\320\272\320\276\320\262.os" | 59 ++ ...20\265\321\202\321\200\320\276\320\262.os" | 119 ++- ...20\260\321\200\320\272\320\276\320\262.os" | 287 ++++++ ...21\200\320\260\321\206\320\270\320\270.os" | 910 ------------------ ...20\260\321\200\320\272\320\276\320\262.os" | 12 + ...20\260\321\200\320\272\320\276\320\262.os" | 144 +++ ...20\260\321\200\320\272\320\276\320\262.os" | 202 ++++ ...20\260\321\200\320\272\320\276\320\262.os" | 290 ++++++ ...20\260\321\200\320\272\320\276\320\262.os" | 213 ++++ ...260\321\200\320\272\320\276\320\262CLI.os" | 10 +- ...20\274\320\260\321\200\320\272\320\260.os" | 19 +- ...20\260\321\200\320\272\320\276\320\262.os" | 162 ++++ ...21\202\320\265\320\273\320\265\320\271.os" | 6 +- ...20\260\321\200\320\272\320\276\320\262.os" | 16 +- ...20\260\321\200\320\272\320\276\320\262.os" | 27 +- ...21\201\321\202\320\270\320\272\320\270.os" | 58 +- ...20\260\320\277\321\203\321\201\320\272.os" | 32 +- ...20\274\320\260\321\200\320\272\320\260.os" | 18 +- ...21\202\320\265\321\200\320\276\320\262.os" | 14 +- ...20\273\320\276\320\275\320\276\320\262.os" | 22 +- 28 files changed, 2584 insertions(+), 1841 deletions(-) delete mode 100644 "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" create mode 100644 "tests/\320\242\320\265\321\201\321\202\321\213\320\222\320\260\320\273\320\270\320\264\320\260\321\206\320\270\320\270\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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/\320\242\320\265\321\201\321\202\321\213\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" create mode 100644 "tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\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/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\320\277\320\276\320\273\320\275\321\217\321\216\321\211\320\270\321\205\320\241\321\200\320\265\320\264\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\273\320\276\320\275\320\276\320\272\320\230\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" delete mode 100644 "tests/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" create mode 100644 "tests/\320\242\320\265\321\201\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\276\320\262\320\241\320\276\320\261\321\213\321\202\320\270\320\271\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/\320\242\320\265\321\201\321\202\321\213\320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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/\320\242\320\265\321\201\321\202\321\213\320\236\321\201\320\275\320\276\320\262\320\275\321\213\321\205\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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/\320\242\320\265\321\201\321\202\321\213\320\236\321\202\321\207\320\265\321\202\320\260\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/\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" 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" deleted file mode 100644 index a9d37b9..0000000 --- "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" +++ /dev/null @@ -1,822 +0,0 @@ -// BSLLS:LineLength-off -// BSLLS:DuplicateStringLiteral-off -// BSLLS:MagicNumber-off - -#Использовать asserts -#Использовать fluent -#Использовать fs -#Использовать tempfiles -#Использовать "helpers" -#Использовать "fixtures/benchmarks" - -Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов - -&Инициализация -Процедура ПередВсеми() Экспорт - - _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); - -КонецПроцедуры - -&После -Процедура ПослеЗапускаТеста() Экспорт - - КаталогАртефактов = ".\BenchmarkArtifacts"; - - ФС.УдалитьФайлы(КаталогАртефактов); - -КонецПроцедуры - -&Завершение -Процедура ПослеВсех() Экспорт - - _МенеджерВременныхФайлов.Удалить(); - -КонецПроцедуры - -&Тест -Процедура Тест_ЗапускБенчмарковИзКаталога() Экспорт - - Каталог = "./tests/fixtures/БенчмаркиЧерезКаталог"; - - Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог); - - Ожидаем.Что(Результат).ИмеетДлину(2); - Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога1", "ИмяФайла")).Заполнено(); - Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога2", "ИмяФайла")).Заполнено(); - -КонецПроцедуры - -&Тест -Процедура Тест_ЗапускБенчмарковИзКаталогаРекурсивно() Экспорт - - Каталог = "./tests/fixtures/БенчмаркиЧерезКаталог"; - - Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог, Истина); - - Ожидаем.Что(Результат).ИмеетДлину(3); - Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога1", "ИмяФайла")).Заполнено(); - Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога2", "ИмяФайла")).Заполнено(); - Ожидаем.Что(Результат.Найти("БенчмаркИзВложенногоКаталога", "ИмяФайла")).Заполнено(); - -КонецПроцедуры - -&Тест -Процедура Тест_ЗапускБенчмарковИзНесуществующегоКаталога() Экспорт - - Каталог = "./tests/fixtures/Классы/НесуществующийКаталог"; - - Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог); - - Ожидаем.Что(Результат).ИмеетДлину(0); - -КонецПроцедуры - -&Тест -Процедура Тест_ЗапускБенчмарковСОшибкой() Экспорт - - Каталог = "./tests/fixtures/БенчмаркиСОшибкой"; - - Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог); - - Ожидаем.Что(Результат).ИмеетДлину(2); - Ожидаем.Что(Результат.Найти(Истина, "Успешно")).Заполнено(); - Ожидаем.Что(Результат.Найти(Ложь, "Успешно")).Заполнено(); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ПодключитьНесуществующегоФайлБенчмарка() Экспорт - - ПутьКФайлу = "./tests/fixtures/Классы/БенчмаркНесуществующий.os"; - - Тип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлу); - - Ожидаем.Что(Тип).ЭтоНеопределено(); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ПодключитьФайлБезБенчмарков() Экспорт - - ПутьКФайлу = "./tests/fixtures/Классы/БенчмаркБезБенчмарков.os"; - - Тип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлу); - - Ожидаем.Что(Тип).ЭтоНеопределено(); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_УбратьЦифрыВНачалеИмениТипаПриПодключенииФайла() Экспорт - - // Подготовка - Каталог = _МенеджерВременныхФайлов.СоздатьКаталог(); - ПутьКФайлу = ОбъединитьПути(Каталог, "123ТестовыйБенчмарк.os"); - - Код = " - |&Бенчмарк - |Процедура Бенчмарк() Экспорт - |КонецПроцедуры"; - - ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8); - ЗаписьТекста.Записать(Код); - ЗаписьТекста.Закрыть(); - - // Действие - Тип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлу); - - // Проверка - Ожидаем.Что(Строка(Тип)).Равно("ТестовыйБенчмарк"); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ПодключитьБенчмаркСУникальнымТипомПриКоллизииИмен() Экспорт - - // Подготовка - Каталог = _МенеджерВременныхФайлов.СоздатьКаталог(); - ПутьКФайлу = ОбъединитьПути(Каталог, "ПустойБенчмарк.os"); - - Код = " - |&Бенчмарк - |Процедура Бенчмарк() Экспорт - |КонецПроцедуры"; - - ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8); - ЗаписьТекста.Записать(Код); - ЗаписьТекста.Закрыть(); - - // Действие - Тип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлу); - ИмяТипа = Строка(Тип); - - // Проверка - Ожидаем.Что(ИмяТипа).Не_().Равно("ПустойБенчмарк"); - Ожидаем.Что(Лев(ИмяТипа, СтрДлина("ПустойБенчмарк_"))).Равно("ПустойБенчмарк_"); - Ожидаем.Что(Тип).Не_().Равно(Тип("ПустойБенчмарк")); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ПередатьФактическийТипВСценарийИзолированногоЗапуска() Экспорт - - // Подготовка - Каталог = _МенеджерВременныхФайлов.СоздатьКаталог(); - ПутьКФайлу = ОбъединитьПути(Каталог, "ПустойБенчмарк.os"); - - Код = " - |&Бенчмарк - |Процедура Бенчмарк() Экспорт - |КонецПроцедуры"; - - ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8); - ЗаписьТекста.Записать(Код); - ЗаписьТекста.Закрыть(); - - ПодключенныйТип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлу); - Конфигурация = Новый КонфигурацияБенчмарков(ПодключенныйТип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - Конфигурация.УстановитьСтратегию(СтратегииЗапускаБенчмарка.ХолодныйЗапуск); - - // Действие - Результат = Бенчмаркинг.Запустить(ПодключенныйТип, Конфигурация); - Дескриптор = Результат.ДескрипторыБенчмарков.ПолучитьПервый(); - Запуск = Результат.Запуски[0]; - - // Проверка - Ожидаем.Что(Результат.ДескрипторыБенчмарков.Количество()).Равно(1); - Ожидаем.Что(Результат.Запуски.Количество()).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица.Количество()).Равно(1); - - Ожидаем.Что(Дескриптор.ТипКласса()).Равно(ПодключенныйТип); - Ожидаем.Что(Запуск.Кейс.ДескрипторБенчмарка()).Равно(Дескриптор); - Ожидаем.Что(Запуск.Кейс.ДескрипторБенчмарка().ТипКласса()).Равно(ПодключенныйТип); - Ожидаем.Что(Запуск.Кейс.ДескрипторБенчмарка().ТипКласса()).Не_().Равно(Тип("ПустойБенчмарк")); - Ожидаем.Что(Запуск.Замеры.Количество()).Равно(1); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ПроверитьЗапретЗапускаСРазнымиТипамиОбъектов() Экспорт - - Коллекция1 = Новый КоллекцияДескрипторовБенчмарков(Тип("БенчмаркСПараметрамиМетода")); - Коллекция2 = Новый КоллекцияДескрипторовБенчмарков(Тип("БенчмаркиПоКатегориям")); - - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(); - ДескрипторыБенчмарков.Добавить(Коллекция1.ПолучитьПервый()); - ДескрипторыБенчмарков.Добавить(Коллекция2.ПолучитьПервый()); - - ПараметрыМетода = Новый Массив(); - ПараметрыМетода.Добавить(ДескрипторыБенчмарков); - - Ожидаем - .Что(Бенчмаркинг) - .Метод("Запустить", ПараметрыМетода) - .ВыбрасываетИсключение("Обнаружены бенчмарки из разных классов"); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ЗапуститьБенчмаркЧерезДескриптор() Экспорт - - Тип = Тип("ПустойБенчмарк"); - - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - Дескриптор = ДескрипторыБенчмарков.ПолучитьПервый(); - - Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию(); - Результат = Бенчмаркинг.Запустить(Дескриптор, Конфигурация); - - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); - Ожидаем.Что(Результат.Запуски).Заполнено(); - -КонецПроцедуры - -#Область Параметры - -&Тест -Процедура ТестДолжен_ЗапуститьБенчмаркСПараметрамиМетодаИзАннотаций() Экспорт - - // Подготовка - Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию(); - - // Действие - Результат = Бенчмаркинг.Запустить(Тип("БенчмаркСПараметрамиМетода"), Конфигурация); - НаборыПараметров = Результат.ДескрипторыБенчмарков.ПолучитьПервый().НаборыПараметров(); - - // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(10); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(100); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(20); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(200); - Ожидаем.Что(НаборыПараметров[0].Получить(0).ЭтоПараметрМетода()).ЭтоИстина(); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ЗапуститьБенчмаркСПараметрамиМетодаИОбщегоПоляИзАннотаций() Экспорт - - // Подготовка - Тип = Тип("БенчмаркСПараметрамиМетодаИПоля"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - // Действие - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - - // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(4); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(3); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(4); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(5); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(6); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")]).Равно(2); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(3); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(4); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")]).Равно(2); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(5); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(6); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ЗапуститьБенчмаркСУстановкойПараметровМетода() Экспорт - - // Подготовка - Параметры1 = Новый Массив(); - Параметры1.Добавить(50); - Параметры1.Добавить(150); - - Параметры2 = Новый Массив(); - Параметры2.Добавить(Новый ПараметрБенчмарка("Парам1", 200, Истина)); - Параметры2.Добавить(Новый ПараметрБенчмарка("Парам2", 250, Истина)); - - Тип = Тип("БенчмаркСПараметрамиМетода"); - - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк").ОчиститьПараметры(); - - // Действие - Дескриптор.ДобавитьПараметры(Параметры1); - Дескриптор.ДобавитьПараметры(Параметры2); - - Результат = Бенчмаркинг.Запустить(Дескриптор, ТестированиеБенчмарков.КонфигурацияПоУмолчанию()); - - // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(50); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(150); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(200); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(250); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_СкопироватьДескрипторБенчмарка() Экспорт - - // Подготовка - Тип = Тип("БенчмаркСПараметрамиМетода"); - - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк") - .ДобавитьИсточникПараметров("Источник1") - .ДобавитьИсточникПараметров("Источник2") - .ИспользоватьКакЭталон() - .УстановитьКатегорию("Категория") - .УстановитьНаименование("Наименование для копии"); - - // Действие - КопияДескриптора = Дескриптор.Скопировать(); - - // Проверка - НаборыПараметров = КопияДескриптора.НаборыПараметров(); - ИсточникиПараметров = КопияДескриптора.ИсточникиПараметров(); - - Ожидаем.Что(НаборыПараметров[0].Получить(0).Значение()).Равно(10); - Ожидаем.Что(НаборыПараметров[0].Получить(1).Значение()).Равно(100); - Ожидаем.Что(НаборыПараметров[1].Получить(0).Значение()).Равно(20); - Ожидаем.Что(НаборыПараметров[1].Получить(1).Значение()).Равно(200); - Ожидаем.Что(КопияДескриптора.ЭтоЭталон()).ЭтоИстина(); - Ожидаем.Что(КопияДескриптора.Категория()).Равно("Категория"); - Ожидаем.Что(КопияДескриптора.Наименование()).Равно("Наименование для копии"); - Ожидаем.Что(ИсточникиПараметров[0]).Равно("Источник1"); - Ожидаем.Что(ИсточникиПараметров[1]).Равно("Источник2"); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ВыброситьИсключениеПриПревышенииКоличестваПереданныхПараметровМетодаВБольшуюСторону() Экспорт - - // Подготовка - Тип = Тип("БенчмаркСПараметрамиМетода"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк").ОчиститьПараметры(); - - ПараметрыБенчмарка = Новый Массив(); - ПараметрыБенчмарка.Добавить(50); - ПараметрыБенчмарка.Добавить(150); - ПараметрыБенчмарка.Добавить(250); - - ПараметрыМетода = Новый Массив(); - ПараметрыМетода.Добавить(ПараметрыБенчмарка); - - // Действие и Проверка - Ожидаем - .Что(Дескриптор) - .Метод("ДобавитьПараметры", ПараметрыМетода) - .ВыбрасываетИсключение("Количество переданных параметров (3) не соответствует ожидаемому количеству (2) для метода бенчмарка <Бенчмарк>."); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ВыброситьИсключениеПриПревышенииКоличестваПереданныхПараметровМетодаВМеньшуюСторону() Экспорт - - // Подготовка - Тип = Тип("БенчмаркСПараметрамиМетода"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк").ОчиститьПараметры(); - - ПараметрыБенчмарка = Новый Массив(); - ПараметрыБенчмарка.Добавить(50); - - ПараметрыМетода = Новый Массив(); - ПараметрыМетода.Добавить(ПараметрыБенчмарка); - - // Действие и Проверка - Ожидаем - .Что(Дескриптор) - .Метод("ДобавитьПараметры", ПараметрыМетода) - .ВыбрасываетИсключение("Количество переданных параметров (1) не соответствует ожидаемому количеству (2) для метода бенчмарка <Бенчмарк>."); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ВыброситьИсключениеПриПередачеПараметровКогдаМетодНеИмеетПараметров() Экспорт - - // Подготовка - Тип = Тип("ПустойБенчмарк"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк").ОчиститьПараметры(); - - ПараметрыМетода = Новый Массив(); - ПараметрыМетода.Добавить(100); - - // Действие и Проверка - Ожидаем - .Что(Дескриптор) - .Метод("ДобавитьПараметры", ПараметрыМетода) - .ВыбрасываетИсключение("Метод бенчмарка <Бенчмарк> не имеет объявленных параметров. Передача параметров невозможна."); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ВыброситьИсключениеПриДобавленииОдиночногоПараметра() Экспорт - - // Подготовка - Тип = Тип("БенчмаркСПараметрамиМетода"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк").ОчиститьПараметры(); - - ПараметрыМетода = Новый Массив(); - ПараметрыМетода.Добавить(100); - - // Действие и Проверка - Ожидаем - .Что(Дескриптор) - .Метод("ДобавитьПараметры", ПараметрыМетода) - .ВыбрасываетИсключение("Передача одиночного значения недопустима для метода бенчмарка <Бенчмарк>, так как он ожидает 2 параметра(ов)."); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ВыброситьИсключениеПриДобавленииПараметраОбщегоПоля() Экспорт - - // Подготовка - Тип = Тип("БенчмаркСПараметрамиМетода"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк").ОчиститьПараметры(); - - ПараметрыБенчмарка = Новый Массив(); - ПараметрыБенчмарка.Добавить(Новый ПараметрБенчмарка("Парам1", 50, Ложь)); - ПараметрыБенчмарка.Добавить(Новый ПараметрБенчмарка("Парам1", 150, Истина)); - - ПараметрыМетода = Новый Массив(); - ПараметрыМетода.Добавить(ПараметрыБенчмарка); - - // Действие и Проверка - Ожидаем - .Что(Дескриптор) - .Метод("ДобавитьПараметры", ПараметрыМетода) - .ВыбрасываетИсключение("Параметр бенчмарка должен относиться к параметрам метода"); - -КонецПроцедуры - -#КонецОбласти - -&Тест -Процедура Тест_КатегорииИзАннотации() Экспорт - - Тип = Тип("БенчмаркиПоКатегориям"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - - ИмяКолонки = КолонкиОтчетаБенчмарков.Категория; - - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(4); - Ожидаем.Что(Результат.Отчет.Таблица[0][ИмяКолонки]).Равно("А"); - Ожидаем.Что(Результат.Отчет.Таблица[1][ИмяКолонки]).Равно("А"); - Ожидаем.Что(Результат.Отчет.Таблица[2][ИмяКолонки]).Равно("Б"); - Ожидаем.Что(Результат.Отчет.Таблица[3][ИмяКолонки]).Равно("Б"); - -КонецПроцедуры - -&Тест -Процедура Тест_УстановкаКатегории() Экспорт - - Тип = Тип("ПустойБенчмарк"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - ДескрипторыБенчмарков.ПолучитьПервый().УстановитьКатегорию("В"); - - Результат = Бенчмаркинг.Запустить(ДескрипторыБенчмарков, Конфигурация); - - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(1); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Категория]).Равно("В"); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_СортироватьОтчетПоМетоду() Экспорт - - Тип = Тип("БенчмаркиССортировкой"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - Конфигурация.УстановитьСортировкуОтчета(СортировкиОтчетаБенчмарков.Метод); - - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - - Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - - Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_СортироватьОтчетОтБыстрыхКМедленнымИзАннотации() Экспорт - - Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда - Возврат; - КонецЕсли; - - // Подготовка - Тип = Тип("БенчмаркиССортировкой"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Конфигурация.УстановитьСортировкуОтчета(СортировкиОтчетаБенчмарков.ОтБыстрыхКМедленным); - Конфигурация.ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаВремени", СобытияБенчмарков.ПослеКаждогоКейса); - - // Действие - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - - // Проверка - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - - Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - - Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_СортироватьОтчетОтМедленныхКБыстрым() Экспорт - - Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда - Возврат; - КонецЕсли; - - Тип = Тип("БенчмаркиССортировкой"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Конфигурация.УстановитьСортировкуОтчета(СортировкиОтчетаБенчмарков.ОтМедленныхКБыстрым); - Конфигурация.ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаВремени", СобытияБенчмарков.ПослеКаждогоКейса); - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - - Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - - Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_СортироватьОтчетПоУмолчанию() Экспорт - - Тип = Тип("БенчмаркиССортировкой"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - Конфигурация.УстановитьСортировкуОтчета(СортировкиОтчетаБенчмарков.ПоУмолчанию); - - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - - Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - - Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - -КонецПроцедуры - -&Тест -Процедура Тест_ФильтрацияВНабореДескрипторовБенчмарков() Экспорт - - Тип = Тип("БенчмаркиПоКатегориям"); - - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - ДескрипторыБенчмарков.Фильтровать("Элемент -> Прав(Элемент.Метод(), 1) = ""2"""); - - Ожидаем.Что(ДескрипторыБенчмарков.ВМассив().Количество()).Равно(2); - Ожидаем.Что(ДескрипторыБенчмарков.Получить(0).Метод()).Равно("БенчмаркА2"); - Ожидаем.Что(ДескрипторыБенчмарков.Получить(1).Метод()).Равно("БенчмаркБ2"); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ПроверитьПередачуКонфигурацииПриЗапускеИзКаталога() Экспорт - - Каталог = "./tests/fixtures/БенчмаркиЧерезКаталог"; - Конфигурация = Новый КонфигурацияБенчмарков() - .УстановитьКоличествоИтераций(2); - - Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог, , Конфигурация); - - Ожидаем.Что(Результат, "Результат").Заполнено(); - Ожидаем.Что(Результат[0].Результат.Конфигурация.КоличествоИтераций()).Равно(2); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ПроверитьЗапускВРазныхВерсияхИсполняющейСреды() Экспорт - - ТестированиеБенчмарков.ПодготовитьСреду("dev,stable"); - - Тип = Тип("ПустойБенчмарк"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - Конфигурация.ДобавитьИсполняющуюСреду("dev", "dev"); - Конфигурация.ДобавитьИсполняющуюСреду("stable", "stable"); - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды]).Содержит("dev"); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды]).Содержит("stable"); - -КонецПроцедуры - -&Тест -Процедура Тест_ПроверяетОшибкуЗапускаПриНаличииНесериализуемыхПараметров() Экспорт - - Тип = Тип("БенчмаркСПараметрамиПоля"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Конфигурация - .ОчиститьПараметры() - .ДобавитьПараметр("Значение", Новый Структура("Тест", 1)) - .ДобавитьИсполняющуюСреду("dev") - .ДобавитьИсполняющуюСреду("stable", , Истина); - - ПараметрыМетода = Новый Массив(); - ПараметрыМетода.Добавить(Тип); - ПараметрыМетода.Добавить(Конфигурация); - - Ожидаем - .Что(Бенчмаркинг) - .Метод("Запустить", ПараметрыМетода) - .ВыбрасываетИсключение("Параметр <Значение> имеет непримитивный тип"); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ОбработатьОшибкуУстановкиПоляОбъектаКласса() Экспорт - - Тип = Тип("БенчмаркСПараметрамиПоля"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - Конфигурация.ДобавитьПараметр("ОшибочноеИмя", 100); - - ПараметрыМетода = Новый Массив(); - ПараметрыМетода.Добавить(Тип); - ПараметрыМетода.Добавить(Конфигурация); - - Ожидаем - .Что(Бенчмаркинг) - .Метод("Запустить", ПараметрыМетода) - .ВыбрасываетИсключение("Не удалось задать значение поля <ОшибочноеИмя> для объекта <БенчмаркСПараметрамиПоля>"); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ВыброситьИсключениеНевозможностиОпределенияТипаКласса() Экспорт - - // Подготовка - ПараметрыМетода = Новый Массив(); - ПараметрыМетода.Добавить(Новый КоллекцияДескрипторовБенчмарков()); - ПараметрыМетода.Добавить(ТестированиеБенчмарков.КонфигурацияПоУмолчанию()); - - // Проверка - Ожидаем - .Что(Бенчмаркинг) - .Метод("Запустить", ПараметрыМетода) - .ВыбрасываетИсключение("Не найдено ни одного дескриптора бенчмарка для запуска"); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ИзвлечьНаименованиеИзАннотацииБенчмарк() Экспорт - - // Подготовка - Тип = Тип("БенчмаркСНаименованием"); - - // Действие - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - - // Проверка - ДескрипторСНаименованием = ДескрипторыБенчмарков.НайтиПоИмени("БенчмаркСНаименованием"); - ДескрипторБезНаименования = ДескрипторыБенчмарков.НайтиПоИмени("БенчмаркБезНаименования"); - - Ожидаем.Что(ДескрипторСНаименованием.Наименование()).Равно("Тестовое наименование бенчмарка"); - Ожидаем.Что(ДескрипторБезНаименования.Наименование()).Равно(""); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_УстановитьНаименованиеЧерезМетодДескриптора() Экспорт - - // Подготовка - Тип = Тип("ПустойБенчмарк"); - - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - Дескриптор = ДескрипторыБенчмарков.ПолучитьПервый(); - - // Действие - Дескриптор.УстановитьНаименование("Мое наименование"); - - // Проверка - Ожидаем.Что(Дескриптор.Наименование()).Равно("Мое наименование"); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ВключитьНаименованиеВОтчет() Экспорт - - // Подготовка - Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию(); - - // Действие - Результат = Бенчмаркинг.Запустить(Тип("БенчмаркСНаименованием"), Конфигурация); - - // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); - - ДескрипторСНаименованием = Результат.Отчет.Таблица[0]; - ДескрипторБезНаименования = Результат.Отчет.Таблица[1]; - - Ожидаем.Что(ДескрипторСНаименованием[КолонкиОтчетаБенчмарков.Метод]).Равно("Тестовое наименование бенчмарка"); - Ожидаем.Что(ДескрипторБезНаименования[КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБезНаименования"); - -КонецПроцедуры \ No newline at end of file diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\222\320\260\320\273\320\270\320\264\320\260\321\206\320\270\320\270\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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\222\320\260\320\273\320\270\320\264\320\260\321\206\320\270\320\270\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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..631c5ad --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\222\320\260\320\273\320\270\320\264\320\260\321\206\320\270\320\270\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -0,0 +1,162 @@ +// BSLLS:LineLength-off +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать fluent +#Использовать tempfiles +#Использовать "helpers" +#Использовать "fixtures/benchmarks" + +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов + +#Область ОбработчикиСобытий + +&Инициализация +Процедура ПередВсеми() Экспорт + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); +КонецПроцедуры + +&Завершение +Процедура ПослеВсех() Экспорт + _МенеджерВременныхФайлов.Удалить(); +КонецПроцедуры + +#КонецОбласти + +#Область Тесты + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеПриНевалидномКоличествеИтераций() Экспорт + + // Подготовка + НевалидныеЗначения = Новый Массив(); + НевалидныеЗначения.Добавить(0); + НевалидныеЗначения.Добавить(-10); + + ТекстОшибки = "Количество итераций не может быть меньше 1"; + + Конфигурация = Новый КонфигурацияБенчмарков(); + + Для Каждого НевалидноеЗначение Из НевалидныеЗначения Цикл + + Параметры = Новый Массив(); + Параметры.Добавить(НевалидноеЗначение); + + // Действие и Проверка + Ожидаем + .Что(Конфигурация) + .Метод("УстановитьКоличествоИтераций", Параметры) + .ВыбрасываетИсключение(ТекстОшибки); + + КонецЦикла; + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеПриНевалидномКоличествеВызововЗаИтерацию() Экспорт + + // Подготовка + НевалидныеЗначения = Новый Массив(); + НевалидныеЗначения.Добавить(-10); + + ТекстОшибки = "Количество вызовов за итерацию не может быть меньше 0"; + + Конфигурация = Новый КонфигурацияБенчмарков(); + + Для Каждого НевалидноеЗначение Из НевалидныеЗначения Цикл + + Параметры = Новый Массив(); + Параметры.Добавить(НевалидноеЗначение); + + // Действие и Проверка + Ожидаем + .Что(Конфигурация) + .Метод("УстановитьКоличествоВызововЗаИтерацию", Параметры) + .ВыбрасываетИсключение(ТекстОшибки); + + КонецЦикла; + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеПриНевалидномКоличествеИтерацийПрогрева() Экспорт + + // Подготовка + НевалидныеЗначения = Новый Массив(); + НевалидныеЗначения.Добавить(-10); + + ТекстОшибки = "Количество прогревочных итераций не может быть меньше 0"; + + Конфигурация = Новый КонфигурацияБенчмарков(); + + Для Каждого НевалидноеЗначение Из НевалидныеЗначения Цикл + + Параметры = Новый Массив(); + Параметры.Добавить(НевалидноеЗначение); + + // Действие и Проверка + Ожидаем + .Что(Конфигурация) + .Метод("УстановитьКоличествоПрогревочныхИтераций", Параметры) + .ВыбрасываетИсключение(ТекстОшибки); + + КонецЦикла; + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеПриНевалидномМинимальномВремениИтерации() Экспорт + + // Подготовка + НевалидныеЗначения = Новый Массив(); + НевалидныеЗначения.Добавить(0); + НевалидныеЗначения.Добавить(-10); + + ТекстОшибки = "Минимальное время итерации не может быть меньше 1 мс"; + + Конфигурация = Новый КонфигурацияБенчмарков(); + + Для Каждого НевалидноеЗначение Из НевалидныеЗначения Цикл + + Параметры = Новый Массив(); + Параметры.Добавить(НевалидноеЗначение); + + // Действие и Проверка + Ожидаем + .Что(Конфигурация) + .Метод("УстановитьМинимальноеВремяИтерации", Параметры) + .ВыбрасываетИсключение(ТекстОшибки); + + КонецЦикла; + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеПриНевалидномМинимальномКоличествеВызововЗаИтерацию() Экспорт + + // Подготовка + НевалидныеЗначения = Новый Массив(); + НевалидныеЗначения.Добавить(0); + НевалидныеЗначения.Добавить(-10); + + ТекстОшибки = "Минимальное количество вызовов за итерацию не может быть меньше 1"; + + Конфигурация = Новый КонфигурацияБенчмарков(); + + Для Каждого НевалидноеЗначение Из НевалидныеЗначения Цикл + + Параметры = Новый Массив(); + Параметры.Добавить(НевалидноеЗначение); + + // Действие и Проверка + Ожидаем + .Что(Конфигурация) + .Метод("УстановитьМинимальноеКоличествоВызововЗаИтерацию", Параметры) + .ВыбрасываетИсключение(ТекстОшибки); + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\232\320\265\320\271\321\201\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/tests/\320\242\320\265\321\201\321\202\321\213\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\232\320\265\320\271\321\201\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 4c6f3de..3d484e1 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\232\320\265\320\271\321\201\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/tests/\320\242\320\265\321\201\321\202\321\213\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\232\320\265\320\271\321\201\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" @@ -4,6 +4,8 @@ #Использовать "helpers" #Использовать "fixtures/benchmarks" +#Область Тесты + &Тест Процедура ТестДолжен_СгенерироватьОдинКейсДляБенчмаркаБезПараметров() Экспорт @@ -104,6 +106,10 @@ КонецПроцедуры +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Функция ПредставленияКейсов(Кейсы) Результат = Новый Массив(); @@ -135,3 +141,5 @@ Возврат Неопределено; КонецФункции + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\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/tests/\320\242\320\265\321\201\321\202\321\213\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" new file mode 100644 index 0000000..38e84bd --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\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" @@ -0,0 +1,172 @@ +// BSLLS:LineLength-off +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать fluent +#Использовать fs +#Использовать tempfiles +#Использовать "helpers" +#Использовать "fixtures/benchmarks" + +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов + +#Область ОбработчикиСобытий + +&Инициализация +Процедура ПередВсеми() Экспорт + + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); + +КонецПроцедуры + +&После +Процедура ПослеЗапускаТеста() Экспорт + + КаталогАртефактов = ".\BenchmarkArtifacts"; + + ФС.УдалитьФайлы(КаталогАртефактов); + +КонецПроцедуры + +&Завершение +Процедура ПослеВсех() Экспорт + + _МенеджерВременныхФайлов.Удалить(); + +КонецПроцедуры + +#КонецОбласти + +#Область Тесты + +&Тест +Процедура ТестДолжен_СкопироватьДескрипторБенчмарка() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСПараметрамиМетода"); + + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк") + .ДобавитьИсточникПараметров("Источник1") + .ДобавитьИсточникПараметров("Источник2") + .ИспользоватьКакЭталон() + .УстановитьКатегорию("Категория") + .УстановитьНаименование("Наименование для копии"); + + КопияДескриптора = Дескриптор.Скопировать(); + + // Действие + НаборыПараметров = КопияДескриптора.НаборыПараметров(); + ИсточникиПараметров = КопияДескриптора.ИсточникиПараметров(); + + // Проверка + Ожидаем.Что(НаборыПараметров[0].Получить(0).Значение()).Равно(10); + Ожидаем.Что(НаборыПараметров[0].Получить(1).Значение()).Равно(100); + Ожидаем.Что(НаборыПараметров[1].Получить(0).Значение()).Равно(20); + Ожидаем.Что(НаборыПараметров[1].Получить(1).Значение()).Равно(200); + Ожидаем.Что(КопияДескриптора.ЭтоЭталон()).ЭтоИстина(); + Ожидаем.Что(КопияДескриптора.Категория()).Равно("Категория"); + Ожидаем.Что(КопияДескриптора.Наименование()).Равно("Наименование для копии"); + Ожидаем.Что(ИсточникиПараметров[0]).Равно("Источник1"); + Ожидаем.Что(ИсточникиПараметров[1]).Равно("Источник2"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ИзвлечьКатегорииИзАннотации() Экспорт + + // Подготовка + Тип = Тип("БенчмаркиПоКатегориям"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + ИмяКолонки = КолонкиОтчетаБенчмарков.Категория; + + Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(4); + Ожидаем.Что(Результат.Отчет.Таблица[0][ИмяКолонки]).Равно("А"); + Ожидаем.Что(Результат.Отчет.Таблица[1][ИмяКолонки]).Равно("А"); + Ожидаем.Что(Результат.Отчет.Таблица[2][ИмяКолонки]).Равно("Б"); + Ожидаем.Что(Результат.Отчет.Таблица[3][ИмяКолонки]).Равно("Б"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_УстановитьКатегориюЧерезМетодДескриптора() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + ДескрипторыБенчмарков.ПолучитьПервый().УстановитьКатегорию("В"); + + // Действие + Результат = Бенчмаркинг.Запустить(ДескрипторыБенчмарков, Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(1); + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Категория]).Равно("В"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ОтфильтроватьНаборДескрипторовБенчмарков() Экспорт + + // Подготовка + Тип = Тип("БенчмаркиПоКатегориям"); + + // Действие + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + ДескрипторыБенчмарков.Фильтровать("Элемент -> Прав(Элемент.Метод(), 1) = ""2"""); + + // Проверка + Ожидаем.Что(ДескрипторыБенчмарков.ВМассив().Количество()).Равно(2); + Ожидаем.Что(ДескрипторыБенчмарков.Получить(0).Метод()).Равно("БенчмаркА2"); + Ожидаем.Что(ДескрипторыБенчмарков.Получить(1).Метод()).Равно("БенчмаркБ2"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ИзвлечьНаименованиеИзАннотацииБенчмарк() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСНаименованием"); + + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + + // Действие + ДескрипторСНаименованием = ДескрипторыБенчмарков.НайтиПоИмени("БенчмаркСНаименованием"); + ДескрипторБезНаименования = ДескрипторыБенчмарков.НайтиПоИмени("БенчмаркБезНаименования"); + + // Проверка + Ожидаем.Что(ДескрипторСНаименованием.Наименование()).Равно("Тестовое наименование бенчмарка"); + Ожидаем.Что(ДескрипторБезНаименования.Наименование()).Равно(""); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_УстановитьНаименованиеЧерезМетодДескриптора() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Дескриптор = ДескрипторыБенчмарков.ПолучитьПервый(); + + // Действие + Дескриптор.УстановитьНаименование("Мое наименование"); + + // Проверка + Ожидаем.Что(Дескриптор.Наименование()).Равно("Мое наименование"); + +КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\321\200\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\321\200\320\276\320\262.os" index 82cbf6e..9e3f38c 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\321\200\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\321\200\320\276\320\262.os" @@ -5,18 +5,26 @@ #Использовать "helpers" #Использовать "fixtures/benchmarks" +#Область Тесты + &Тест Процедура ТестДолжен_ИзмеритьВыделяемуюПамятьБуфераДвоичныхДанных() Экспорт // Подготовка РазмерВБайтах = 1024 * 1024; Тип = Тип("БенчмаркБуферДвоичныхДанных"); - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - ДескрипторБенчмарка = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк"); - ДескрипторБенчмарка.ДобавитьПараметры(РазмерВБайтах); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .УстановитьКоличествоИтераций(3) + .УстановитьКоличествоПрогревочныхИтераций(1) + .УстановитьКоличествоВызововЗаИтерацию(3); + + ДескрипторБенчмарка = Новый КоллекцияДескрипторовБенчмарков(Тип) + .ПолучитьПервый() + .ДобавитьПараметры(РазмерВБайтах); // Действие - Результат = Бенчмаркинг.Запустить(ДескрипторБенчмарка); + Результат = Бенчмаркинг.Запустить(ДескрипторБенчмарка, Конфигурация); // Проверка ВыделеноБайт = Результат.Запуски[0].Статистика.ВыделяемаяПамять; @@ -31,16 +39,18 @@ // Подготовка Тип = Тип("ПустойБенчмарк"); + Конфигурация = Новый КонфигурацияБенчмарков(Тип) - .УстановитьКоличествоИтераций(5) + .УстановитьКоличествоИтераций(3) .УстановитьКоличествоПрогревочныхИтераций(0) + .УстановитьКоличествоВызововЗаИтерацию(3) .ДобавитьМониторингПамяти(); // Действие Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - Ожидаем.Что(Результат.Запуски[0].Статистика.ВыделяемаяПамять).Между(1, 2000); + Ожидаем.Что(Результат.Запуски[0].Статистика.ВыделяемаяПамять).Между(1, 3000); КонецПроцедуры @@ -49,9 +59,11 @@ // Подготовка Тип = Тип("ПустойБенчмарк"); + Конфигурация = Новый КонфигурацияБенчмарков(Тип) - .УстановитьКоличествоИтераций(5) - .УстановитьКоличествоПрогревочныхИтераций(0); + .УстановитьКоличествоИтераций(2) + .УстановитьКоличествоПрогревочныхИтераций(0) + .УстановитьКоличествоВызововЗаИтерацию(3); // Действие Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); @@ -61,15 +73,111 @@ КонецПроцедуры +&Тест +Процедура ТестДолжен_НеСоздаватьЗамерыПамятиБезПрофилированияПамяти() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .УстановитьКоличествоИтераций(2) + .УстановитьКоличествоПрогревочныхИтераций(0) + .УстановитьКоличествоВызововЗаИтерацию(3); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + ЗамерПамяти = Результат.Запуски[0].НайтиИтерациюЗамера(ЭтапыБенчмарка.Память, 1); + + Ожидаем.Что(ЗамерПамяти).ЭтоНеопределено(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_РассчитатьВремяЗаОперациюПриНесколькихВызовахЗаИтерацию() Экспорт + + // Подготовка + КоличествоВызововЗаИтерацию = 3; + Тип = Тип("БенчмаркиСЗадержкой"); + + ДескрипторБенчмарка = Новый КоллекцияДескрипторовБенчмарков(Тип) + .НайтиПоИмени("Задержка10"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .УстановитьКоличествоИтераций(1) + .УстановитьКоличествоПрогревочныхИтераций(0) + .УстановитьКоличествоВызововЗаИтерацию(КоличествоВызововЗаИтерацию); + + // Действие + Результат = Бенчмаркинг.Запустить(ДескрипторБенчмарка, Конфигурация); + + // Проверка + Замер = Результат.Запуски[0].НайтиИтерациюЗамера(ЭтапыБенчмарка.Измерение, 1); + КоэффициентОпераций = Замер.Наносекунд / Замер.НаносекундЗаОперацию; + Статистика = Результат.Запуски[0].Статистика.ВМиллисекунды(); + + Ожидаем.Что(Замер.КоличествоОпераций).Равно(КоличествоВызововЗаИтерацию); + Ожидаем.Что(КоэффициентОпераций).Между( + КоличествоВызововЗаИтерацию - 0.01, + КоличествоВызововЗаИтерацию + 0.01 + ); + Ожидаем.Что(Статистика.Среднее).Между(10, 20); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_РассчитатьВыделяемуюПамятьЗаОперациюПриНесколькихВызовахЗаИтерацию() Экспорт + + // Подготовка + РазмерВБайтах = 256 * 1024; + КоличествоВызововЗаИтерацию = 4; + Тип = Тип("БенчмаркБуферДвоичныхДанных"); + + ДескрипторБенчмарка = Новый КоллекцияДескрипторовБенчмарков(Тип) + .НайтиПоИмени("Бенчмарк") + .ДобавитьПараметры(РазмерВБайтах); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .УстановитьКоличествоИтераций(1) + .УстановитьКоличествоПрогревочныхИтераций(0) + .УстановитьКоличествоВызововЗаИтерацию(КоличествоВызововЗаИтерацию); + + // Действие + Результат = Бенчмаркинг.Запустить(ДескрипторБенчмарка, Конфигурация); + + // Проверка + Замер = Результат.Запуски[0].НайтиИтерациюЗамера(ЭтапыБенчмарка.Память, 1); + КоэффициентОпераций = Замер.ВыделяемаяПамять / Замер.ВыделяемаяПамятьЗаОперацию; + КоэффициентРазмера = РазмерВБайтах / Результат.Запуски[0].Статистика.ВыделяемаяПамять; + + Ожидаем.Что(Замер.КоличествоОпераций).Равно(КоличествоВызововЗаИтерацию); + Ожидаем.Что(КоэффициентОпераций).Между( + КоличествоВызововЗаИтерацию - 0.01, + КоличествоВызововЗаИтерацию + 0.01 + ); + Ожидаем.Что(КоэффициентРазмера).Между(0.95, 1.05); + +КонецПроцедуры + &Тест Процедура ТестДолжен_РассчитатьПоказателиПроизводительности() Экспорт + // Подготовка + Тип = Тип("БенчмаркиСЗадержкой"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .УстановитьКоличествоИтераций(3) + .УстановитьКоличествоПрогревочныхИтераций(0) + .УстановитьКоличествоВызововЗаИтерацию(3); + // Действие - Результат = Бенчмаркинг.Запустить(Тип("БенчмаркиСЗадержкой")); + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка Запуски = Результат.Запуски; Отчет = Результат.Отчет; + Статистика1 = Запуски[0].Статистика.ВМиллисекунды(); Статистика2 = Запуски[1].Статистика.ВМиллисекунды(); @@ -85,3 +193,5 @@ Ожидаем.Что(Отчет.Таблица[1][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Больше(1); КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\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\227\320\260\320\277\321\203\321\201\320\272\320\260\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..aeb9315 --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -0,0 +1,466 @@ +// BSLLS:LineLength-off +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать fluent +#Использовать fs +#Использовать tempfiles +#Использовать "helpers" +#Использовать "fixtures/benchmarks" + +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов + +#Область ОбработчикиСобытий + +&Инициализация +Процедура ПередВсеми() Экспорт + + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); + +КонецПроцедуры + +&После +Процедура ПослеЗапускаТеста() Экспорт + + КаталогАртефактов = ".\BenchmarkArtifacts"; + + ФС.УдалитьФайлы(КаталогАртефактов); + +КонецПроцедуры + +&Завершение +Процедура ПослеВсех() Экспорт + + _МенеджерВременныхФайлов.Удалить(); + +КонецПроцедуры + +#КонецОбласти + +#Область Тесты + +&Тест +Процедура ТестДолжен_ЗапуститьБенчмаркиИзКаталога() Экспорт + + // Подготовка + Каталог = "./tests/fixtures/БенчмаркиЧерезКаталог"; + + // Действие + Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог); + + // Проверка + Ожидаем.Что(Результат).ИмеетДлину(2); + Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога1", "ИмяФайла")).Заполнено(); + Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога2", "ИмяФайла")).Заполнено(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ЗапуститьБенчмаркиИзКаталогаРекурсивно() Экспорт + + // Подготовка + Каталог = "./tests/fixtures/БенчмаркиЧерезКаталог"; + + // Действие + Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог, Истина); + + // Проверка + Ожидаем.Что(Результат).ИмеетДлину(3); + Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога1", "ИмяФайла")).Заполнено(); + Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога2", "ИмяФайла")).Заполнено(); + Ожидаем.Что(Результат.Найти("БенчмаркИзВложенногоКаталога", "ИмяФайла")).Заполнено(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВернутьПустойРезультатПриЗапускеИзНесуществующегоКаталога() Экспорт + + // Подготовка + Каталог = "./tests/fixtures/Классы/НесуществующийКаталог"; + + // Действие + Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог); + + // Проверка + Ожидаем.Что(Результат).ИмеетДлину(0); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВернутьУспешныеИОшибочныеРезультатыПриЗапускеКаталога() Экспорт + + // Подготовка + Каталог = "./tests/fixtures/БенчмаркиСОшибкой"; + + // Действие + Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог); + + // Проверка + Ожидаем.Что(Результат).ИмеетДлину(2); + Ожидаем.Что(Результат.Найти(Истина, "Успешно")).Заполнено(); + Ожидаем.Что(Результат.Найти(Ложь, "Успешно")).Заполнено(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеПриЗапускеСРазнымиТипамиОбъектов() Экспорт + + // Подготовка + Коллекция1 = Новый КоллекцияДескрипторовБенчмарков(Тип("БенчмаркСПараметрамиМетода")); + Коллекция2 = Новый КоллекцияДескрипторовБенчмарков(Тип("БенчмаркиПоКатегориям")); + + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(); + ДескрипторыБенчмарков.Добавить(Коллекция1.ПолучитьПервый()); + ДескрипторыБенчмарков.Добавить(Коллекция2.ПолучитьПервый()); + + ПараметрыМетода = Новый Массив(); + ПараметрыМетода.Добавить(ДескрипторыБенчмарков); + + // Действие и Проверка + Ожидаем + .Что(Бенчмаркинг) + .Метод("Запустить", ПараметрыМетода) + .ВыбрасываетИсключение("Обнаружены бенчмарки из разных классов"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ЗапуститьБенчмаркЧерезДескриптор() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Дескриптор = ДескрипторыБенчмарков.ПолучитьПервый(); + + Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию(); + + // Действие + Результат = Бенчмаркинг.Запустить(Дескриптор, Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); + Ожидаем.Что(Результат.Запуски).Заполнено(); + +КонецПроцедуры + +#Область Параметры + +&Тест +Процедура ТестДолжен_ЗапуститьБенчмаркСПараметрамиМетодаИзАннотаций() Экспорт + + // Подготовка + Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию(); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип("БенчмаркСПараметрамиМетода"), Конфигурация); + + // Проверка + НаборыПараметров = Результат.ДескрипторыБенчмарков.ПолучитьПервый().НаборыПараметров(); + + Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(10); + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(100); + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(20); + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(200); + Ожидаем.Что(НаборыПараметров[0].Получить(0).ЭтоПараметрМетода()).ЭтоИстина(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ЗапуститьБенчмаркСПараметрамиМетодаИОбщегоПоляИзАннотаций() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСПараметрамиМетодаИПоля"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(4); + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(3); + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(4); + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(5); + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(6); + Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(3); + Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(4); + Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(5); + Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(6); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ЗапуститьБенчмаркСУстановкойПараметровМетода() Экспорт + + // Подготовка + Параметры1 = Новый Массив(); + Параметры1.Добавить(50); + Параметры1.Добавить(150); + + Параметры2 = Новый Массив(); + Параметры2.Добавить(Новый ПараметрБенчмарка("Парам1", 200, Истина)); + Параметры2.Добавить(Новый ПараметрБенчмарка("Парам2", 250, Истина)); + + Тип = Тип("БенчмаркСПараметрамиМетода"); + + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк").ОчиститьПараметры(); + + Дескриптор.ДобавитьПараметры(Параметры1); + Дескриптор.ДобавитьПараметры(Параметры2); + + // Действие + Результат = Бенчмаркинг.Запустить(Дескриптор, ТестированиеБенчмарков.КонфигурацияПоУмолчанию()); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(50); + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(150); + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(200); + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(250); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеПриПревышенииКоличестваПереданныхПараметровМетодаВБольшуюСторону() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСПараметрамиМетода"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк").ОчиститьПараметры(); + + ПараметрыБенчмарка = Новый Массив(); + ПараметрыБенчмарка.Добавить(50); + ПараметрыБенчмарка.Добавить(150); + ПараметрыБенчмарка.Добавить(250); + + ПараметрыМетода = Новый Массив(); + ПараметрыМетода.Добавить(ПараметрыБенчмарка); + + // Действие и Проверка + Ожидаем + .Что(Дескриптор) + .Метод("ДобавитьПараметры", ПараметрыМетода) + .ВыбрасываетИсключение("Количество переданных параметров (3) не соответствует ожидаемому количеству (2) для метода бенчмарка <Бенчмарк>."); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеПриПревышенииКоличестваПереданныхПараметровМетодаВМеньшуюСторону() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСПараметрамиМетода"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк").ОчиститьПараметры(); + + ПараметрыБенчмарка = Новый Массив(); + ПараметрыБенчмарка.Добавить(50); + + ПараметрыМетода = Новый Массив(); + ПараметрыМетода.Добавить(ПараметрыБенчмарка); + + // Действие и Проверка + Ожидаем + .Что(Дескриптор) + .Метод("ДобавитьПараметры", ПараметрыМетода) + .ВыбрасываетИсключение("Количество переданных параметров (1) не соответствует ожидаемому количеству (2) для метода бенчмарка <Бенчмарк>."); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеПриПередачеПараметровКогдаМетодНеИмеетПараметров() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк").ОчиститьПараметры(); + + ПараметрыМетода = Новый Массив(); + ПараметрыМетода.Добавить(100); + + // Действие и Проверка + Ожидаем + .Что(Дескриптор) + .Метод("ДобавитьПараметры", ПараметрыМетода) + .ВыбрасываетИсключение("Метод бенчмарка <Бенчмарк> не имеет объявленных параметров. Передача параметров невозможна."); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеПриДобавленииОдиночногоПараметра() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСПараметрамиМетода"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк").ОчиститьПараметры(); + + ПараметрыМетода = Новый Массив(); + ПараметрыМетода.Добавить(100); + + // Действие и Проверка + Ожидаем + .Что(Дескриптор) + .Метод("ДобавитьПараметры", ПараметрыМетода) + .ВыбрасываетИсключение("Передача одиночного значения недопустима для метода бенчмарка <Бенчмарк>, так как он ожидает 2 параметра(ов)."); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеПриДобавленииПараметраОбщегоПоля() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСПараметрамиМетода"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); + Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк").ОчиститьПараметры(); + + ПараметрыБенчмарка = Новый Массив(); + ПараметрыБенчмарка.Добавить(Новый ПараметрБенчмарка("Парам1", 50, Ложь)); + ПараметрыБенчмарка.Добавить(Новый ПараметрБенчмарка("Парам1", 150, Истина)); + + ПараметрыМетода = Новый Массив(); + ПараметрыМетода.Добавить(ПараметрыБенчмарка); + + // Действие и Проверка + Ожидаем + .Что(Дескриптор) + .Метод("ДобавитьПараметры", ПараметрыМетода) + .ВыбрасываетИсключение("Параметр бенчмарка должен относиться к параметрам метода"); + +КонецПроцедуры + +#КонецОбласти + +&Тест +Процедура ТестДолжен_ПередатьКонфигурациюПриЗапускеИзКаталога() Экспорт + + // Подготовка + Каталог = "./tests/fixtures/БенчмаркиЧерезКаталог"; + Конфигурация = Новый КонфигурацияБенчмарков() + .УстановитьКоличествоИтераций(2); + + // Действие + Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог, , Конфигурация); + + // Проверка + Ожидаем.Что(Результат, "Результат").Заполнено(); + Ожидаем.Что(Результат[0].Результат.Конфигурация.КоличествоИтераций()).Равно(2); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ЗапуститьБенчмаркВРазныхИсполняющихСредах() Экспорт + + // Подготовка + ТестированиеБенчмарков.ПодготовитьСреду("dev,stable"); + + Тип = Тип("ПустойБенчмарк"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + Конфигурация.ДобавитьИсполняющуюСреду("dev", "dev"); + Конфигурация.ДобавитьИсполняющуюСреду("stable", "stable"); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды]).Содержит("dev"); + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды]).Содержит("stable"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеПриЗапускеСНесериализуемымиПараметрами() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСПараметрамиПоля"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + Конфигурация + .ОчиститьПараметры() + .ДобавитьПараметр("Значение", Новый Структура("Тест", 1)) + .ДобавитьИсполняющуюСреду("dev") + .ДобавитьИсполняющуюСреду("stable", , Истина); + + ПараметрыМетода = Новый Массив(); + ПараметрыМетода.Добавить(Тип); + ПараметрыМетода.Добавить(Конфигурация); + + // Действие и Проверка + Ожидаем + .Что(Бенчмаркинг) + .Метод("Запустить", ПараметрыМетода) + .ВыбрасываетИсключение("Параметр <Значение> имеет непримитивный тип"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ОбработатьОшибкуУстановкиПоляОбъектаКласса() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСПараметрамиПоля"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + Конфигурация.ДобавитьПараметр("ОшибочноеИмя", 100); + + ПараметрыМетода = Новый Массив(); + ПараметрыМетода.Добавить(Тип); + ПараметрыМетода.Добавить(Конфигурация); + + // Действие и Проверка + Ожидаем + .Что(Бенчмаркинг) + .Метод("Запустить", ПараметрыМетода) + .ВыбрасываетИсключение("Не удалось задать значение поля <ОшибочноеИмя> для объекта <БенчмаркСПараметрамиПоля>"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеНевозможностиОпределенияТипаКласса() Экспорт + + // Подготовка + ПараметрыМетода = Новый Массив(); + ПараметрыМетода.Добавить(Новый КоллекцияДескрипторовБенчмарков()); + ПараметрыМетода.Добавить(ТестированиеБенчмарков.КонфигурацияПоУмолчанию()); + + // Действие и Проверка + Ожидаем + .Что(Бенчмаркинг) + .Метод("Запустить", ПараметрыМетода) + .ВыбрасываетИсключение("Не найдено ни одного дескриптора бенчмарка для запуска"); + +КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\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/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\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 b4f2581..fcd0319 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\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/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\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" @@ -9,6 +9,8 @@ Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов +#Область ОбработчикиСобытий + &Инициализация Процедура ПередВсеми() Экспорт @@ -23,17 +25,22 @@ КонецПроцедуры +#КонецОбласти + +#Область Тесты + &Тест Процедура ТестДолжен_ПодготовитьКаждыйОбычныйФайлИзЯвногоСписка() Экспорт - // Действие - Сообщения = ПолучитьСообщенияПодготовителяФайлаБенчмарка( - МассивФайлов( - "./tests/fixtures/АлгоритмБезАннотации.os", - "./tests/fixtures/АлгоритмБезАннотации2.os" - ) + // Подготовка + ФайлыДляЗапуска = МассивФайлов( + "./tests/fixtures/АлгоритмБезАннотации.os", + "./tests/fixtures/АлгоритмБезАннотации2.os" ); + // Действие + Сообщения = ПолучитьСообщенияПодготовителяФайлаБенчмарка(ФайлыДляЗапуска); + // Проверка Ожидаем.Что(Сообщения).ИмеетДлину(2); Ожидаем.Что(Сообщения[0]).Содержит("для запуска алгоритма из <" + ПолныйПутьКФайлу("./tests/fixtures/АлгоритмБезАннотации.os") + ">"); @@ -44,10 +51,11 @@ &Тест Процедура ТестДолжен_НеПодготавливатьАннотированныйФайл() Экспорт + // Подготовка + ФайлыДляЗапуска = МассивФайлов("./tests/fixtures/benchmarks/Классы/ПустойБенчмарк.os"); + // Действие - Сообщения = ПолучитьСообщенияПодготовителяФайлаБенчмарка( - МассивФайлов("./tests/fixtures/benchmarks/Классы/ПустойБенчмарк.os") - ); + Сообщения = ПолучитьСообщенияПодготовителяФайлаБенчмарка(ФайлыДляЗапуска); // Проверка Ожидаем.Что(Сообщения).ИмеетДлину(0); @@ -57,10 +65,11 @@ &Тест Процедура ТестДолжен_НеПодготавливатьФайлыИзКаталогаСКлассическимиБенчмарками() Экспорт + // Подготовка + ФайлыДляЗапуска = МассивФайлов("./tests/fixtures/БенчмаркиЧерезКаталог"); + // Действие - Сообщения = ПолучитьСообщенияПодготовителяФайлаБенчмарка( - МассивФайлов("./tests/fixtures/БенчмаркиЧерезКаталог") - ); + Сообщения = ПолучитьСообщенияПодготовителяФайлаБенчмарка(ФайлыДляЗапуска); // Проверка Ожидаем.Что(Сообщения).ИмеетДлину(0); @@ -161,7 +170,7 @@ КонецПроцедуры &Тест -Процедура ТестДолжен_СобратьОдинОтчетПоБенчмаркамАлгоритмам() Экспорт +Процедура ТестДолжен_СобратьОдинОтчетПоАлгоритмамБезАннотаций() Экспорт // Подготовка КаталогАртефактов = _МенеджерВременныхФайлов.СоздатьКаталог(); @@ -240,6 +249,10 @@ КонецПроцедуры +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Функция ПолучитьСообщенияПодготовителяФайлаБенчмарка(ФайлыДляЗапуска) КонтекстЛога = ПодключитьАппендерЛога( @@ -366,3 +379,5 @@ Функция ТекстОшибкиНесуществующегоФайлаЗапускателя() Возврат СтрШаблон("Файл <%1> не существует", ИмяНесуществующегоФайлаЗапускателя()); КонецФункции + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\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\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index ce78810..0d45eaa 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\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\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -6,6 +6,8 @@ #Использовать "helpers" #Использовать "fixtures/benchmarks" +#Область Тесты + &Тест Процедура ТестДолжен_ЗапуститьТолькоВыбранныйКейсПоИдентификатору() Экспорт @@ -139,4 +141,6 @@ Ожидаем.Что(ВторойРезультат.Запуски[0].Замеры, "Замеры второго запуска").ИмеетДлину(1); Ожидаем.Что(ВторойРезультат.Запуски[0].Замеры[0].Этап, "Этап замера второго запуска").Равно(ЭтапыБенчмарка.Память); -КонецПроцедуры \ No newline at end of file +КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\320\277\320\276\320\273\320\275\321\217\321\216\321\211\320\270\321\205\320\241\321\200\320\265\320\264\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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\230\321\201\320\277\320\276\320\273\320\275\321\217\321\216\321\211\320\270\321\205\320\241\321\200\320\265\320\264\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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..9708277 --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\320\277\320\276\320\273\320\275\321\217\321\216\321\211\320\270\321\205\320\241\321\200\320\265\320\264\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -0,0 +1,59 @@ +// BSLLS:LineLength-off +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать fluent +#Использовать tempfiles +#Использовать "helpers" +#Использовать "fixtures/benchmarks" + +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов + +#Область ОбработчикиСобытий + +&Инициализация +Процедура ПередВсеми() Экспорт + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); +КонецПроцедуры + +&Завершение +Процедура ПослеВсех() Экспорт + _МенеджерВременныхФайлов.Удалить(); +КонецПроцедуры + +#КонецОбласти + +#Область Тесты + +&Тест +Процедура ТестДолжен_ДобавитьИсполняющуюСреду() Экспорт + + // Подготовка + Конфигурация = Новый КонфигурацияБенчмарков(); + + // Действие + Конфигурация.ДобавитьИсполняющуюСреду("dev"); + + // Проверка + Ожидаем.Что(Конфигурация.ИсполняющиеСреды()).Заполнено(); + Ожидаем.Что(Конфигурация.ИсполняющиеСреды()[0].Версия).Равно("dev"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ОчиститьИсполняющиеСреды() Экспорт + + // Подготовка + Конфигурация = Новый КонфигурацияБенчмарков(); + Конфигурация.ДобавитьИсполняющуюСреду("dev"); + + // Действие + Конфигурация.ОчиститьИсполняющиеСреды(); + + // Проверка + Ожидаем.Что(Конфигурация.ИсполняющиеСреды()).ИмеетДлину(0); + +КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.os" index 7be1836..d672f5f 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.os" @@ -6,9 +6,11 @@ #Использовать "helpers" #Использовать "fixtures/benchmarks" +#Область Тесты + &Тест Процедура ТестДолжен_УстановитьИсточникПараметровДляДескриптора() Экспорт - + // Подготовка ПараметрыЗапуска = ПолучитьПараметрыЗапуска(); Дескриптор = ПараметрыЗапуска.Дескрипторы.НайтиПоИмени("БенчмаркБезПараметров"); @@ -21,15 +23,15 @@ Ожидаем.Что(ИсточникиПараметров).ИмеетДлину(1); Ожидаем.Что(ИсточникиПараметров[0]).Равно("Получить"); - + КонецПроцедуры &Тест Процедура ТестДолжен_ОчиститьИсточникПараметровУДескриптора() Экспорт - + // Подготовка ПараметрыЗапуска = ПолучитьПараметрыЗапуска(); - + Дескриптор = ПараметрыЗапуска.Дескрипторы .НайтиПоИмени("БенчмаркБезПараметров") .ДобавитьИсточникПараметров("Получить"); @@ -41,16 +43,16 @@ ИсточникиПараметров = Дескриптор.ИсточникиПараметров(); Ожидаем.Что(ИсточникиПараметров).ИмеетДлину(0); - + КонецПроцедуры &Тест Процедура ТестДолжен_УстановитьИсточникПараметровДляПоляКонфигурации() Экспорт - + // Подготовка ПараметрыЗапуска = ПолучитьПараметрыЗапуска(); Конфигурация = ПараметрыЗапуска.Конфигурация; - + // Действие Конфигурация.ДобавитьИсточникПараметров("Поле", "Получить"); @@ -60,12 +62,12 @@ Ожидаем.Что(ИсточникиПараметров).ИмеетДлину(1); Ожидаем.Что(ИсточникиПараметров[0].ИмяПоля).Равно("Поле"); Ожидаем.Что(ИсточникиПараметров[0].Источник).Равно("Получить"); - + КонецПроцедуры &Тест Процедура ТестДолжен_ОчиститьИсточникиПараметровУКонфигурации() Экспорт - + // Подготовка ПараметрыЗапуска = ПолучитьПараметрыЗапуска(); @@ -74,17 +76,56 @@ // Действие Конфигурация.ОчиститьИсточникиПараметров(); - // Проверка ИсточникиПараметров = Конфигурация.ИсточникиПараметров(); Ожидаем.Что(ИсточникиПараметров).ИмеетДлину(0); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_УстановитьИсточникПараметровВКонфигурации() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСАннотациямиКонфигурации"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .ОчиститьИсточникиПараметров(); + + // Действие + Конфигурация.ДобавитьИсточникПараметров("ОбщееЗначение", "Получить"); + // Проверка + ИсточникиПараметров = Конфигурация.ИсточникиПараметров(); + + Ожидаем.Что(ИсточникиПараметров).ИмеетДлину(1); + Ожидаем.Что(ИсточникиПараметров[0].ИмяПоля).Равно("ОбщееЗначение"); + Ожидаем.Что(ИсточникиПараметров[0].Источник).Равно("Получить"); + КонецПроцедуры &Тест -Процедура ТестДолжен_ЗапуститьСИсточникомПараметровДляОбщегоПоля() Экспорт +Процедура ТестДолжен_ОчиститьИсточникиПараметровВКонфигурации() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСАннотациямиКонфигурации"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .ДобавитьИсточникПараметров("ОбщееЗначение", "Получить"); + + // Действие + Конфигурация.ОчиститьИсточникиПараметров(); + // Проверка + ИсточникиПараметров = Конфигурация.ИсточникиПараметров(); + + Ожидаем.Что(ИсточникиПараметров).ИмеетДлину(0); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ЗапуститьСИсточникомПараметровДляОбщегоПоля() Экспорт + // Подготовка ПараметрыЗапуска = ПолучитьПараметрыЗапуска(Ложь); Конфигурация = ПараметрыЗапуска.Конфигурация; @@ -97,12 +138,12 @@ Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Поле")]).Равно(100); Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Поле")]).Равно(200); - + КонецПроцедуры &Тест Процедура ТестДолжен_ЗапуститьСНесколькимиИсточникамиПараметровДляОбщегоПоля() Экспорт - + // Подготовка ПараметрыЗапуска = ПолучитьПараметрыЗапуска(Ложь); Конфигурация = ПараметрыЗапуска.Конфигурация; @@ -122,12 +163,12 @@ Ожидаем.Что(Значения).Содержит(Истина); Ожидаем.Что(Значения).Содержит(100); Ожидаем.Что(Значения).Содержит(200); - + КонецПроцедуры &Тест Процедура ТестДолжен_ЗапуститьСИсточникомПараметровДляОбщегоПоляИзСтруктуры() Экспорт - + // Подготовка ПараметрыЗапуска = ПолучитьПараметрыЗапуска(); Конфигурация = ПараметрыЗапуска.Конфигурация; @@ -150,7 +191,7 @@ &Тест Процедура ТестДолжен_ЗапуститьСИсточникомПараметровМетодаБенчмаркаСОднимПараметром() Экспорт - + // Подготовка ПараметрыЗапуска = ПолучитьПараметрыЗапуска(); Конфигурация = ПараметрыЗапуска.Конфигурация; @@ -163,12 +204,12 @@ Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(Ложь); Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(Истина); - + КонецПроцедуры &Тест Процедура ТестДолжен_ЗапуститьСИсточникомПараметровМетодаБенчмаркаИзКоллекцииМассивов() Экспорт - + // Подготовка ПараметрыЗапуска = ПолучитьПараметрыЗапуска(); Конфигурация = ПараметрыЗапуска.Конфигурация; @@ -183,12 +224,12 @@ Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(14); Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(15); Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(16); - + КонецПроцедуры &Тест Процедура ТестДолжен_ЗапуститьСИсточникомПараметровМетодаБенчмаркаИзКоллекцииСтруктур() Экспорт - + // Подготовка ПараметрыЗапуска = ПолучитьПараметрыЗапуска(); Конфигурация = ПараметрыЗапуска.Конфигурация; @@ -206,12 +247,12 @@ Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(2); Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(3); Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(4); - + КонецПроцедуры &Тест Процедура ТестДолжен_ЗапуститьСИсточникомПараметровМетодаБенчмаркаИзКоллекцииСоответствий() Экспорт - + // Подготовка ПараметрыЗапуска = ПолучитьПараметрыЗапуска(); Конфигурация = ПараметрыЗапуска.Конфигурация; @@ -228,12 +269,12 @@ Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(6); Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(7); Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(8); - + КонецПроцедуры &Тест Процедура ТестДолжен_ЗапуститьСИсточникомПараметровМетодаБенчмаркаИзТаблицы() Экспорт - + // Подготовка ПараметрыЗапуска = ПолучитьПараметрыЗапуска(); Конфигурация = ПараметрыЗапуска.Конфигурация; @@ -250,12 +291,12 @@ Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(10); Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(11); Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(12); - + КонецПроцедуры &Тест Процедура ТестДолжен_ЗапуститьСНесколькимиИсточникамиПараметровМетодаБенчмарка() Экспорт - + // Подготовка ПараметрыЗапуска = ПолучитьПараметрыЗапуска(); Конфигурация = ПараметрыЗапуска.Конфигурация; @@ -277,12 +318,12 @@ Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(6); Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(7); Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(8); - + КонецПроцедуры &Тест Процедура ТестДолжен_ЗапуститьСИсточникомПараметровМетодаБенчмаркаИзСтруктуры() Экспорт - + // Подготовка ПараметрыЗапуска = ПолучитьПараметрыЗапуска(); Конфигурация = ПараметрыЗапуска.Конфигурация; @@ -297,17 +338,17 @@ Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(1); Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(13); Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(14); - + КонецПроцедуры &Тест Процедура ТестДолжен_ЗапуститьСИсточникомПараметровИзМодуля() Экспорт + // Подготовка Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда Возврат; КонецЕсли; - - // Подготовка + ПараметрыЗапуска = ПолучитьПараметрыЗапуска(); Конфигурация = ПараметрыЗапуска.Конфигурация; Дескриптор = ПараметрыЗапуска.Дескрипторы.НайтиПоИмени("БенчмаркСОднимПараметромИИсточникомИзМодуля"); @@ -319,12 +360,12 @@ Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(300); Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(400); - + КонецПроцедуры &Тест Процедура ТестДолжен_ЗапуститьСИсточникомПараметровИзКласса() Экспорт - + // Подготовка ПараметрыЗапуска = ПолучитьПараметрыЗапуска(); Конфигурация = ПараметрыЗапуска.Конфигурация; @@ -337,7 +378,7 @@ Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(500); Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(600); - + КонецПроцедуры &Тест @@ -428,8 +469,12 @@ КонецПроцедуры +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Функция ПолучитьВалидныеЗначенияПараметровДляМетодаБенчмаркаСОднимПараметром() Экспорт - + Значения = Новый Массив(); Значения.Добавить("Тест"); Значения.Добавить(100); @@ -453,4 +498,6 @@ Возврат Новый Структура("Конфигурация, Дескрипторы", Конфигурация, ДескрипторыБенчмарков); -КонецФункции \ No newline at end of file +КонецФункции + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\273\320\276\320\275\320\276\320\272\320\230\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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\232\320\276\320\273\320\276\320\275\320\276\320\272\320\230\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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..0a27d04 --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\273\320\276\320\275\320\276\320\272\320\230\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -0,0 +1,287 @@ +// BSLLS:LineLength-off +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать fluent +#Использовать tempfiles +#Использовать "helpers" +#Использовать "fixtures/benchmarks" + +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов + +#Область ОбработчикиСобытий + +&Инициализация +Процедура ПередВсеми() Экспорт + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); +КонецПроцедуры + +&Завершение +Процедура ПослеВсех() Экспорт + _МенеджерВременныхФайлов.Удалить(); +КонецПроцедуры + +#КонецОбласти + +#Область Тесты + +&Тест +Процедура ТестДолжен_ИзвлечьКолонкиИзАннотации() Экспорт + + // Подготовка + Тип = Тип("БенчмаркиСКолонками"); + + ПереченьКолонок = "Мин, Макс, Медиана, НижнийКвартиль, ВерхнийКвартиль, RatioSD"; + Колонки = СтрРазделить(ПереченьКолонок, ", ", Ложь); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + ТаблицаОтчета = Результат.Отчет.Таблица; + + Для Каждого ИмяКолонки Из Колонки Цикл + Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(ИмяКолонки), ИмяКолонки).Не_().ЭтоНеопределено(); + КонецЦикла; + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ДобавитьКолонкиВКонфигурацию() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + + ПереченьКолонок = "Мин, Макс, Медиана, НижнийКвартиль, ВерхнийКвартиль, RatioSD"; + Колонки = СтрРазделить(ПереченьКолонок, ", ", Ложь); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + Для Каждого ИмяКолонки Из Колонки Цикл + Конфигурация.ДобавитьКолонку(КолонкиОтчетаБенчмарков[ИмяКолонки]); + КонецЦикла; + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + ТаблицаОтчета = Результат.Отчет.Таблица; + + Для Каждого ИмяКолонки Из Колонки Цикл + Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(ИмяКолонки)).Не_().ЭтоНеопределено(); + Ожидаем.Что(ТаблицаОтчета[0][КолонкиОтчетаБенчмарков[ИмяКолонки]]).Заполнено(); + КонецЦикла; + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_НеДублироватьКолонкуПриПовторномДобавлении() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + + ИмяКолонки = КолонкиОтчетаБенчмарков.Мин; + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + Конфигурация.ДобавитьКолонку(ИмяКолонки); + Конфигурация.ДобавитьКолонку(ИмяКолонки); + + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + ТаблицаОтчета = Результат.Отчет.Таблица; + + Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(ИмяКолонки)).Не_().ЭтоНеопределено(); + Ожидаем.Что(ТаблицаОтчета[0][ИмяКолонки]).Заполнено(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_УдалитьКолонкуИзКонфигурации() Экспорт + + // Подготовка + Колонка = КолонкиОтчетаБенчмарков.Мин; + Тип = Тип("БенчмаркиСКолонками"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + Конфигурация.УдалитьКолонку(Колонка); + + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + ТаблицаОтчета = Результат.Отчет.Таблица; + + Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(Колонка)).ЭтоНеопределено(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ИзвлечьКолонкиПроцентилейИзАннотации() Экспорт + + // Подготовка + Тип = Тип("БенчмаркиСКолонками"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + ТаблицаОтчета = Результат.Отчет.Таблица; + + КолонкаПроцентиль10 = КолонкиОтчетаБенчмарков.Процентиль(10); + КолонкаПроцентиль80 = КолонкиОтчетаБенчмарков.Процентиль(80); + + Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(КолонкаПроцентиль10)).Не_().ЭтоНеопределено(); + Ожидаем.Что(ТаблицаОтчета[0][КолонкаПроцентиль10]).Заполнено(); + + Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(КолонкаПроцентиль80)).Не_().ЭтоНеопределено(); + Ожидаем.Что(ТаблицаОтчета[0][КолонкаПроцентиль80]).Заполнено(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ДобавитьКолонкиПроцентилейВКонфигурацию() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + Конфигурация.ДобавитьКолонку(КолонкиОтчетаБенчмарков.Процентиль(10)); + Конфигурация.ДобавитьКолонку(КолонкиОтчетаБенчмарков.Процентиль(80)); + + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + ТаблицаОтчета = Результат.Отчет.Таблица; + + КолонкаПроцентиль10 = КолонкиОтчетаБенчмарков.Процентиль(10); + КолонкаПроцентиль80 = КолонкиОтчетаБенчмарков.Процентиль(80); + + Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(КолонкаПроцентиль10)).Не_().ЭтоНеопределено(); + Ожидаем.Что(ТаблицаОтчета[0][КолонкаПроцентиль10]).Заполнено(); + + Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(КолонкаПроцентиль80)).Не_().ЭтоНеопределено(); + Ожидаем.Что(ТаблицаОтчета[0][КолонкаПроцентиль80]).Заполнено(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ДобавитьКолонкиПроцентилейВКонфигурациюПоУмолчанию() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + Конфигурация.ДобавитьКолонку(КолонкиОтчетаБенчмарков.Процентиль); + + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + ТаблицаОтчета = Результат.Отчет.Таблица; + + Для Каждого Процентиль Из КолонкаОтчетаБенчмарковПроцентиль.ПроцентилиПоУмолчанию() Цикл + ИмяКолонки = КолонкиОтчетаБенчмарков.Процентиль(Процентиль); + Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(ИмяКолонки)).Не_().ЭтоНеопределено(); + Ожидаем.Что(ТаблицаОтчета[0][ИмяКолонки]).Заполнено(); + КонецЦикла; + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ДобавитьКолонкиПроцентилейВКонфигурациюПоУмолчаниюИПроизвольная() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + Конфигурация.ДобавитьКолонку(КолонкиОтчетаБенчмарков.Процентиль); + Конфигурация.ДобавитьКолонку(КолонкиОтчетаБенчмарков.Процентиль(33)); + + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + ТаблицаОтчета = Результат.Отчет.Таблица; + + Процентили = КолонкаОтчетаБенчмарковПроцентиль.ПроцентилиПоУмолчанию(); + Процентили.Добавить(33); + + Для Каждого Процентиль Из КолонкаОтчетаБенчмарковПроцентиль.ПроцентилиПоУмолчанию() Цикл + ИмяКолонки = КолонкиОтчетаБенчмарков.Процентиль(Процентиль); + Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(ИмяКолонки)).Не_().ЭтоНеопределено(); + Ожидаем.Что(ТаблицаОтчета[0][ИмяКолонки]).Заполнено(); + КонецЦикла; + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_УстановитьКаталогАртефактов() Экспорт + + // Подготовка + Каталог = "path/to/artifacts"; + + Конфигурация = Новый КонфигурацияБенчмарков(); + + // Действие + Конфигурация.УстановитьКаталогАртефактов(Каталог); + + // Проверка + Ожидаем.Что(Конфигурация.КаталогАртефактов()).Равно(Каталог); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ДобавитьЭкспортер() Экспорт + + // Подготовка + Экспортер = ЭкспортерыРезультатовБенчмарков.Markdown; + + Конфигурация = Новый КонфигурацияБенчмарков(); + + // Действие + Конфигурация.ДобавитьЭкспортер(Экспортер); + + // Проверка + Ожидаем.Что(Конфигурация.Экспортеры()).Содержит(Экспортер); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_УдалитьВсеЭкспортеры() Экспорт + + // Подготовка + Экспортер = ЭкспортерыРезультатовБенчмарков.Markdown; + + Конфигурация = Новый КонфигурацияБенчмарков(); + Конфигурация.ДобавитьЭкспортер(Экспортер); + + // Действие + Конфигурация.УдалитьЭкспортеры(); + + // Проверка + Ожидаем.Что(Конфигурация.Экспортеры()).ИмеетДлину(0); + +КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" deleted file mode 100644 index ac1fd20..0000000 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" +++ /dev/null @@ -1,910 +0,0 @@ -// BSLLS:LineLength-off -// BSLLS:DuplicateStringLiteral-off -// BSLLS:MagicNumber-off - -#Использовать asserts -#Использовать fluent -#Использовать tempfiles -#Использовать "helpers" -#Использовать "fixtures/benchmarks" - -Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов - -&Инициализация -Процедура ПередВсеми() Экспорт - _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); -КонецПроцедуры - -&Завершение -Процедура ПослеВсех() Экспорт - _МенеджерВременныхФайлов.Удалить(); -КонецПроцедуры - -&Тест -Процедура Тест_АннотацииКонфигурации() Экспорт - - Тип = Тип("БенчмаркСАннотациямиКонфигурации"); - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - - ПроверитьКонфигурациюБенчмаркаСАннотациямиКонфигурации(Конфигурация); - -КонецПроцедуры - -&Тест -Процедура Тест_ПараметрыПоляИзАннотации() Экспорт - - Тип = Тип("БенчмаркСПараметрамиПоля"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Значение")]).Равно(10); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Значение")]).Равно(100); - -КонецПроцедуры - -&Тест -Процедура Тест_УстановкаПараметровПоля() Экспорт - - Тип = Тип("БенчмаркСПараметрамиПоля"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип) - .ОчиститьПараметры() - .ДобавитьПараметр("Значение", 50) - .ДобавитьПараметр("Значение", 150); - - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Значение")]).Равно(50); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Значение")]).Равно(150); - -КонецПроцедуры - -&Тест -Процедура Тест_КоличествоИтераций() Экспорт - - КоличествоИтераций = 2; - - Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию(); - Конфигурация.УстановитьКоличествоИтераций(КоличествоИтераций); - - Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); - - Ожидаем.Что(Результат.Запуски[0].Замеры.Количество()).Равно(КоличествоИтераций); - -КонецПроцедуры - -&Тест -Процедура Тест_КоличествоВызововЗаИтерацию() Экспорт - - КоличествоВызововЗаИтерацию = 2; - - Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию() - .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ПропускнаяСпособность) - .УстановитьКоличествоВызововЗаИтерацию(КоличествоВызововЗаИтерацию); - - Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); - - Ожидаем.Что(Результат.Запуски[0].Замеры[0].КоличествоОпераций).Равно(КоличествоВызововЗаИтерацию); - -КонецПроцедуры - -&Тест -Процедура Тест_КоличествоПрогревочныхИтераций() Экспорт - - КоличествоПрогревочныхИтераций = 2; - - Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию() - .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ПропускнаяСпособность) - .УстановитьКоличествоПрогревочныхИтераций(КоличествоПрогревочныхИтераций); - - Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); - - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); - Ожидаем.Что(Результат.Конфигурация.КоличествоПрогревочныхИтераций()).Равно(КоличествоПрогревочныхИтераций); - -КонецПроцедуры - -&Тест -Процедура Тест_МинимальноеВремяИтерации() Экспорт - - МинимальноеВремяИтерации = 50; - КоличествоВызововЗаИтерацию = 0; - - Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию() - .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ПропускнаяСпособность) - .УстановитьКоличествоВызововЗаИтерацию(КоличествоВызововЗаИтерацию) - .УстановитьМинимальноеВремяИтерации(МинимальноеВремяИтерации); - - Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); - - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); - Ожидаем.Что(Результат.Конфигурация.МинимальноеВремяИтерации()).Равно(МинимальноеВремяИтерации); - -КонецПроцедуры - -&Тест -Процедура Тест_МинимальноеКоличествоВызововЗаИтерацию() Экспорт - - КоличествоВызововЗаИтерацию = 0; - МинимальноеКоличествоВызововЗаИтерацию = 10; - - Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию() - .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ПропускнаяСпособность) - .УстановитьКоличествоВызововЗаИтерацию(КоличествоВызововЗаИтерацию) - .УстановитьМинимальноеКоличествоВызововЗаИтерацию(МинимальноеКоличествоВызововЗаИтерацию); - - Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); - - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); - - Ожидаем - .Что(Результат.Конфигурация.МинимальноеКоличествоВызововЗаИтерацию()) - .Равно(МинимальноеКоличествоВызововЗаИтерацию); - -КонецПроцедуры - -&Тест -Процедура Тест_СтратегияПропускнаяСпособность() Экспорт - - КоличествоВызововЗаИтерацию = 2; - - Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию() - .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ПропускнаяСпособность) - .УстановитьКоличествоВызововЗаИтерацию(КоличествоВызововЗаИтерацию); - - Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); - - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); - Ожидаем.Что(Результат.Запуски[0].Замеры[0].КоличествоОпераций).Равно(КоличествоВызововЗаИтерацию); - -КонецПроцедуры - -&Тест -Процедура Тест_СтратегияХолодныйЗапуск() Экспорт - - КоличествоВызововЗаИтерацию = 2; - - Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию() - .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ХолодныйЗапуск) - .УстановитьКоличествоВызововЗаИтерацию(КоличествоВызововЗаИтерацию); - - Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); - - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); - Ожидаем.Что(Результат.Запуски[0].Замеры[0].КоличествоОпераций).Равно(1); - -КонецПроцедуры - -&Тест -Процедура Тест_ВалидацияКоличестваИтераций() Экспорт - - НевалидныеЗначения = Новый Массив(); - НевалидныеЗначения.Добавить(0); - НевалидныеЗначения.Добавить(-10); - - ТекстОшибки = "Количество итераций не может быть меньше 1"; - - Конфигурация = Новый КонфигурацияБенчмарков(); - - Для Каждого НевалидноеЗначение Из НевалидныеЗначения Цикл - - Параметры = Новый Массив(); - Параметры.Добавить(НевалидноеЗначение); - - Ожидаем.Что(Конфигурация).Метод("УстановитьКоличествоИтераций", Параметры).ВыбрасываетИсключение(ТекстОшибки); - - КонецЦикла; - -КонецПроцедуры - -&Тест -Процедура Тест_ВалидацияКоличестваВызововЗаИтерацию() Экспорт - - НевалидныеЗначения = Новый Массив(); - НевалидныеЗначения.Добавить(-10); - - ТекстОшибки = "Количество вызовов за итерацию не может быть меньше 0"; - - Конфигурация = Новый КонфигурацияБенчмарков(); - - Для Каждого НевалидноеЗначение Из НевалидныеЗначения Цикл - - Параметры = Новый Массив(); - Параметры.Добавить(НевалидноеЗначение); - - Ожидаем - .Что(Конфигурация) - .Метод("УстановитьКоличествоВызововЗаИтерацию", Параметры) - .ВыбрасываетИсключение(ТекстОшибки); - - КонецЦикла; - -КонецПроцедуры - -&Тест -Процедура Тест_ВалидацияКоличестваИтерацийПрогрева() Экспорт - - НевалидныеЗначения = Новый Массив(); - НевалидныеЗначения.Добавить(-10); - - ТекстОшибки = "Количество прогревочных итераций не может быть меньше 0"; - - Конфигурация = Новый КонфигурацияБенчмарков(); - - Для Каждого НевалидноеЗначение Из НевалидныеЗначения Цикл - - Параметры = Новый Массив(); - Параметры.Добавить(НевалидноеЗначение); - - Ожидаем - .Что(Конфигурация) - .Метод("УстановитьКоличествоПрогревочныхИтераций", Параметры) - .ВыбрасываетИсключение(ТекстОшибки); - - КонецЦикла; - -КонецПроцедуры - -&Тест -Процедура Тест_ВалидацияМинимальногоВремениИтерации() Экспорт - - НевалидныеЗначения = Новый Массив(); - НевалидныеЗначения.Добавить(0); - НевалидныеЗначения.Добавить(-10); - - ТекстОшибки = "Минимальное время итерации не может быть меньше 1 мс"; - - Конфигурация = Новый КонфигурацияБенчмарков(); - - Для Каждого НевалидноеЗначение Из НевалидныеЗначения Цикл - - Параметры = Новый Массив(); - Параметры.Добавить(НевалидноеЗначение); - - Ожидаем.Что(Конфигурация).Метод("УстановитьМинимальноеВремяИтерации", Параметры).ВыбрасываетИсключение(ТекстОшибки); - - КонецЦикла; - -КонецПроцедуры - -&Тест -Процедура Тест_ВалидацияМинимальногоКоличестваВызововЗаИтерацию() Экспорт - - НевалидныеЗначения = Новый Массив(); - НевалидныеЗначения.Добавить(0); - НевалидныеЗначения.Добавить(-10); - - ТекстОшибки = "Минимальное количество вызовов за итерацию не может быть меньше 1"; - - Конфигурация = Новый КонфигурацияБенчмарков(); - - Для Каждого НевалидноеЗначение Из НевалидныеЗначения Цикл - - Параметры = Новый Массив(); - Параметры.Добавить(НевалидноеЗначение); - - Ожидаем - .Что(Конфигурация) - .Метод("УстановитьМинимальноеКоличествоВызововЗаИтерацию", Параметры) - .ВыбрасываетИсключение(ТекстОшибки); - - КонецЦикла; - -КонецПроцедуры - -&Тест -Процедура Тест_УстановкаМониторингаПамяти() Экспорт - - Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию(); - Конфигурация.ДобавитьМониторингПамяти(); - - Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); - - Ожидаем.Что(Результат.Запуски[0].Статистика.ВыделяемаяПамять).Заполнено(); - Ожидаем.Что(Результат.Конфигурация.ТребуетсяМониторингПамяти()).ЭтоИстина(); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ВызватьАннотированныеОбработчикиСобытий() Экспорт - - // Подготовка - Тип = Тип("БенчмаркСОбработчикамиСобытий"); - ПутьКЛогу = _МенеджерВременныхФайлов.НовоеИмяФайла(); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - Конфигурация.ДобавитьПараметр("ПутьКЛогу", ПутьКЛогу); - - // Действие - Бенчмаркинг.Запустить(Тип, Конфигурация); - - // Проверка - События = ПрочитатьСобытияИзЛога(ПутьКЛогу); - - Ожидаем.Что(События).Содержит("ПередВсеми"); - Ожидаем.Что(События).Содержит("ПослеВсех"); - Ожидаем.Что(События).Содержит("ПередКаждымКейсом"); - Ожидаем.Что(События).Содержит("ПослеКаждогоКейса"); - Ожидаем.Что(События).Содержит("ПередКаждым"); - Ожидаем.Что(События).Содержит("ПослеКаждого"); - Ожидаем.Что(События).Содержит("ПередИтерацией"); - Ожидаем.Что(События).Содержит("ПослеИтерации"); - Ожидаем.Что(События).Не_().Содержит("БезАннотации"); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ДобавитьОбработчикСобытия() Экспорт - - // Подготовка - Тип = Тип("БенчмаркСОбработчикамиСобытий"); - ПутьКЛогу = _МенеджерВременныхФайлов.НовоеИмяФайла(); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Конфигурация.ДобавитьОбработчикСобытия("БезАннотации", СобытияБенчмарков.ПередКаждымКейсом); - Конфигурация.ДобавитьПараметр("ПутьКЛогу", ПутьКЛогу); - - // Действие - Бенчмаркинг.Запустить(Тип, Конфигурация); - - // Проверка - События = ПрочитатьСобытияИзЛога(ПутьКЛогу); - - Ожидаем.Что(События).Содержит("ПередКаждымКейсом"); - Ожидаем.Что(События).Содержит("БезАннотации"); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_УдалитьОбработчикСобытия() Экспорт - - // Подготовка - Тип = Тип("БенчмаркСОбработчикамиСобытий"); - ПутьКЛогу = _МенеджерВременныхФайлов.НовоеИмяФайла(); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - Конфигурация.УстановитьКоличествоПрогревочныхИтераций(0); - - Конфигурация.УдалитьОбработчикиСобытия(СобытияБенчмарков.ПередКаждымКейсом); - Конфигурация.ДобавитьПараметр("ПутьКЛогу", ПутьКЛогу); - - // Действие - Бенчмаркинг.Запустить(Тип, Конфигурация); - - // Проверка - События = ПрочитатьСобытияИзЛога(ПутьКЛогу); - - Ожидаем.Что(События).Не_().Содержит("ПередКаждымКейсом"); - Ожидаем.Что(События).ИмеетДлину(6); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ВыброситьИсключениеНаНесуществующемОбработчикеСобытия() Экспорт - - // Подготовка - Тип = Тип("ПустойБенчмарк"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Конфигурация.ДобавитьОбработчикСобытия("НесуществующийОбработчик", СобытияБенчмарков.ПередКаждымКейсом); - - ПараметрыМетода = Новый Массив(); - ПараметрыМетода.Добавить(Тип); - ПараметрыМетода.Добавить(Конфигурация); - - // Действие и Проверка - Ожидаем - .Что(Бенчмаркинг) - .Метод("Запустить", ПараметрыМетода) - .ВыбрасываетИсключение("Ошибка в обработчике события <НесуществующийОбработчик>: Метод объекта не обнаружен"); - -КонецПроцедуры - -&Тест -Процедура Тест_КолонкиИзАннотации() Экспорт - - Тип = Тип("БенчмаркиСКолонками"); - - ПереченьКолонок = "Мин, Макс, Медиана, НижнийКвартиль, ВерхнийКвартиль, RatioSD"; - Колонки = СтрРазделить(ПереченьКолонок, ", ", Ложь); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - ТаблицаОтчета = Результат.Отчет.Таблица; - - Для Каждого ИмяКолонки Из Колонки Цикл - Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(ИмяКолонки), ИмяКолонки).Не_().ЭтоНеопределено(); - КонецЦикла; - -КонецПроцедуры - -&Тест -Процедура Тест_ДобавлениеКолонок() Экспорт - - Тип = Тип("ПустойБенчмарк"); - - ПереченьКолонок = "Мин, Макс, Медиана, НижнийКвартиль, ВерхнийКвартиль, RatioSD"; - Колонки = СтрРазделить(ПереченьКолонок, ", ", Ложь); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Для Каждого ИмяКолонки Из Колонки Цикл - Конфигурация.ДобавитьКолонку(КолонкиОтчетаБенчмарков[ИмяКолонки]); - КонецЦикла; - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - ТаблицаОтчета = Результат.Отчет.Таблица; - - Для Каждого ИмяКолонки Из Колонки Цикл - Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(ИмяКолонки)).Не_().ЭтоНеопределено(); - Ожидаем.Что(ТаблицаОтчета[0][КолонкиОтчетаБенчмарков[ИмяКолонки]]).Заполнено(); - КонецЦикла; - -КонецПроцедуры - -&Тест -Процедура Тест_ДобавлениеОдинаковыхКолонок() Экспорт - - Тип = Тип("ПустойБенчмарк"); - - ИмяКолонки = КолонкиОтчетаБенчмарков.Мин; - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - Конфигурация.ДобавитьКолонку(ИмяКолонки); - Конфигурация.ДобавитьКолонку(ИмяКолонки); - - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - ТаблицаОтчета = Результат.Отчет.Таблица; - - Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(ИмяКолонки)).Не_().ЭтоНеопределено(); - Ожидаем.Что(ТаблицаОтчета[0][ИмяКолонки]).Заполнено(); - -КонецПроцедуры - -&Тест -Процедура Тест_УдалениеКолонок() Экспорт - - Колонка = КолонкиОтчетаБенчмарков.Мин; - Тип = Тип("БенчмаркиСКолонками"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - Конфигурация.УдалитьКолонку(Колонка); - - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - ТаблицаОтчета = Результат.Отчет.Таблица; - - Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(Колонка)).ЭтоНеопределено(); - -КонецПроцедуры - -&Тест -Процедура Тест_КолонкиПроцентилейИзАннотации() Экспорт - - Тип = Тип("БенчмаркиСКолонками"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - ТаблицаОтчета = Результат.Отчет.Таблица; - - КолонкаПроцентиль10 = КолонкиОтчетаБенчмарков.Процентиль(10); - КолонкаПроцентиль80 = КолонкиОтчетаБенчмарков.Процентиль(80); - - Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(КолонкаПроцентиль10)).Не_().ЭтоНеопределено(); - Ожидаем.Что(ТаблицаОтчета[0][КолонкаПроцентиль10]).Заполнено(); - - Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(КолонкаПроцентиль80)).Не_().ЭтоНеопределено(); - Ожидаем.Что(ТаблицаОтчета[0][КолонкаПроцентиль80]).Заполнено(); - -КонецПроцедуры - -&Тест -Процедура Тест_ДобавлениеКолонкиПроцентилей() Экспорт - - Тип = Тип("ПустойБенчмарк"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - Конфигурация.ДобавитьКолонку(КолонкиОтчетаБенчмарков.Процентиль(10)); - Конфигурация.ДобавитьКолонку(КолонкиОтчетаБенчмарков.Процентиль(80)); - - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - ТаблицаОтчета = Результат.Отчет.Таблица; - - КолонкаПроцентиль10 = КолонкиОтчетаБенчмарков.Процентиль(10); - КолонкаПроцентиль80 = КолонкиОтчетаБенчмарков.Процентиль(80); - - Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(КолонкаПроцентиль10)).Не_().ЭтоНеопределено(); - Ожидаем.Что(ТаблицаОтчета[0][КолонкаПроцентиль10]).Заполнено(); - - Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(КолонкаПроцентиль80)).Не_().ЭтоНеопределено(); - Ожидаем.Что(ТаблицаОтчета[0][КолонкаПроцентиль80]).Заполнено(); - -КонецПроцедуры - -&Тест -Процедура Тест_ДобавлениеКолонкиПроцентилейПоУмолчанию() Экспорт - - Тип = Тип("ПустойБенчмарк"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - Конфигурация.ДобавитьКолонку(КолонкиОтчетаБенчмарков.Процентиль); - - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - ТаблицаОтчета = Результат.Отчет.Таблица; - - Для Каждого Процентиль Из КолонкаОтчетаБенчмарковПроцентиль.ПроцентилиПоУмолчанию() Цикл - ИмяКолонки = КолонкиОтчетаБенчмарков.Процентиль(Процентиль); - Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(ИмяКолонки)).Не_().ЭтоНеопределено(); - Ожидаем.Что(ТаблицаОтчета[0][ИмяКолонки]).Заполнено(); - КонецЦикла; - -КонецПроцедуры - -&Тест -Процедура Тест_ДобавлениеКолонкиПроцентилейПоУмолчаниюИПроизвольная() Экспорт - - Тип = Тип("ПустойБенчмарк"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - Конфигурация.ДобавитьКолонку(КолонкиОтчетаБенчмарков.Процентиль); - Конфигурация.ДобавитьКолонку(КолонкиОтчетаБенчмарков.Процентиль(33)); - - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - ТаблицаОтчета = Результат.Отчет.Таблица; - - Процентили = КолонкаОтчетаБенчмарковПроцентиль.ПроцентилиПоУмолчанию(); - Процентили.Добавить(33); - - Для Каждого Процентиль Из КолонкаОтчетаБенчмарковПроцентиль.ПроцентилиПоУмолчанию() Цикл - ИмяКолонки = КолонкиОтчетаБенчмарков.Процентиль(Процентиль); - Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(ИмяКолонки)).Не_().ЭтоНеопределено(); - Ожидаем.Что(ТаблицаОтчета[0][ИмяКолонки]).Заполнено(); - КонецЦикла; - -КонецПроцедуры - -&Тест -Процедура Тест_УстановкаКаталогаАртефактов() Экспорт - - Каталог = "path/to/artifacts"; - - Конфигурация = Новый КонфигурацияБенчмарков(); - Конфигурация.УстановитьКаталогАртефактов(Каталог); - - Ожидаем.Что(Конфигурация.КаталогАртефактов()).Равно(Каталог); - -КонецПроцедуры - -&Тест -Процедура Тест_ДобавлениеЭкспортера() Экспорт - - Экспортер = ЭкспортерыРезультатовБенчмарков.Markdown; - - Конфигурация = Новый КонфигурацияБенчмарков(); - Конфигурация.ДобавитьЭкспортер(Экспортер); - - Ожидаем.Что(Конфигурация.Экспортеры()).Содержит(Экспортер); - -КонецПроцедуры - -&Тест -Процедура Тест_УдалениеВсехЭкспортеров() Экспорт - - Экспортер = ЭкспортерыРезультатовБенчмарков.Markdown; - - Конфигурация = Новый КонфигурацияБенчмарков(); - Конфигурация.ДобавитьЭкспортер(Экспортер); - Конфигурация.УдалитьЭкспортеры(); - - Ожидаем.Что(Конфигурация.Экспортеры()).ИмеетДлину(0); - -КонецПроцедуры - -&Тест -Процедура Тест_УстановкаИсточникаПараметров() Экспорт - - Тип = Тип("БенчмаркСАннотациямиКонфигурации"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип) - .ОчиститьИсточникиПараметров() - .ДобавитьИсточникПараметров("ОбщееЗначение", "Получить"); - - ИсточникиПараметров = Конфигурация.ИсточникиПараметров(); - - Ожидаем.Что(ИсточникиПараметров).ИмеетДлину(1); - Ожидаем.Что(ИсточникиПараметров[0].ИмяПоля).Равно("ОбщееЗначение"); - Ожидаем.Что(ИсточникиПараметров[0].Источник).Равно("Получить"); - -КонецПроцедуры - -&Тест -Процедура Тест_ОчисткаИсточниковПараметров() Экспорт - - Тип = Тип("БенчмаркСАннотациямиКонфигурации"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип) - .ДобавитьИсточникПараметров("ОбщееЗначение", "Получить") - .ОчиститьИсточникиПараметров(); - - ИсточникиПараметров = Конфигурация.ИсточникиПараметров(); - - Ожидаем.Что(ИсточникиПараметров).ИмеетДлину(0); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ОбъединитьПустуюКонфигурациюСПолностьюЗаполненной() Экспорт - - // Подготовка - ПередаваемаяКонфигурация = Новый КонфигурацияБенчмарков() - .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ХолодныйЗапуск) - .УстановитьКоличествоИтераций(111) - .УстановитьКоличествоВызововЗаИтерацию(111) - .УстановитьКоличествоПрогревочныхИтераций(111) - .УстановитьМинимальноеВремяИтерации(111) - .УстановитьМинимальноеКоличествоВызововЗаИтерацию(111) - .УстановитьСортировкуОтчета(СортировкиОтчетаБенчмарков.ОтБыстрыхКМедленным) - .УстановитьКаталогАртефактов("path") - .ДобавитьМониторингПамяти() - .ДобавитьПараметр("col1", 111) - .ДобавитьПараметр("col2", 222) - .ДобавитьОбработчикСобытия("Обработчик1", СобытияБенчмарков.ПередВсеми) - .ДобавитьОбработчикСобытия("Обработчик2", СобытияБенчмарков.ПослеКаждогоКейса) - .ДобавитьОбработчикСобытия("Обработчик3", СобытияБенчмарков.ПослеКаждогоКейса) - .ДобавитьКолонку(КолонкиОтчетаБенчмарков.НижнийКвартиль) - .ДобавитьКолонку(КолонкиОтчетаБенчмарков.ВерхнийКвартиль) - .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Json) - .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Html) - .ДобавитьИсполняющуюСреду("dev") - .ДобавитьИсполняющуюСреду("1.9.3") - .ДобавитьИсточникПараметров("col1", "ПолучитьЗначения"); - - // Действие - НоваяКонфигурация = Новый КонфигурацияБенчмарков().Объединить(ПередаваемаяКонфигурация); - - // Проверка - Ожидаем.Что(НоваяКонфигурация.Стратегия(), "Стратегия").Равно(СтратегииЗапускаБенчмарка.ХолодныйЗапуск); - Ожидаем.Что(НоваяКонфигурация.КоличествоИтераций(), "Количество итераций").Равно(111); - Ожидаем.Что(НоваяКонфигурация.КоличествоВызововЗаИтерацию(), "Количество вызовов за итерацию").Равно(111); - Ожидаем.Что(НоваяКонфигурация.КоличествоПрогревочныхИтераций(), "Количество прогревочных итераций").Равно(111); - Ожидаем.Что(НоваяКонфигурация.МинимальноеВремяИтерации(), "Минимальное время итерации").Равно(111); - Ожидаем.Что(НоваяКонфигурация.МинимальноеКоличествоВызововЗаИтерацию(), "Минимальное количество вызовов за итерацию").Равно(111); - Ожидаем.Что(НоваяКонфигурация.СортировкаОтчета(), "Сортировка отчета").Равно(СортировкиОтчетаБенчмарков.ОтБыстрыхКМедленным); - Ожидаем.Что(НоваяКонфигурация.Параметры()[0].Имя(), "Параметры").Равно("col1"); - Ожидаем.Что(НоваяКонфигурация.Параметры()[1].Имя(), "Параметры").Равно("col2"); - Ожидаем.Что(НоваяКонфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПередВсеми)[0].ИмяМетода(), "Обработчики событий").Равно("Обработчик1"); - Ожидаем.Что(НоваяКонфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПослеКаждогоКейса)[0].ИмяМетода(), "Обработчики событий").Равно("Обработчик2"); - Ожидаем.Что(НоваяКонфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПослеКаждогоКейса)[1].ИмяМетода(), "Обработчики событий").Равно("Обработчик3"); - Ожидаем.Что(НоваяКонфигурация.Колонки(), "Колонки").Содержит(КолонкиОтчетаБенчмарков.НижнийКвартиль); - Ожидаем.Что(НоваяКонфигурация.Колонки(), "Колонки").Содержит(КолонкиОтчетаБенчмарков.ВерхнийКвартиль); - Ожидаем.Что(НоваяКонфигурация.Экспортеры(), "Экспортеры").Содержит(ЭкспортерыРезультатовБенчмарков.Json); - Ожидаем.Что(НоваяКонфигурация.Экспортеры(), "Экспортеры").Содержит(ЭкспортерыРезультатовБенчмарков.Html); - Ожидаем.Что(НоваяКонфигурация.ИсполняющиеСреды()[0].Версия, "Исполняющая среда (dev)").Равно("dev"); - Ожидаем.Что(НоваяКонфигурация.ИсполняющиеСреды()[1].Версия, "Исполняющая среда (1.9.3)").Равно("1.9.3"); - Ожидаем.Что(НоваяКонфигурация.ИсточникиПараметров()[0].ИмяПоля, "Источники параметров").Равно("col1"); - Ожидаем.Что(НоваяКонфигурация.ТребуетсяМониторингПамяти(), "Требуется мониторинг памяти").ЭтоИстина(); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ОбъединитьЗаполненнуюКонфигурациюСПустой() Экспорт - - // Подготовка - ЗаполненнаяКонфигурация = Новый КонфигурацияБенчмарков() - .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ХолодныйЗапуск) - .УстановитьКоличествоИтераций(111) - .УстановитьКоличествоВызововЗаИтерацию(111) - .УстановитьКоличествоПрогревочныхИтераций(111) - .УстановитьМинимальноеВремяИтерации(111) - .УстановитьМинимальноеКоличествоВызововЗаИтерацию(111) - .УстановитьСортировкуОтчета(СортировкиОтчетаБенчмарков.ОтБыстрыхКМедленным) - .УстановитьКаталогАртефактов("path") - .ДобавитьМониторингПамяти() - .ДобавитьПараметр("col1", 111) - .ДобавитьПараметр("col2", 222) - .ДобавитьОбработчикСобытия("Обработчик1", СобытияБенчмарков.ПередВсеми) - .ДобавитьОбработчикСобытия("Обработчик2", СобытияБенчмарков.ПослеКаждогоКейса) - .ДобавитьОбработчикСобытия("Обработчик3", СобытияБенчмарков.ПослеКаждогоКейса) - .ДобавитьКолонку(КолонкиОтчетаБенчмарков.НижнийКвартиль) - .ДобавитьКолонку(КолонкиОтчетаБенчмарков.ВерхнийКвартиль) - .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Json) - .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Html) - .ДобавитьИсполняющуюСреду("dev") - .ДобавитьИсполняющуюСреду("1.9.3") - .ДобавитьИсточникПараметров("col1", "ПолучитьЗначения"); - - // Действие - ЗаполненнаяКонфигурация.Объединить(Новый КонфигурацияБенчмарков()); - - // Проверка - Ожидаем.Что(ЗаполненнаяКонфигурация.Стратегия(), "Стратегия").Равно(СтратегииЗапускаБенчмарка.ХолодныйЗапуск); - Ожидаем.Что(ЗаполненнаяКонфигурация.КоличествоИтераций(), "Количество итераций").Равно(111); - Ожидаем.Что(ЗаполненнаяКонфигурация.КоличествоВызововЗаИтерацию(), "Количество вызовов за итерацию").Равно(111); - Ожидаем.Что(ЗаполненнаяКонфигурация.КоличествоПрогревочныхИтераций(), "Количество прогревочных итераций").Равно(111); - Ожидаем.Что(ЗаполненнаяКонфигурация.МинимальноеВремяИтерации(), "Минимальное время итерации").Равно(111); - Ожидаем.Что(ЗаполненнаяКонфигурация.МинимальноеКоличествоВызововЗаИтерацию(), "Минимальное количество вызовов за итерацию").Равно(111); - Ожидаем.Что(ЗаполненнаяКонфигурация.СортировкаОтчета(), "Сортировка отчета").Равно(СортировкиОтчетаБенчмарков.ОтБыстрыхКМедленным); - Ожидаем.Что(ЗаполненнаяКонфигурация.Параметры()[0].Имя(), "Параметры").Равно("col1"); - Ожидаем.Что(ЗаполненнаяКонфигурация.Параметры()[1].Имя(), "Параметры").Равно("col2"); - Ожидаем.Что(ЗаполненнаяКонфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПередВсеми)[0].ИмяМетода(), "Обработчики событий").Равно("Обработчик1"); - Ожидаем.Что(ЗаполненнаяКонфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПослеКаждогоКейса)[0].ИмяМетода(), "Обработчики событий").Равно("Обработчик2"); - Ожидаем.Что(ЗаполненнаяКонфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПослеКаждогоКейса)[1].ИмяМетода(), "Обработчики событий").Равно("Обработчик3"); - Ожидаем.Что(ЗаполненнаяКонфигурация.Колонки(), "Колонки").Содержит(КолонкиОтчетаБенчмарков.НижнийКвартиль); - Ожидаем.Что(ЗаполненнаяКонфигурация.Колонки(), "Колонки").Содержит(КолонкиОтчетаБенчмарков.ВерхнийКвартиль); - Ожидаем.Что(ЗаполненнаяКонфигурация.Экспортеры(), "Экспортеры").Содержит(ЭкспортерыРезультатовБенчмарков.Json); - Ожидаем.Что(ЗаполненнаяКонфигурация.Экспортеры(), "Экспортеры").Содержит(ЭкспортерыРезультатовБенчмарков.Html); - Ожидаем.Что(ЗаполненнаяКонфигурация.ИсполняющиеСреды()[0].Версия, "Исполняющая среда (dev)").Равно("dev"); - Ожидаем.Что(ЗаполненнаяКонфигурация.ИсполняющиеСреды()[1].Версия, "Исполняющая среда (1.9.3)").Равно("1.9.3"); - Ожидаем.Что(ЗаполненнаяКонфигурация.ИсточникиПараметров()[0].ИмяПоля, "Источники параметров").Равно("col1"); - Ожидаем.Что(ЗаполненнаяКонфигурация.ТребуетсяМониторингПамяти(), "Требуется мониторинг памяти").ЭтоИстина(); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ОбъединитьЗаполненныеКонфигурации() Экспорт - - // Подготовка - КонфигурацияПриемник = Новый КонфигурацияБенчмарков() - .УстановитьКоличествоИтераций(111) - .УстановитьКоличествоВызововЗаИтерацию(111) - .ДобавитьКолонку(КолонкиОтчетаБенчмарков.НижнийКвартиль) - .ДобавитьОбработчикСобытия("Обработчик1", СобытияБенчмарков.ПередВсеми) - .ДобавитьОбработчикСобытия("Обработчик2", СобытияБенчмарков.ПослеВсех) - .ДобавитьИсточникПараметров("col1", "ПолучитьМассив"); - - КонфигурацияИсточник = Новый КонфигурацияБенчмарков() - .УстановитьКоличествоИтераций(222) - .ДобавитьКолонку(КолонкиОтчетаБенчмарков.ВерхнийКвартиль) - .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Html) - .ДобавитьОбработчикСобытия("Обработчик3", СобытияБенчмарков.ПослеВсех) - .ДобавитьИсточникПараметров("col1", "ПолучитьТаблицуЗначений"); - - // Действие - КонфигурацияПриемник.Объединить(КонфигурацияИсточник); - - // Проверка - ИсточникиПараметров = КонфигурацияПриемник.ИсточникиПараметров(); - ОбработчикиСобытияПередВсеми = КонфигурацияПриемник.ОбработчикиСобытия(СобытияБенчмарков.ПередВсеми); - ОбработчикиСобытияПослеВсех = КонфигурацияПриемник.ОбработчикиСобытия(СобытияБенчмарков.ПослеВсех); - - Ожидаем.Что(КонфигурацияПриемник.КоличествоИтераций(), "Количество итераций").Равно(222); - Ожидаем.Что(КонфигурацияПриемник.КоличествоВызововЗаИтерацию(), "Количество вызовов за итерацию").Равно(111); - Ожидаем.Что(КонфигурацияПриемник.КоличествоПрогревочныхИтераций(), "Количество прогревочных итераций").Равно(6); - Ожидаем.Что(КонфигурацияПриемник.Колонки(), "Колонки").ИмеетДлину(1); - Ожидаем.Что(КонфигурацияПриемник.Колонки(), "Колонки").Содержит(КолонкиОтчетаБенчмарков.ВерхнийКвартиль); - Ожидаем.Что(КонфигурацияПриемник.Экспортеры(), "Экспортеры").Содержит(ЭкспортерыРезультатовБенчмарков.Html); - Ожидаем.Что(ОбработчикиСобытияПередВсеми, "Обработчики событий").ИмеетДлину(0); - Ожидаем.Что(ОбработчикиСобытияПослеВсех, "Обработчики событий").ИмеетДлину(1); - Ожидаем.Что(ОбработчикиСобытияПослеВсех[0].ИмяМетода(), "Обработчики событий").Равно("Обработчик3"); - Ожидаем.Что(ИсточникиПараметров[0].Источник, "Источники параметров").Равно("ПолучитьТаблицуЗначений"); - -КонецПроцедуры - -&Тест -Процедура Тест_ОбъединениеКонфигурацийНаДефолтноеЗначение() Экспорт - - КоличествоИтерацийПоУмолчанию = 15; - - КонфигурацияПриемник = Новый КонфигурацияБенчмарков() - .УстановитьКоличествоИтераций(111) - .УстановитьКоличествоВызововЗаИтерацию(111) - .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ХолодныйЗапуск); - - КонфигурацияИсточник = Новый КонфигурацияБенчмарков() - .УстановитьКоличествоИтераций(КоличествоИтерацийПоУмолчанию) - .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ПропускнаяСпособность); - - КонфигурацияПриемник.Объединить(КонфигурацияИсточник); - - Ожидаем.Что(КонфигурацияПриемник.КоличествоИтераций(), "Количество итераций").Равно(КоличествоИтерацийПоУмолчанию); - Ожидаем.Что(КонфигурацияПриемник.КоличествоВызововЗаИтерацию(), "Количество вызовов за итерацию").Равно(111); - Ожидаем.Что(КонфигурацияПриемник.Стратегия(), "Стратегия").Равно(СтратегииЗапускаБенчмарка.ПропускнаяСпособность); - -КонецПроцедуры - -&Тест -Процедура Тест_ДобавлениеИсполняющиеСреды() Экспорт - - Конфигурация = Новый КонфигурацияБенчмарков(); - Конфигурация.ДобавитьИсполняющуюСреду("dev"); - - Ожидаем.Что(Конфигурация.ИсполняющиеСреды()).Заполнено(); - Ожидаем.Что(Конфигурация.ИсполняющиеСреды()[0].Версия).Равно("dev"); - -КонецПроцедуры - -&Тест -Процедура Тест_УдалениеВсехВерсийИсполняющейСреды() Экспорт - - Конфигурация = Новый КонфигурацияБенчмарков(); - Конфигурация.ДобавитьИсполняющуюСреду("dev"); - Конфигурация.ОчиститьИсполняющиеСреды(); - - Ожидаем.Что(Конфигурация.ИсполняющиеСреды()).ИмеетДлину(0); - -КонецПроцедуры - -Процедура ПроверитьКонфигурациюБенчмаркаСАннотациямиКонфигурации(Конфигурация) - - Экспортеры = Конфигурация.Экспортеры(); - КоллекцияЭкспортеры = ПроцессорыКоллекций.ИзКоллекции(Экспортеры); - ИсполняющиеСреды = Конфигурация.ИсполняющиеСреды(); - Колонки = Конфигурация.Колонки(); - Параметры = Конфигурация.Параметры(); - ИсточникиПараметров = Конфигурация.ИсточникиПараметров(); - - ФункцияПоискаЭкспортера = "Экспортер -> ТипЗнч(Экспортер) = Тип(""ЭкспортерРезультатовБенчмарковВ%1"")"; - - Ожидаем.Что(Конфигурация.Стратегия()).Равно(СтратегииЗапускаБенчмарка.ХолодныйЗапуск); - Ожидаем.Что(Конфигурация.СортировкаОтчета()).Равно(СортировкиОтчетаБенчмарков.ОтБыстрыхКМедленным); - Ожидаем.Что(Конфигурация.ТребуетсяМониторингПамяти()).ЭтоИстина(); - Ожидаем.Что(Конфигурация.КоличествоИтераций()).Равно(100); - Ожидаем.Что(Конфигурация.КоличествоВызововЗаИтерацию()).Равно(200); - Ожидаем.Что(Конфигурация.КоличествоПрогревочныхИтераций()).Равно(300); - Ожидаем.Что(Конфигурация.МинимальноеВремяИтерации()).Равно(400); - Ожидаем.Что(Конфигурация.МинимальноеКоличествоВызововЗаИтерацию()).Равно(500); - Ожидаем.Что(Конфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПередВсеми)[0].ИмяМетода(), "Обработчики").Равно("ПередВсеми"); - Ожидаем.Что(Конфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПослеВсех)[0].ИмяМетода(), "Обработчики").Равно("ПослеВсех"); - Ожидаем.Что(Конфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПередКаждымКейсом)[0].ИмяМетода(), "Обработчики").Равно("ПередКаждымКейсом"); - Ожидаем.Что(Конфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПослеКаждогоКейса)[0].ИмяМетода(), "Обработчики").Равно("ПослеКаждогоКейса"); - Ожидаем.Что(Конфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПередИтерацией)[0].ИмяМетода(), "Обработчики").Равно("ПередИтерацией"); - Ожидаем.Что(Конфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПослеИтерации)[0].ИмяМетода(), "Обработчики").Равно("ПослеИтерации"); - Ожидаем.Что(Конфигурация.КаталогАртефактов()).Равно("path/to/artifacts"); - Ожидаем.Что(КоллекцияЭкспортеры.ЛюбойСоответствует(СтрШаблон(ФункцияПоискаЭкспортера, "Markdown"))).ЭтоИстина(); - Ожидаем.Что(КоллекцияЭкспортеры.ЛюбойСоответствует(СтрШаблон(ФункцияПоискаЭкспортера, "Json"))).ЭтоИстина(); - Ожидаем.Что(КоллекцияЭкспортеры.ЛюбойСоответствует(СтрШаблон(ФункцияПоискаЭкспортера, "Html"))).ЭтоИстина(); - Ожидаем.Что(ИсполняющиеСреды, "Должно быть 4 версии исполняющей среды").ИмеетДлину(4); - Ожидаем.Что(ИсполняющиеСреды[0].Версия, "Версия исполняющей среды stable").Равно("stable"); - Ожидаем.Что(ИсполняющиеСреды[1].Версия, "Версия исполняющей среды 1.9.3").Равно("1.9.3"); - Ожидаем.Что(ИсполняющиеСреды[2].Версия, "Версия исполняющей среды 1.9.4").Равно("1.9.4"); - Ожидаем.Что(ИсполняющиеСреды[3].Версия, "Версия исполняющей среды 2.0.0").Равно("2.0.0"); - Ожидаем.Что(ИсполняющиеСреды[3].Наименование, "Наименование исполняющей среды 2.0.0").Равно("Новая"); - Ожидаем.Что(ИсполняющиеСреды[3].ЭтоЭталон, "Исполняющая среда версии 2.0.0 - эталонная").ЭтоИстина(); - Ожидаем.Что(Колонки, "Колонки").Содержит(КолонкиОтчетаБенчмарков.Мин); - Ожидаем.Что(Колонки, "Колонки").Содержит(КолонкиОтчетаБенчмарков.Макс); - Ожидаем.Что(Параметры, "Параметры").ИмеетДлину(2); - Ожидаем.Что(Параметры[0], "Параметры").ИмеетТип("ПараметрБенчмарка"); - Ожидаем.Что(Параметры[0].Значение(), "Параметры").Равно(100); - Ожидаем.Что(Параметры[1].Значение(), "Параметры").Равно(200); - Ожидаем.Что(ИсточникиПараметров, "Источники параметров").ИмеетДлину(1); - Ожидаем.Что(ИсточникиПараметров[0].ИмяПоля, "Источники параметров").Равно("ОбщееЗначение"); - Ожидаем.Что(ИсточникиПараметров[0].Источник, "Источники параметров").Равно("ПолучитьЗначения"); - -КонецПроцедуры - -Функция ПрочитатьСобытияИзЛога(ПутьКФайлу) - - ЧтениеТекста = Новый ЧтениеТекста(ПутьКФайлу, КодировкаТекста.UTF8); - ТекстЛога = ЧтениеТекста.Прочитать(); - ЧтениеТекста.Закрыть(); - - Возврат СтрРазделить(ТекстЛога, Символы.ПС, Ложь); - -КонецФункции diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\260\320\237\321\200\320\276\321\206\320\265\321\201\321\201\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/tests/\320\242\320\265\321\201\321\202\321\213\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\260\320\237\321\200\320\276\321\206\320\265\321\201\321\201\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 f0efb54..e992d8e 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\260\320\237\321\200\320\276\321\206\320\265\321\201\321\201\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/tests/\320\242\320\265\321\201\321\202\321\213\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\260\320\237\321\200\320\276\321\206\320\265\321\201\321\201\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" @@ -8,6 +8,8 @@ Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов Перем _ИсходныйТаймаутПроцесса; // Строка +#Область ОбработчикиСобытий + &Инициализация Процедура ПередВсеми() Экспорт @@ -30,6 +32,10 @@ КонецПроцедуры +#КонецОбласти + +#Область Тесты + &Тест Процедура ТестДолжен_ЗапуститьБенчмаркВДочернемПроцессе() Экспорт @@ -165,6 +171,10 @@ КонецПроцедуры +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Функция НовыйМенеджерПроцессов(Тип, ДескрипторыБенчмарков) Возврат Новый МенеджерПроцессовБенчмарков( @@ -196,3 +206,5 @@ ЗаписьТекста.Закрыть(); КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\276\320\262\320\241\320\276\320\261\321\213\321\202\320\270\320\271\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\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\276\320\262\320\241\320\276\320\261\321\213\321\202\320\270\320\271\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..bf9cc6f --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\276\320\262\320\241\320\276\320\261\321\213\321\202\320\270\320\271\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -0,0 +1,144 @@ +// BSLLS:LineLength-off +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать fluent +#Использовать tempfiles +#Использовать "helpers" +#Использовать "fixtures/benchmarks" + +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов + +#Область ОбработчикиСобытий + +&Инициализация +Процедура ПередВсеми() Экспорт + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); +КонецПроцедуры + +&Завершение +Процедура ПослеВсех() Экспорт + _МенеджерВременныхФайлов.Удалить(); +КонецПроцедуры + +#КонецОбласти + +#Область Тесты + +&Тест +Процедура ТестДолжен_ВызватьАннотированныеОбработчикиСобытий() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСОбработчикамиСобытий"); + ПутьКЛогу = _МенеджерВременныхФайлов.НовоеИмяФайла(); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + Конфигурация.ДобавитьПараметр("ПутьКЛогу", ПутьКЛогу); + + // Действие + Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + События = ПрочитатьСобытияИзЛога(ПутьКЛогу); + + Ожидаем.Что(События).Содержит("ПередВсеми"); + Ожидаем.Что(События).Содержит("ПослеВсех"); + Ожидаем.Что(События).Содержит("ПередКаждымКейсом"); + Ожидаем.Что(События).Содержит("ПослеКаждогоКейса"); + Ожидаем.Что(События).Содержит("ПередКаждым"); + Ожидаем.Что(События).Содержит("ПослеКаждого"); + Ожидаем.Что(События).Содержит("ПередИтерацией"); + Ожидаем.Что(События).Содержит("ПослеИтерации"); + Ожидаем.Что(События).Не_().Содержит("БезАннотации"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ДобавитьОбработчикСобытия() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСОбработчикамиСобытий"); + ПутьКЛогу = _МенеджерВременныхФайлов.НовоеИмяФайла(); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + Конфигурация.ДобавитьОбработчикСобытия("БезАннотации", СобытияБенчмарков.ПередКаждымКейсом); + Конфигурация.ДобавитьПараметр("ПутьКЛогу", ПутьКЛогу); + + // Действие + Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + События = ПрочитатьСобытияИзЛога(ПутьКЛогу); + + Ожидаем.Что(События).Содержит("ПередКаждымКейсом"); + Ожидаем.Что(События).Содержит("БезАннотации"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_УдалитьОбработчикСобытия() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСОбработчикамиСобытий"); + ПутьКЛогу = _МенеджерВременныхФайлов.НовоеИмяФайла(); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + Конфигурация.УстановитьКоличествоПрогревочныхИтераций(0); + + Конфигурация.УдалитьОбработчикиСобытия(СобытияБенчмарков.ПередКаждымКейсом); + Конфигурация.ДобавитьПараметр("ПутьКЛогу", ПутьКЛогу); + + // Действие + Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + События = ПрочитатьСобытияИзЛога(ПутьКЛогу); + + Ожидаем.Что(События).Не_().Содержит("ПередКаждымКейсом"); + Ожидаем.Что(События).ИмеетДлину(6); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьИсключениеНаНесуществующемОбработчикеСобытия() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + Конфигурация.ДобавитьОбработчикСобытия("НесуществующийОбработчик", СобытияБенчмарков.ПередКаждымКейсом); + + ПараметрыМетода = Новый Массив(); + ПараметрыМетода.Добавить(Тип); + ПараметрыМетода.Добавить(Конфигурация); + + // Действие и Проверка + Ожидаем + .Что(Бенчмаркинг) + .Метод("Запустить", ПараметрыМетода) + .ВыбрасываетИсключение("Ошибка в обработчике события <НесуществующийОбработчик>: Метод объекта не обнаружен"); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПрочитатьСобытияИзЛога(ПутьКФайлу) + + ЧтениеТекста = Новый ЧтениеТекста(ПутьКФайлу, КодировкаТекста.UTF8); + ТекстЛога = ЧтениеТекста.Прочитать(); + ЧтениеТекста.Закрыть(); + + Возврат СтрРазделить(ТекстЛога, Символы.ПС, Ложь); + +КонецФункции + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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..9826e6e --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -0,0 +1,202 @@ +// BSLLS:LineLength-off +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать fluent +#Использовать tempfiles +#Использовать "helpers" +#Использовать "fixtures/benchmarks" + +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов + +#Область ОбработчикиСобытий + +&Инициализация +Процедура ПередВсеми() Экспорт + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); +КонецПроцедуры + +&Завершение +Процедура ПослеВсех() Экспорт + _МенеджерВременныхФайлов.Удалить(); +КонецПроцедуры + +#КонецОбласти + +#Область Тесты + +&Тест +Процедура ТестДолжен_ОбъединитьПустуюКонфигурациюСПолностьюЗаполненной() Экспорт + + // Подготовка + ПередаваемаяКонфигурация = Новый КонфигурацияБенчмарков() + .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ХолодныйЗапуск) + .УстановитьКоличествоИтераций(111) + .УстановитьКоличествоВызововЗаИтерацию(111) + .УстановитьКоличествоПрогревочныхИтераций(111) + .УстановитьМинимальноеВремяИтерации(111) + .УстановитьМинимальноеКоличествоВызововЗаИтерацию(111) + .УстановитьСортировкуОтчета(СортировкиОтчетаБенчмарков.ОтБыстрыхКМедленным) + .УстановитьКаталогАртефактов("path") + .ДобавитьМониторингПамяти() + .ДобавитьПараметр("col1", 111) + .ДобавитьПараметр("col2", 222) + .ДобавитьОбработчикСобытия("Обработчик1", СобытияБенчмарков.ПередВсеми) + .ДобавитьОбработчикСобытия("Обработчик2", СобытияБенчмарков.ПослеКаждогоКейса) + .ДобавитьОбработчикСобытия("Обработчик3", СобытияБенчмарков.ПослеКаждогоКейса) + .ДобавитьКолонку(КолонкиОтчетаБенчмарков.НижнийКвартиль) + .ДобавитьКолонку(КолонкиОтчетаБенчмарков.ВерхнийКвартиль) + .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Json) + .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Html) + .ДобавитьИсполняющуюСреду("dev") + .ДобавитьИсполняющуюСреду("1.9.3") + .ДобавитьИсточникПараметров("col1", "ПолучитьЗначения"); + + // Действие + НоваяКонфигурация = Новый КонфигурацияБенчмарков().Объединить(ПередаваемаяКонфигурация); + + // Проверка + Ожидаем.Что(НоваяКонфигурация.Стратегия(), "Стратегия").Равно(СтратегииЗапускаБенчмарка.ХолодныйЗапуск); + Ожидаем.Что(НоваяКонфигурация.КоличествоИтераций(), "Количество итераций").Равно(111); + Ожидаем.Что(НоваяКонфигурация.КоличествоВызововЗаИтерацию(), "Количество вызовов за итерацию").Равно(111); + Ожидаем.Что(НоваяКонфигурация.КоличествоПрогревочныхИтераций(), "Количество прогревочных итераций").Равно(111); + Ожидаем.Что(НоваяКонфигурация.МинимальноеВремяИтерации(), "Минимальное время итерации").Равно(111); + Ожидаем.Что(НоваяКонфигурация.МинимальноеКоличествоВызововЗаИтерацию(), "Минимальное количество вызовов за итерацию").Равно(111); + Ожидаем.Что(НоваяКонфигурация.СортировкаОтчета(), "Сортировка отчета").Равно(СортировкиОтчетаБенчмарков.ОтБыстрыхКМедленным); + Ожидаем.Что(НоваяКонфигурация.Параметры()[0].Имя(), "Параметры").Равно("col1"); + Ожидаем.Что(НоваяКонфигурация.Параметры()[1].Имя(), "Параметры").Равно("col2"); + Ожидаем.Что(НоваяКонфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПередВсеми)[0].ИмяМетода(), "Обработчики событий").Равно("Обработчик1"); + Ожидаем.Что(НоваяКонфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПослеКаждогоКейса)[0].ИмяМетода(), "Обработчики событий").Равно("Обработчик2"); + Ожидаем.Что(НоваяКонфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПослеКаждогоКейса)[1].ИмяМетода(), "Обработчики событий").Равно("Обработчик3"); + Ожидаем.Что(НоваяКонфигурация.Колонки(), "Колонки").Содержит(КолонкиОтчетаБенчмарков.НижнийКвартиль); + Ожидаем.Что(НоваяКонфигурация.Колонки(), "Колонки").Содержит(КолонкиОтчетаБенчмарков.ВерхнийКвартиль); + Ожидаем.Что(НоваяКонфигурация.Экспортеры(), "Экспортеры").Содержит(ЭкспортерыРезультатовБенчмарков.Json); + Ожидаем.Что(НоваяКонфигурация.Экспортеры(), "Экспортеры").Содержит(ЭкспортерыРезультатовБенчмарков.Html); + Ожидаем.Что(НоваяКонфигурация.ИсполняющиеСреды()[0].Версия, "Исполняющая среда (dev)").Равно("dev"); + Ожидаем.Что(НоваяКонфигурация.ИсполняющиеСреды()[1].Версия, "Исполняющая среда (1.9.3)").Равно("1.9.3"); + Ожидаем.Что(НоваяКонфигурация.ИсточникиПараметров()[0].ИмяПоля, "Источники параметров").Равно("col1"); + Ожидаем.Что(НоваяКонфигурация.ТребуетсяМониторингПамяти(), "Требуется мониторинг памяти").ЭтоИстина(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ОбъединитьЗаполненнуюКонфигурациюСПустой() Экспорт + + // Подготовка + ЗаполненнаяКонфигурация = Новый КонфигурацияБенчмарков() + .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ХолодныйЗапуск) + .УстановитьКоличествоИтераций(111) + .УстановитьКоличествоВызововЗаИтерацию(111) + .УстановитьКоличествоПрогревочныхИтераций(111) + .УстановитьМинимальноеВремяИтерации(111) + .УстановитьМинимальноеКоличествоВызововЗаИтерацию(111) + .УстановитьСортировкуОтчета(СортировкиОтчетаБенчмарков.ОтБыстрыхКМедленным) + .УстановитьКаталогАртефактов("path") + .ДобавитьМониторингПамяти() + .ДобавитьПараметр("col1", 111) + .ДобавитьПараметр("col2", 222) + .ДобавитьОбработчикСобытия("Обработчик1", СобытияБенчмарков.ПередВсеми) + .ДобавитьОбработчикСобытия("Обработчик2", СобытияБенчмарков.ПослеКаждогоКейса) + .ДобавитьОбработчикСобытия("Обработчик3", СобытияБенчмарков.ПослеКаждогоКейса) + .ДобавитьКолонку(КолонкиОтчетаБенчмарков.НижнийКвартиль) + .ДобавитьКолонку(КолонкиОтчетаБенчмарков.ВерхнийКвартиль) + .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Json) + .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Html) + .ДобавитьИсполняющуюСреду("dev") + .ДобавитьИсполняющуюСреду("1.9.3") + .ДобавитьИсточникПараметров("col1", "ПолучитьЗначения"); + + // Действие + ЗаполненнаяКонфигурация.Объединить(Новый КонфигурацияБенчмарков()); + + // Проверка + Ожидаем.Что(ЗаполненнаяКонфигурация.Стратегия(), "Стратегия").Равно(СтратегииЗапускаБенчмарка.ХолодныйЗапуск); + Ожидаем.Что(ЗаполненнаяКонфигурация.КоличествоИтераций(), "Количество итераций").Равно(111); + Ожидаем.Что(ЗаполненнаяКонфигурация.КоличествоВызововЗаИтерацию(), "Количество вызовов за итерацию").Равно(111); + Ожидаем.Что(ЗаполненнаяКонфигурация.КоличествоПрогревочныхИтераций(), "Количество прогревочных итераций").Равно(111); + Ожидаем.Что(ЗаполненнаяКонфигурация.МинимальноеВремяИтерации(), "Минимальное время итерации").Равно(111); + Ожидаем.Что(ЗаполненнаяКонфигурация.МинимальноеКоличествоВызововЗаИтерацию(), "Минимальное количество вызовов за итерацию").Равно(111); + Ожидаем.Что(ЗаполненнаяКонфигурация.СортировкаОтчета(), "Сортировка отчета").Равно(СортировкиОтчетаБенчмарков.ОтБыстрыхКМедленным); + Ожидаем.Что(ЗаполненнаяКонфигурация.Параметры()[0].Имя(), "Параметры").Равно("col1"); + Ожидаем.Что(ЗаполненнаяКонфигурация.Параметры()[1].Имя(), "Параметры").Равно("col2"); + Ожидаем.Что(ЗаполненнаяКонфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПередВсеми)[0].ИмяМетода(), "Обработчики событий").Равно("Обработчик1"); + Ожидаем.Что(ЗаполненнаяКонфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПослеКаждогоКейса)[0].ИмяМетода(), "Обработчики событий").Равно("Обработчик2"); + Ожидаем.Что(ЗаполненнаяКонфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПослеКаждогоКейса)[1].ИмяМетода(), "Обработчики событий").Равно("Обработчик3"); + Ожидаем.Что(ЗаполненнаяКонфигурация.Колонки(), "Колонки").Содержит(КолонкиОтчетаБенчмарков.НижнийКвартиль); + Ожидаем.Что(ЗаполненнаяКонфигурация.Колонки(), "Колонки").Содержит(КолонкиОтчетаБенчмарков.ВерхнийКвартиль); + Ожидаем.Что(ЗаполненнаяКонфигурация.Экспортеры(), "Экспортеры").Содержит(ЭкспортерыРезультатовБенчмарков.Json); + Ожидаем.Что(ЗаполненнаяКонфигурация.Экспортеры(), "Экспортеры").Содержит(ЭкспортерыРезультатовБенчмарков.Html); + Ожидаем.Что(ЗаполненнаяКонфигурация.ИсполняющиеСреды()[0].Версия, "Исполняющая среда (dev)").Равно("dev"); + Ожидаем.Что(ЗаполненнаяКонфигурация.ИсполняющиеСреды()[1].Версия, "Исполняющая среда (1.9.3)").Равно("1.9.3"); + Ожидаем.Что(ЗаполненнаяКонфигурация.ИсточникиПараметров()[0].ИмяПоля, "Источники параметров").Равно("col1"); + Ожидаем.Что(ЗаполненнаяКонфигурация.ТребуетсяМониторингПамяти(), "Требуется мониторинг памяти").ЭтоИстина(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ОбъединитьЗаполненныеКонфигурации() Экспорт + + // Подготовка + КонфигурацияПриемник = Новый КонфигурацияБенчмарков() + .УстановитьКоличествоИтераций(111) + .УстановитьКоличествоВызововЗаИтерацию(111) + .ДобавитьКолонку(КолонкиОтчетаБенчмарков.НижнийКвартиль) + .ДобавитьОбработчикСобытия("Обработчик1", СобытияБенчмарков.ПередВсеми) + .ДобавитьОбработчикСобытия("Обработчик2", СобытияБенчмарков.ПослеВсех) + .ДобавитьИсточникПараметров("col1", "ПолучитьМассив"); + + КонфигурацияИсточник = Новый КонфигурацияБенчмарков() + .УстановитьКоличествоИтераций(222) + .ДобавитьКолонку(КолонкиОтчетаБенчмарков.ВерхнийКвартиль) + .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Html) + .ДобавитьОбработчикСобытия("Обработчик3", СобытияБенчмарков.ПослеВсех) + .ДобавитьИсточникПараметров("col1", "ПолучитьТаблицуЗначений"); + + // Действие + КонфигурацияПриемник.Объединить(КонфигурацияИсточник); + + // Проверка + ИсточникиПараметров = КонфигурацияПриемник.ИсточникиПараметров(); + ОбработчикиСобытияПередВсеми = КонфигурацияПриемник.ОбработчикиСобытия(СобытияБенчмарков.ПередВсеми); + ОбработчикиСобытияПослеВсех = КонфигурацияПриемник.ОбработчикиСобытия(СобытияБенчмарков.ПослеВсех); + + Ожидаем.Что(КонфигурацияПриемник.КоличествоИтераций(), "Количество итераций").Равно(222); + Ожидаем.Что(КонфигурацияПриемник.КоличествоВызововЗаИтерацию(), "Количество вызовов за итерацию").Равно(111); + Ожидаем.Что(КонфигурацияПриемник.КоличествоПрогревочныхИтераций(), "Количество прогревочных итераций").Равно(6); + Ожидаем.Что(КонфигурацияПриемник.Колонки(), "Колонки").ИмеетДлину(1); + Ожидаем.Что(КонфигурацияПриемник.Колонки(), "Колонки").Содержит(КолонкиОтчетаБенчмарков.ВерхнийКвартиль); + Ожидаем.Что(КонфигурацияПриемник.Экспортеры(), "Экспортеры").Содержит(ЭкспортерыРезультатовБенчмарков.Html); + Ожидаем.Что(ОбработчикиСобытияПередВсеми, "Обработчики событий").ИмеетДлину(0); + Ожидаем.Что(ОбработчикиСобытияПослеВсех, "Обработчики событий").ИмеетДлину(1); + Ожидаем.Что(ОбработчикиСобытияПослеВсех[0].ИмяМетода(), "Обработчики событий").Равно("Обработчик3"); + Ожидаем.Что(ИсточникиПараметров[0].Источник, "Источники параметров").Равно("ПолучитьТаблицуЗначений"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ОбъединитьКонфигурацииСДефолтнымиЗначениями() Экспорт + + // Подготовка + КоличествоИтерацийПоУмолчанию = 15; + + КонфигурацияПриемник = Новый КонфигурацияБенчмарков() + .УстановитьКоличествоИтераций(111) + .УстановитьКоличествоВызововЗаИтерацию(111) + .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ХолодныйЗапуск); + + КонфигурацияИсточник = Новый КонфигурацияБенчмарков() + .УстановитьКоличествоИтераций(КоличествоИтерацийПоУмолчанию) + .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ПропускнаяСпособность); + + // Действие + КонфигурацияПриемник.Объединить(КонфигурацияИсточник); + + // Проверка + Ожидаем.Что(КонфигурацияПриемник.КоличествоИтераций(), "Количество итераций").Равно(КоличествоИтерацийПоУмолчанию); + Ожидаем.Что(КонфигурацияПриемник.КоличествоВызововЗаИтерацию(), "Количество вызовов за итерацию").Равно(111); + Ожидаем.Что(КонфигурацияПриемник.Стратегия(), "Стратегия").Равно(СтратегииЗапускаБенчмарка.ПропускнаяСпособность); + +КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\236\321\201\320\275\320\276\320\262\320\275\321\213\321\205\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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\236\321\201\320\275\320\276\320\262\320\275\321\213\321\205\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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..70ca788 --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\236\321\201\320\275\320\276\320\262\320\275\321\213\321\205\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -0,0 +1,290 @@ +// BSLLS:LineLength-off +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать fluent +#Использовать tempfiles +#Использовать "helpers" +#Использовать "fixtures/benchmarks" + +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов + +#Область ОбработчикиСобытий + +&Инициализация +Процедура ПередВсеми() Экспорт + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); +КонецПроцедуры + +&Завершение +Процедура ПослеВсех() Экспорт + _МенеджерВременныхФайлов.Удалить(); +КонецПроцедуры + +#КонецОбласти + +#Область Тесты + +&Тест +Процедура ТестДолжен_ИзвлечьКонфигурациюИзАннотаций() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСАннотациямиКонфигурации"); + + // Действие + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + + // Проверка + ПроверитьКонфигурациюБенчмаркаСАннотациямиКонфигурации(Конфигурация); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ИзвлечьПараметрыПоляИзАннотации() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСПараметрамиПоля"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Значение")]).Равно(10); + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Значение")]).Равно(100); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_УстановитьПараметрыПоля() Экспорт + + // Подготовка + Тип = Тип("БенчмаркСПараметрамиПоля"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .ОчиститьПараметры() + .ДобавитьПараметр("Значение", 50) + .ДобавитьПараметр("Значение", 150); + + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Значение")]).Равно(50); + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Значение")]).Равно(150); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_УстановитьКоличествоИтераций() Экспорт + + // Подготовка + КоличествоИтераций = 2; + + Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию(); + Конфигурация.УстановитьКоличествоИтераций(КоличествоИтераций); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Запуски[0].Замеры.Количество()).Равно(КоличествоИтераций); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_УстановитьКоличествоВызововЗаИтерацию() Экспорт + + // Подготовка + КоличествоВызововЗаИтерацию = 2; + + Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию() + .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ПропускнаяСпособность) + .УстановитьКоличествоВызововЗаИтерацию(КоличествоВызововЗаИтерацию); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Запуски[0].Замеры[0].КоличествоОпераций).Равно(КоличествоВызововЗаИтерацию); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_УстановитьКоличествоПрогревочныхИтераций() Экспорт + + // Подготовка + КоличествоПрогревочныхИтераций = 2; + + Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию() + .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ПропускнаяСпособность) + .УстановитьКоличествоПрогревочныхИтераций(КоличествоПрогревочныхИтераций); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); + Ожидаем.Что(Результат.Конфигурация.КоличествоПрогревочныхИтераций()).Равно(КоличествоПрогревочныхИтераций); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_УстановитьМинимальноеВремяИтерации() Экспорт + + // Подготовка + МинимальноеВремяИтерации = 50; + КоличествоВызововЗаИтерацию = 0; + + Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию() + .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ПропускнаяСпособность) + .УстановитьКоличествоВызововЗаИтерацию(КоличествоВызововЗаИтерацию) + .УстановитьМинимальноеВремяИтерации(МинимальноеВремяИтерации); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); + Ожидаем.Что(Результат.Конфигурация.МинимальноеВремяИтерации()).Равно(МинимальноеВремяИтерации); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_УстановитьМинимальноеКоличествоВызововЗаИтерацию() Экспорт + + // Подготовка + КоличествоВызововЗаИтерацию = 0; + МинимальноеКоличествоВызововЗаИтерацию = 10; + + Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию() + .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ПропускнаяСпособность) + .УстановитьКоличествоВызововЗаИтерацию(КоличествоВызововЗаИтерацию) + .УстановитьМинимальноеКоличествоВызововЗаИтерацию(МинимальноеКоличествоВызововЗаИтерацию); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); + + Ожидаем + .Что(Результат.Конфигурация.МинимальноеКоличествоВызововЗаИтерацию()) + .Равно(МинимальноеКоличествоВызововЗаИтерацию); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ПрименитьСтратегиюПропускнаяСпособность() Экспорт + + // Подготовка + КоличествоВызововЗаИтерацию = 2; + + Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию() + .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ПропускнаяСпособность) + .УстановитьКоличествоВызововЗаИтерацию(КоличествоВызововЗаИтерацию); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); + Ожидаем.Что(Результат.Запуски[0].Замеры[0].КоличествоОпераций).Равно(КоличествоВызововЗаИтерацию); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ПрименитьСтратегиюХолодныйЗапуск() Экспорт + + // Подготовка + КоличествоВызововЗаИтерацию = 2; + + Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию() + .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ХолодныйЗапуск) + .УстановитьКоличествоВызововЗаИтерацию(КоличествоВызововЗаИтерацию); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); + Ожидаем.Что(Результат.Запуски[0].Замеры[0].КоличествоОпераций).Равно(1); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВключитьМониторингПамяти() Экспорт + + // Подготовка + Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию(); + Конфигурация.ДобавитьМониторингПамяти(); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Запуски[0].Статистика.ВыделяемаяПамять).Заполнено(); + Ожидаем.Что(Результат.Конфигурация.ТребуетсяМониторингПамяти()).ЭтоИстина(); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура ПроверитьКонфигурациюБенчмаркаСАннотациямиКонфигурации(Конфигурация) + + Экспортеры = Конфигурация.Экспортеры(); + КоллекцияЭкспортеры = ПроцессорыКоллекций.ИзКоллекции(Экспортеры); + ИсполняющиеСреды = Конфигурация.ИсполняющиеСреды(); + Колонки = Конфигурация.Колонки(); + Параметры = Конфигурация.Параметры(); + ИсточникиПараметров = Конфигурация.ИсточникиПараметров(); + + ФункцияПоискаЭкспортера = "Экспортер -> ТипЗнч(Экспортер) = Тип(""ЭкспортерРезультатовБенчмарковВ%1"")"; + + Ожидаем.Что(Конфигурация.Стратегия()).Равно(СтратегииЗапускаБенчмарка.ХолодныйЗапуск); + Ожидаем.Что(Конфигурация.СортировкаОтчета()).Равно(СортировкиОтчетаБенчмарков.ОтБыстрыхКМедленным); + Ожидаем.Что(Конфигурация.ТребуетсяМониторингПамяти()).ЭтоИстина(); + Ожидаем.Что(Конфигурация.КоличествоИтераций()).Равно(100); + Ожидаем.Что(Конфигурация.КоличествоВызововЗаИтерацию()).Равно(200); + Ожидаем.Что(Конфигурация.КоличествоПрогревочныхИтераций()).Равно(300); + Ожидаем.Что(Конфигурация.МинимальноеВремяИтерации()).Равно(400); + Ожидаем.Что(Конфигурация.МинимальноеКоличествоВызововЗаИтерацию()).Равно(500); + Ожидаем.Что(Конфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПередВсеми)[0].ИмяМетода(), "Обработчики").Равно("ПередВсеми"); + Ожидаем.Что(Конфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПослеВсех)[0].ИмяМетода(), "Обработчики").Равно("ПослеВсех"); + Ожидаем.Что(Конфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПередКаждымКейсом)[0].ИмяМетода(), "Обработчики").Равно("ПередКаждымКейсом"); + Ожидаем.Что(Конфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПослеКаждогоКейса)[0].ИмяМетода(), "Обработчики").Равно("ПослеКаждогоКейса"); + Ожидаем.Что(Конфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПередИтерацией)[0].ИмяМетода(), "Обработчики").Равно("ПередИтерацией"); + Ожидаем.Что(Конфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПослеИтерации)[0].ИмяМетода(), "Обработчики").Равно("ПослеИтерации"); + Ожидаем.Что(Конфигурация.КаталогАртефактов()).Равно("path/to/artifacts"); + Ожидаем.Что(КоллекцияЭкспортеры.ЛюбойСоответствует(СтрШаблон(ФункцияПоискаЭкспортера, "Markdown"))).ЭтоИстина(); + Ожидаем.Что(КоллекцияЭкспортеры.ЛюбойСоответствует(СтрШаблон(ФункцияПоискаЭкспортера, "Json"))).ЭтоИстина(); + Ожидаем.Что(КоллекцияЭкспортеры.ЛюбойСоответствует(СтрШаблон(ФункцияПоискаЭкспортера, "Html"))).ЭтоИстина(); + Ожидаем.Что(ИсполняющиеСреды, "Должно быть 4 версии исполняющей среды").ИмеетДлину(4); + Ожидаем.Что(ИсполняющиеСреды[0].Версия, "Версия исполняющей среды stable").Равно("stable"); + Ожидаем.Что(ИсполняющиеСреды[1].Версия, "Версия исполняющей среды 1.9.3").Равно("1.9.3"); + Ожидаем.Что(ИсполняющиеСреды[2].Версия, "Версия исполняющей среды 1.9.4").Равно("1.9.4"); + Ожидаем.Что(ИсполняющиеСреды[3].Версия, "Версия исполняющей среды 2.0.0").Равно("2.0.0"); + Ожидаем.Что(ИсполняющиеСреды[3].Наименование, "Наименование исполняющей среды 2.0.0").Равно("Новая"); + Ожидаем.Что(ИсполняющиеСреды[3].ЭтоЭталон, "Исполняющая среда версии 2.0.0 - эталонная").ЭтоИстина(); + Ожидаем.Что(Колонки, "Колонки").Содержит(КолонкиОтчетаБенчмарков.Мин); + Ожидаем.Что(Колонки, "Колонки").Содержит(КолонкиОтчетаБенчмарков.Макс); + Ожидаем.Что(Параметры, "Параметры").ИмеетДлину(2); + Ожидаем.Что(Параметры[0], "Параметры").ИмеетТип("ПараметрБенчмарка"); + Ожидаем.Что(Параметры[0].Значение(), "Параметры").Равно(100); + Ожидаем.Что(Параметры[1].Значение(), "Параметры").Равно(200); + Ожидаем.Что(ИсточникиПараметров, "Источники параметров").ИмеетДлину(1); + Ожидаем.Что(ИсточникиПараметров[0].ИмяПоля, "Источники параметров").Равно("ОбщееЗначение"); + Ожидаем.Что(ИсточникиПараметров[0].Источник, "Источники параметров").Равно("ПолучитьЗначения"); + +КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\236\321\202\321\207\320\265\321\202\320\260\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\236\321\202\321\207\320\265\321\202\320\260\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..c24b65a --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -0,0 +1,213 @@ +// BSLLS:LineLength-off +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать fluent +#Использовать fs +#Использовать tempfiles +#Использовать "helpers" +#Использовать "fixtures/benchmarks" + +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов + +#Область ОбработчикиСобытий + +&Инициализация +Процедура ПередВсеми() Экспорт + + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); + +КонецПроцедуры + +&После +Процедура ПослеЗапускаТеста() Экспорт + + КаталогАртефактов = ".\BenchmarkArtifacts"; + + ФС.УдалитьФайлы(КаталогАртефактов); + +КонецПроцедуры + +&Завершение +Процедура ПослеВсех() Экспорт + + _МенеджерВременныхФайлов.Удалить(); + +КонецПроцедуры + +#КонецОбласти + +#Область Тесты + +&Тест +Процедура ТестДолжен_СортироватьОтчетПоМетоду() Экспорт + + // Подготовка + Тип = Тип("БенчмаркиССортировкой"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + Конфигурация.УстановитьСортировкуОтчета(СортировкиОтчетаБенчмарков.Метод); + + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + + Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + + Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + + Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + + Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_СортироватьОтчетОтБыстрыхКМедленнымИзАннотации() Экспорт + + // Подготовка + Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда + Возврат; + КонецЕсли; + + Тип = Тип("БенчмаркиССортировкой"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + Конфигурация.УстановитьСортировкуОтчета(СортировкиОтчетаБенчмарков.ОтБыстрыхКМедленным); + Конфигурация.ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаВремени", СобытияБенчмарков.ПослеКаждогоКейса); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + + Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + + Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + + Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + + Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_СортироватьОтчетОтМедленныхКБыстрым() Экспорт + + // Подготовка + Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда + Возврат; + КонецЕсли; + + Тип = Тип("БенчмаркиССортировкой"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + Конфигурация.УстановитьСортировкуОтчета(СортировкиОтчетаБенчмарков.ОтМедленныхКБыстрым); + Конфигурация.ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаВремени", СобытияБенчмарков.ПослеКаждогоКейса); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + + Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + + Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + + Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + + Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_СортироватьОтчетПоУмолчанию() Экспорт + + // Подготовка + Тип = Тип("БенчмаркиССортировкой"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + Конфигурация.УстановитьСортировкуОтчета(СортировкиОтчетаБенчмарков.ПоУмолчанию); + + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + + Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + + Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + + Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + + Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВключитьНаименованиеВОтчет() Экспорт + + // Подготовка + Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию(); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип("БенчмаркСНаименованием"), Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); + + ДескрипторСНаименованием = Результат.Отчет.Таблица[0]; + ДескрипторБезНаименования = Результат.Отчет.Таблица[1]; + + Ожидаем.Что(ДескрипторСНаименованием[КолонкиОтчетаБенчмарков.Метод]).Равно("Тестовое наименование бенчмарка"); + Ожидаем.Что(ДескрипторБезНаименования[КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБезНаименования"); + +КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\260\321\200\321\201\320\265\321\200\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\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\262CLI.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\260\321\200\321\201\320\265\321\200\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\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\262CLI.os" index 8c02c6e..29c43db 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\260\321\200\321\201\320\265\321\200\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\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\262CLI.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\260\321\200\321\201\320\265\321\200\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\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\262CLI.os" @@ -3,6 +3,8 @@ Перем _ПарсерПараметровБенчмарковCLI; // ПарсерПараметровБенчмарковCLI +#Область ОбработчикиСобытий + &Инициализация Процедура ПередВсеми() Экспорт @@ -10,6 +12,10 @@ КонецПроцедуры +#КонецОбласти + +#Область Тесты + &Тест &Параметры("field=1", 1) &Параметры("field=test", "test") @@ -24,7 +30,7 @@ &Параметры("field=ложь", Ложь) &Параметры("field=-5", -5) &Параметры("field=a=b", "a=b") -Процедура ТестДолжен_РазобратьПараметрCLI(ПараметрCLI, ОжидаемоеЗначение) Экспорт +Процедура ТестДолжен_РазобратьПараметрCLIВПараметрБенчмарка(ПараметрCLI, ОжидаемоеЗначение) Экспорт // Действие Параметр = _ПарсерПараметровБенчмарковCLI.РазобратьПараметр(ПараметрCLI); @@ -49,3 +55,5 @@ .ВыбрасываетИсключение("В значении опции -p, --param <=1> не указано имя поля"); КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\264\320\263\320\276\321\202\320\276\320\262\320\270\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\264\320\263\320\276\321\202\320\276\320\262\320\270\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" index 1785392..3847d95 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\264\320\263\320\276\321\202\320\276\320\262\320\270\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\264\320\263\320\276\321\202\320\276\320\262\320\270\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" @@ -8,6 +8,8 @@ Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов Перем _ПодготовительФайлаБенчмарка; // ПодготовительФайлаБенчмарка +#Область ОбработчикиСобытий + &Инициализация Процедура ПередВсеми() Экспорт _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); @@ -21,6 +23,10 @@ КонецПроцедуры +#КонецОбласти + +#Область Тесты + &Тест Процедура ТестДолжен_ВернутьИсходныйФайлЕслиАннотацияБенчмаркУжеЕсть() Экспорт @@ -66,11 +72,18 @@ &Параметры("./tests/fixtures/АлгоритмБезАннотации.os", Ложь) Процедура ТестДолжен_ОпределитьНаличиеБенчмарковВФайле(ПутьКФайлу, Ожидание) Экспорт - // Действие и Проверка - Ожидаем.Что(_ПодготовительФайлаБенчмарка.СодержитБенчмарки(ПутьКФайлу)).Равно(Ожидание); + // Действие + СодержитБенчмарки = _ПодготовительФайлаБенчмарка.СодержитБенчмарки(ПутьКФайлу); + + // Проверка + Ожидаем.Что(СодержитБенчмарки).Равно(Ожидание); КонецПроцедуры +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Функция ПрочитатьТекст(ПутьКФайлу) ЧтениеТекста = Новый ЧтениеТекста(ПутьКФайлу, КодировкаТекста.UTF8); @@ -80,3 +93,5 @@ Возврат Текст; КонецФункции + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217\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\237\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217\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..ba9ec7f --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -0,0 +1,162 @@ +// BSLLS:LineLength-off +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать fluent +#Использовать fs +#Использовать tempfiles +#Использовать "helpers" +#Использовать "fixtures/benchmarks" + +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов + +#Область ОбработчикиСобытий + +&Инициализация +Процедура ПередВсеми() Экспорт + + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); + +КонецПроцедуры + +&После +Процедура ПослеЗапускаТеста() Экспорт + + КаталогАртефактов = ".\BenchmarkArtifacts"; + + ФС.УдалитьФайлы(КаталогАртефактов); + +КонецПроцедуры + +&Завершение +Процедура ПослеВсех() Экспорт + + _МенеджерВременныхФайлов.Удалить(); + +КонецПроцедуры + +#КонецОбласти + +#Область Тесты + +&Тест +Процедура ТестДолжен_ВернутьНеопределеноПриПодключенииНесуществующегоФайлаБенчмарка() Экспорт + + // Подготовка + ПутьКФайлу = "./tests/fixtures/Классы/БенчмаркНесуществующий.os"; + + // Действие + Тип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлу); + + // Проверка + Ожидаем.Что(Тип).ЭтоНеопределено(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВернутьНеопределеноПриПодключенииФайлаБезБенчмарков() Экспорт + + // Подготовка + ПутьКФайлу = "./tests/fixtures/Классы/БенчмаркБезБенчмарков.os"; + + // Действие + Тип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлу); + + // Проверка + Ожидаем.Что(Тип).ЭтоНеопределено(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_УбратьЦифрыВНачалеИмениТипаПриПодключенииФайла() Экспорт + + // Подготовка + Каталог = _МенеджерВременныхФайлов.СоздатьКаталог(); + ПутьКФайлу = ОбъединитьПути(Каталог, "123ТестовыйБенчмарк.os"); + + Код = " + |&Бенчмарк + |Процедура Бенчмарк() Экспорт + |КонецПроцедуры"; + + ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8); + ЗаписьТекста.Записать(Код); + ЗаписьТекста.Закрыть(); + + // Действие + Тип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлу); + + // Проверка + Ожидаем.Что(Строка(Тип)).Равно("ТестовыйБенчмарк"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ПодключитьБенчмаркСУникальнымТипомПриКоллизииИмен() Экспорт + + // Подготовка + Каталог = _МенеджерВременныхФайлов.СоздатьКаталог(); + ПутьКФайлу = ОбъединитьПути(Каталог, "ПустойБенчмарк.os"); + + Код = " + |&Бенчмарк + |Процедура Бенчмарк() Экспорт + |КонецПроцедуры"; + + ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8); + ЗаписьТекста.Записать(Код); + ЗаписьТекста.Закрыть(); + + // Действие + Тип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлу); + + // Проверка + ИмяТипа = Строка(Тип); + + Ожидаем.Что(ИмяТипа).Не_().Равно("ПустойБенчмарк"); + Ожидаем.Что(Лев(ИмяТипа, СтрДлина("ПустойБенчмарк_"))).Равно("ПустойБенчмарк_"); + Ожидаем.Что(Тип).Не_().Равно(Тип("ПустойБенчмарк")); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ПередатьФактическийТипВСценарийИзолированногоЗапуска() Экспорт + + // Подготовка + Каталог = _МенеджерВременныхФайлов.СоздатьКаталог(); + ПутьКФайлу = ОбъединитьПути(Каталог, "ПустойБенчмарк.os"); + + Код = " + |&Бенчмарк + |Процедура Бенчмарк() Экспорт + |КонецПроцедуры"; + + ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8); + ЗаписьТекста.Записать(Код); + ЗаписьТекста.Закрыть(); + + ПодключенныйТип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлу); + Конфигурация = Новый КонфигурацияБенчмарков(ПодключенныйТип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + Конфигурация.УстановитьСтратегию(СтратегииЗапускаБенчмарка.ХолодныйЗапуск); + + // Действие + Результат = Бенчмаркинг.Запустить(ПодключенныйТип, Конфигурация); + + // Проверка + Дескриптор = Результат.ДескрипторыБенчмарков.ПолучитьПервый(); + Запуск = Результат.Запуски[0]; + + Ожидаем.Что(Результат.ДескрипторыБенчмарков.Количество()).Равно(1); + Ожидаем.Что(Результат.Запуски.Количество()).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица.Количество()).Равно(1); + Ожидаем.Что(Дескриптор.ТипКласса()).Равно(ПодключенныйТип); + Ожидаем.Что(Запуск.Кейс.ДескрипторБенчмарка()).Равно(Дескриптор); + Ожидаем.Что(Запуск.Кейс.ДескрипторБенчмарка().ТипКласса()).Равно(ПодключенныйТип); + Ожидаем.Что(Запуск.Кейс.ДескрипторБенчмарка().ТипКласса()).Не_().Равно(Тип("ПустойБенчмарк")); + Ожидаем.Что(Запуск.Замеры.Количество()).Равно(1); + +КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271.os" index b096302..654b736 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271.os" @@ -4,6 +4,8 @@ #Использовать asserts #Использовать "helpers" +#Область Тесты + &Тест &Параметры(0, "0 B") &Параметры(1, "1 B") @@ -15,7 +17,6 @@ &Параметры(1073741824, "1 GB") &Параметры(1099511627776, "1,024 GB") Процедура ТестДолжен_ФорматироватьБайтыВЧитаемыйВид(Значение, ОжидаемоеПредставление) Экспорт - // Действие Результат = ПредставленияПоказателейБенчмарков.ПредставлениеЧитаемое( Значение, @@ -96,6 +97,7 @@ // Проверка Ожидаем.Что(Результат).Равно(ОжидаемоеПредставление); + Если ЧислоДляПроверки <> 0 Тогда Ожидаем.Что(РезультатСМинусом).Равно("-" + ОжидаемоеПредставление); КонецЕсли; @@ -160,3 +162,5 @@ Ожидаем.Что(СтрокаБезОбрезания).Равно("abcdef"); КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\227\320\260\320\277\321\203\321\201\320\272\320\260\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\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 3360320..ce5d516 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\227\320\260\320\277\321\203\321\201\320\272\320\260\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\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -9,6 +9,8 @@ Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов +#Область ОбработчикиСобытий + &Инициализация Процедура ПередВсеми() Экспорт _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); @@ -19,8 +21,12 @@ _МенеджерВременныхФайлов.Удалить(); КонецПроцедуры +#КонецОбласти + +#Область Тесты + &Тест -Процедура ТестДолжен_СериализоватьИДесериализовать() Экспорт +Процедура ТестДолжен_СериализоватьИДесериализоватьНастройкиЗапускаБенчмарков() Экспорт // Подготовка Тип = Тип("БенчмаркСАннотациямиКонфигурации"); @@ -45,6 +51,10 @@ КонецПроцедуры +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Процедура ПроверитьДескрипторыБенчмаркаСАннотациямиКонфигурации(ДескрипторыБенчмарков) Ожидаем.Что(ДескрипторыБенчмарков.Количество()).Равно(1); @@ -69,7 +79,7 @@ КонецПроцедуры Процедура ПроверитьКонфигурациюБенчмаркаСАннотациямиКонфигурации(Конфигурация) - + Экспортеры = Конфигурация.Экспортеры(); КоллекцияЭкспортеры = ПроцессорыКоллекций.ИзКоллекции(Экспортеры); ИсполняющиеСреды = Конфигурация.ИсполняющиеСреды(); @@ -113,3 +123,5 @@ Ожидаем.Что(ИсточникиПараметров[0].Источник, "Источники параметров").Равно("ПолучитьЗначения"); КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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 e1b6575..9007eb2 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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" @@ -11,6 +11,8 @@ Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов +#Область ОбработчикиСобытий + &Инициализация Процедура ПередВсеми() Экспорт _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); @@ -23,24 +25,28 @@ &После Процедура ПослеЗапускаТеста() Экспорт - + КаталогАртефактов = ".\BenchmarkArtifacts"; ФС.УдалитьФайлы(КаталогАртефактов); КонецПроцедуры +#КонецОбласти + +#Область Тесты + &Тест -Процедура ТестДолжен_СериализоватьИДесериализовать() Экспорт +Процедура ТестДолжен_СериализоватьИДесериализоватьРезультатЗапускаБенчмарков() Экспорт + // Подготовка Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда Возврат; КонецЕсли; - // Подготовка Тип = Тип("БенчмаркСПараметрамиМетодаИПоля"); ТестированиеБенчмарков.ПодготовитьСреду("dev"); - + // Настройка дескриптора бенчмарка ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); ДескрипторБенчмарка = ДескрипторыБенчмарков @@ -60,16 +66,15 @@ .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Json) .ДобавитьИсполняющуюСреду("dev", "develop"); - // Действие + // Действие Результат = Бенчмаркинг.Запустить(ДескрипторыБенчмарков, Конфигурация); + // Проверка ИмяФайла = _МенеджерВременныхФайлов.НовоеИмяФайла(); Сериализатор = Новый СериализаторРезультатовБенчмарков(); Сериализатор.ЗаписатьВJson(Результат, ИмяФайла); РезультатПрочитанный = Сериализатор.ПрочитатьИзJson(ИмяФайла); - // Проверка - // Среда окружения СредаОкружения = РезультатПрочитанный.СредаОкружения; @@ -85,7 +90,7 @@ Ожидаем.Что(ДескрипторыБенчмарков, "Дескрипторы бенчмарков").ИмеетТип("КоллекцияДескрипторовБенчмарков"); Ожидаем.Что(ДескрипторыБенчмарков.Количество(), "Дескрипторы бенчмарков").Равно(1); - + // Дескриптор бенчмарков ДескрипторБенчмарка = ДескрипторыБенчмарков.ПолучитьПервый(); НаборыПараметров = ДескрипторБенчмарка.НаборыПараметров(); @@ -147,10 +152,12 @@ Ожидаем.Что(Отчет.Таблица[6][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")], "ПолеОбщее (7)").Равно("ЧтениеXML"); Ожидаем.Что(Отчет.Таблица[8][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")], "ПолеОбщее (9)").Равно('19700101'); + // Действие // Конфигурация Конфигурация = РезультатПрочитанный.Конфигурация; ИсполняющиеСреды = Конфигурация.ИсполняющиеСреды(); + // Проверка Ожидаем.Что(Конфигурация, "Конфигурация").ИмеетТип("КонфигурацияБенчмарков"); Ожидаем.Что(Конфигурация.Параметры(), "Параметры").ИмеетДлину(2); Ожидаем.Что(Конфигурация.Параметры()[0].Имя(), "Параметр 1").Равно("ПолеОбщее"); @@ -169,5 +176,7 @@ Ожидаем.Что(ИсполняющиеСреды[0].Версия, "Исполняющая среда 1").Заполнено(); Ожидаем.Что(ИсполняющиеСреды[0].Наименование, "Исполняющая среда 1").Равно("develop"); Ожидаем.Что(ИсполняющиеСреды[0].ЭтоЭталон, "Исполняющая среда 1").ЭтоЛожь(); - + КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\270.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\270.os" index 8f1225b..8f0d307 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\270.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\270.os" @@ -4,6 +4,8 @@ #Использовать asserts #Использовать "helpers" +#Область Тесты + &Тест Процедура ТестДолжен_ПрочитатьПустуюКоллекциюЗамеров() Экспорт @@ -32,11 +34,14 @@ &Тест Процедура ТестДолжен_РассчитатьСтатистикуДляНечетногоКоличестваЗамеров() Экспорт - + + // Подготовка ТестовыеЗамеры = ТестовыеЗамеры("12, 15, 22, 25, 17, 28, 14", "100, 101, 102"); + // Действие Статистика = Новый СтатистикаБенчмарка(ТестовыеЗамеры); + // Проверка Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(19); Ожидаем.Что(Статистика.Мин, "Мин").Равно(12); Ожидаем.Что(Статистика.Макс, "Макс").Равно(28); @@ -56,11 +61,14 @@ &Тест Процедура ТестДолжен_РассчитатьСтатистикуДляЧетногоКоличестваЗамеров() Экспорт - + + // Подготовка ТестовыеЗамеры = ТестовыеЗамеры("12, 15, 22, 25, 17, 28, 20, 4", "100, 102"); + // Действие Статистика = Новый СтатистикаБенчмарка(ТестовыеЗамеры); + // Проверка Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(17.875); Ожидаем.Что(Статистика.Мин, "Мин").Равно(4); Ожидаем.Что(Статистика.Макс, "Макс").Равно(28); @@ -80,11 +88,14 @@ &Тест Процедура ТестДолжен_РассчитатьСтатистикуДляОдинаковыхЗамеров() Экспорт - + + // Подготовка ТестовыеЗамеры = ТестовыеЗамеры("5, 5, 5, 5", "100, 100"); + // Действие Статистика = Новый СтатистикаБенчмарка(ТестовыеЗамеры); + // Проверка Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(5); Ожидаем.Что(Статистика.Мин, "Мин").Равно(5); Ожидаем.Что(Статистика.Макс, "Макс").Равно(5); @@ -104,11 +115,14 @@ &Тест Процедура ТестДолжен_РассчитатьСтатистикуДляОтрицательныхЗамеров() Экспорт - + + // Подготовка ТестовыеЗамеры = ТестовыеЗамеры("-12, 15, -22, 25, 17, 28, 0, 4", "100, -100"); + // Действие Статистика = Новый СтатистикаБенчмарка(ТестовыеЗамеры); + // Проверка Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(6.875); Ожидаем.Что(Статистика.Мин, "Мин").Равно(-22); Ожидаем.Что(Статистика.Макс, "Макс").Равно(28); @@ -128,14 +142,17 @@ &Тест Процедура ТестДолжен_КонвертироватьСтатистикуВМиллисекунды() Экспорт - + + // Подготовка ОтношениеКБазовой = ЕдиницыИзмеренийБенчмарков.Миллисекунда.ОтношениеКБазовой; ТестовыеЗамеры = ТестовыеЗамеры("12, 15, 22, 25, 17, 28, 14", "100, 101", ОтношениеКБазовой); + // Действие Статистика = Новый СтатистикаБенчмарка(ТестовыеЗамеры); Статистика.ВМиллисекунды(); + // Проверка Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(19); Ожидаем.Что(Статистика.Мин, "Мин").Равно(12); Ожидаем.Что(Статистика.Макс, "Макс").Равно(28); @@ -154,14 +171,17 @@ &Тест Процедура ТестДолжен_КонвертироватьСтатистикуВСекунды() Экспорт - + + // Подготовка ОтношениеКБазовой = ЕдиницыИзмеренийБенчмарков.Секунда.ОтношениеКБазовой; ТестовыеЗамеры = ТестовыеЗамеры("12, 15, 22, 25, 17, 28, 14", "100, 101", ОтношениеКБазовой); + // Действие Статистика = Новый СтатистикаБенчмарка(ТестовыеЗамеры); Статистика.ВСекунды(); + // Проверка Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(19); Ожидаем.Что(Статистика.Мин, "Мин").Равно(12); Ожидаем.Что(Статистика.Макс, "Макс").Равно(28); @@ -180,12 +200,15 @@ &Тест Процедура ТестДолжен_ВернутьСтатистикуВНаносекундахПослеОбратнойКонвертации() Экспорт - + + // Подготовка ТестовыеЗамеры = ТестовыеЗамеры("12, 15, 22, 25, 17, 28, 14", "100, 101"); + // Действие Статистика = Новый СтатистикаБенчмарка(ТестовыеЗамеры); Статистика.ВСекунды().ВНаносекунды(); + // Проверка Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(19); Ожидаем.Что(Статистика.Мин, "Мин").Равно(12); Ожидаем.Что(Статистика.Макс, "Макс").Равно(28); @@ -204,15 +227,18 @@ &Тест Процедура ТестДолжен_РазделитьСтатистику() Экспорт - + + // Подготовка ТестовыеЗамеры1 = ТестовыеЗамеры("32, 16, 64, 128", "100, 102"); ТестовыеЗамеры2 = ТестовыеЗамеры("2, 8, 16, 4", "50, 51"); Статистика1 = Новый СтатистикаБенчмарка(ТестовыеЗамеры1); Статистика2 = Новый СтатистикаБенчмарка(ТестовыеЗамеры2); + // Действие Статистика = Статистика1.Разделить(Статистика2); + // Проверка Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(14.0625); Ожидаем.Что(Статистика.Мин, "Мин").Равно(1); Ожидаем.Что(Статистика.Макс, "Макс").Равно(64); @@ -296,9 +322,12 @@ ЗамерыВремени.Добавить(1000); ЗамерыПамяти.Добавить(1000); + ЗамерыВремениИзСтатистики = Статистика.ЗамерыВремени(); + ЗамерыПамятиИзСтатистики = Статистика.ЗамерыПамяти(); + // Проверка - Ожидаем.Что(Статистика.ЗамерыВремени(), "Замеры времени").ИмеетДлину(3); - Ожидаем.Что(Статистика.ЗамерыПамяти(), "Замеры памяти").ИмеетДлину(2); + Ожидаем.Что(ЗамерыВремениИзСтатистики, "Замеры времени").ИмеетДлину(3); + Ожидаем.Что(ЗамерыПамятиИзСтатистики, "Замеры памяти").ИмеетДлину(2); КонецПроцедуры @@ -307,6 +336,7 @@ // Подготовка Статистика = Новый СтатистикаБенчмарка(); + ПараметрыМетода = Новый Массив(); ПараметрыМетода.Добавить(Новый Соответствие()); @@ -318,8 +348,12 @@ КонецПроцедуры +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Функция ТестовыеЗамеры(СтрокаЗамерыВремени, СтрокаЗамерыПамяти, Множитель = 1) Экспорт - + Замеры = Новый Массив(); МассивЗамеровВремени = СтрРазделить(СтрокаЗамерыВремени, ",", Ложь); @@ -342,3 +376,5 @@ Возврат Замеры; КонецФункции + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\321\200\320\260\321\202\320\265\320\263\320\270\320\270\320\245\320\276\320\273\320\276\320\264\320\275\321\213\320\271\320\227\320\260\320\277\321\203\321\201\320\272.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\321\200\320\260\321\202\320\265\320\263\320\270\320\270\320\245\320\276\320\273\320\276\320\264\320\275\321\213\320\271\320\227\320\260\320\277\321\203\321\201\320\272.os" index 3b8cd78..ed02c2b 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\321\200\320\260\321\202\320\265\320\263\320\270\320\270\320\245\320\276\320\273\320\276\320\264\320\275\321\213\320\271\320\227\320\260\320\277\321\203\321\201\320\272.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\321\200\320\260\321\202\320\265\320\263\320\270\320\270\320\245\320\276\320\273\320\276\320\264\320\275\321\213\320\271\320\227\320\260\320\277\321\203\321\201\320\272.os" @@ -8,9 +8,11 @@ #Использовать "helpers" #Использовать "fixtures/benchmarks" +#Область Тесты + &Тест Процедура ТестДолжен_ЗапуститьОдинБенчмаркОднойИтерациейБезПараметровБезПамяти() Экспорт - + // Подготовка Тип = Тип("ПустойБенчмарк"); @@ -32,7 +34,7 @@ &Тест Процедура ТестДолжен_ЗапуститьОдинБенчмаркОднойИтерациейБезПараметровСПамятью() Экспорт - + // Подготовка Тип = Тип("ПустойБенчмарк"); @@ -55,7 +57,7 @@ &Тест Процедура ТестДолжен_ЗапуститьОдинБенчмаркТремяИтерациямиБезПараметровБезПамяти() Экспорт - + // Подготовка Тип = Тип("ПустойБенчмарк"); @@ -77,7 +79,7 @@ &Тест Процедура ТестДолжен_ЗапуститьОдинБенчмаркСТремяИтерациямиБезПараметровСПамятью() Экспорт - + // Подготовка Тип = Тип("ПустойБенчмарк"); @@ -100,7 +102,7 @@ &Тест Процедура ТестДолжен_ЗапуститьОдинБенчмаркОднойИтерациейДвумяПараметрамиБезПамяти() Экспорт - + // Подготовка Тип = Тип("БенчмаркСПараметрамиПоля"); @@ -125,7 +127,7 @@ &Тест Процедура ТестДолжен_ЗапуститьОдинБенчмаркОднойИтерациейДвумяПараметрамиСПамятью() Экспорт - + // Подготовка Тип = Тип("БенчмаркСПараметрамиПоля"); @@ -151,7 +153,7 @@ &Тест Процедура ТестДолжен_ЗапуститьДваБенчмаркаТремяИтерациямиБезПараметровБезПамяти() Экспорт - + // Подготовка Тип = Тип("БенчмаркиСЭталоном"); @@ -178,7 +180,7 @@ &Тест Процедура ТестДолжен_ЗапуститьТриБенчмаркаОднойИтерациейСПараметрамиБезПамяти() Экспорт - + // Подготовка Тип = Тип("БенчмаркиСЭталономИПараметрами"); @@ -217,7 +219,7 @@ &Тест Процедура ТестДолжен_ЗапуститьСРазнымиСредамиОднойИтерациейБезПараметровБезПамяти() Экспорт - + // Подготовка Тип = Тип("ПустойБенчмарк"); @@ -246,8 +248,12 @@ КонецПроцедуры +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Процедура ПроверитьЗамеры(Замеры, Нач, Кон, Этап) - + Для ИндексЗамера = Нач - 1 По Кон - 1 Цикл Ожидаем.Что(Замеры[ИндексЗамера].Этап).Равно(Этап); @@ -264,5 +270,7 @@ КонецЕсли; КонецЦикла; - -КонецПроцедуры \ No newline at end of file + +КонецПроцедуры + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" index e8f83a3..efc0b8c 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" @@ -8,6 +8,8 @@ Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов +#Область ОбработчикиСобытий + &Инициализация Процедура ПередВсеми() Экспорт _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); @@ -18,6 +20,10 @@ _МенеджерВременныхФайлов.Удалить(); КонецПроцедуры +#КонецОбласти + +#Область Тесты + &Тест Процедура ТестДолжен_ЗаписатьФайлСценарияИФайлНастроекЗапуска() Экспорт @@ -51,9 +57,10 @@ // Действие Сценарий.Записать(ПутьКФайлуСценария, КейсПустогоБенчмарка(ИдентификаторКейса)); + + // Проверка НастройкиЗапуска = ПрочитатьНастройкиЗапуска(ПутьКФайлуНастроек(ПутьКФайлуСценария)); - // Проверка Ожидаем.Что(НастройкиЗапуска.ИдентификаторыКейсов).ИмеетДлину(1); Ожидаем.Что(НастройкиЗапуска.ИдентификаторыКейсов[0]).Равно(ИдентификаторКейса); @@ -80,9 +87,10 @@ // Действие Сценарий.Записать(ПутьКФайлуСценария, Кейсы, Чекпоинт); + + // Проверка НастройкиЗапуска = ПрочитатьНастройкиЗапуска(ПутьКФайлуНастроек(ПутьКФайлуСценария)); - // Проверка Ожидаем.Что(НастройкиЗапуска.ИдентификаторыКейсов).ИмеетДлину(2); Ожидаем.Что(НастройкиЗапуска.ИдентификаторыКейсов[0]).Равно(101); Ожидаем.Что(НастройкиЗапуска.ИдентификаторыКейсов[1]).Равно(102); @@ -93,6 +101,10 @@ КонецПроцедуры +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Функция КейсПустогоБенчмарка(Идентификатор) ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип("ПустойБенчмарк")); @@ -113,3 +125,5 @@ Возврат Сериализатор.ПрочитатьИзJson(ПутьКФайлу); КонецФункции + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\265\321\200\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\265\321\200\320\276\320\262.os" index bfa7fad..f6e83ce 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\265\321\200\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\265\321\200\320\276\320\262.os" @@ -6,6 +6,8 @@ #Использовать "helpers" #Использовать "fixtures/benchmarks" +#Область ОбработчикиСобытий + &После Процедура ПослеЗапускаТеста() Экспорт @@ -13,6 +15,10 @@ КонецПроцедуры +#КонецОбласти + +#Область Тесты + &Тест &Параметры("Markdown", "md", "tests/fixtures/verified-report.md") &Параметры("Json", "json", "tests/fixtures/verified-report.json") @@ -40,11 +46,11 @@ &Тест Процедура ТестДолжен_НеСоздаватьАртефактыБезЭкспортеров() Экспорт + // Подготовка Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда Возврат; КонецЕсли; - // Подготовка Тип = Тип("БенчмаркиДляЭкспорта"); Конфигурация = ПодготовитьКонфигурациюЭкспорта(Тип); Конфигурация.УдалитьЭкспортеры(); @@ -57,6 +63,10 @@ КонецПроцедуры +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Функция ПодготовитьКонфигурациюЭкспорта(Тип, ИмяЭкспортера = "") Конфигурация = Новый КонфигурацияБенчмарков(Тип); @@ -91,3 +101,5 @@ ВызватьИсключение СтрШаблон("Неизвестный экспортер <%1>", ИмяЭкспортера); КонецФункции + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\255\321\202\320\260\320\273\320\276\320\275\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\255\321\202\320\260\320\273\320\276\320\275\320\276\320\262.os" index f02d879..b6d579d 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\255\321\202\320\260\320\273\320\276\320\275\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\255\321\202\320\260\320\273\320\276\320\275\320\276\320\262.os" @@ -7,6 +7,8 @@ #Использовать "helpers" #Использовать "fixtures/benchmarks" +#Область Тесты + &Тест Процедура ТестДолжен_ЗапуститьЭталонныйБенчмаркИзАннотации() Экспорт @@ -15,7 +17,7 @@ Конфигурация = Новый КонфигурацияБенчмарков(Тип); ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - + // Действие Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); @@ -36,7 +38,7 @@ Конфигурация = Новый КонфигурацияБенчмарков(Тип); ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - + ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк").ИспользоватьКакЭталон(); @@ -52,7 +54,7 @@ &Тест Процедура ТестДолжен_ЗапуститьЭталонныеБенчмаркиВРазныхКатегориях() Экспорт - + // Подготовка Тип = Тип("БенчмаркиПоКатегориям"); @@ -94,7 +96,7 @@ // Проверка Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); - + Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды]).Содержит("dev"); Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Эталон]).ЭтоЛожь(); Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Больше(0); @@ -181,7 +183,7 @@ ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); ДескрипторыБенчмарков.Получить(0).ИспользоватьКакЭталон(); ДескрипторыБенчмарков.Получить(1).ИспользоватьКакЭталон(); - + ПараметрыМетода = Новый Массив(); ПараметрыМетода.Добавить(ДескрипторыБенчмарков); ПараметрыМетода.Добавить(Конфигурация); @@ -196,7 +198,7 @@ &Тест Процедура ТестДолжен_ЗапретитьБолееОдногоЭталонногоБенчмаркаВКатегории() Экспорт - + // Подготовка Тип = Тип("БенчмаркиПоКатегориям"); @@ -229,7 +231,7 @@ ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); Конфигурация.ДобавитьИсполняющуюСреду("dev", "dev", Истина); Конфигурация.ДобавитьИсполняющуюСреду("stable", "stable", Истина); - + ПараметрыМетода = Новый Массив(); ПараметрыМетода.Добавить(Тип); ПараметрыМетода.Добавить(Конфигурация); @@ -285,11 +287,11 @@ &Тест Процедура ТестДолжен_ЗапуститьБенчмаркиСоСсылочнымиПараметрами() Экспорт + // Подготовка Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда Возврат; КонецЕсли; - // Подготовка Тип = Тип("БенчмаркиСЭталономИПараметрами"); Конфигурация = Новый КонфигурацияБенчмарков(Тип); @@ -334,4 +336,6 @@ Ожидаем.Что(Результат.Запуски[4].Эталон.Кейс.Идентификатор()).Равно(2); Ожидаем.Что(Результат.Запуски[5].Эталон.Кейс.Идентификатор()).Равно(3); -КонецПроцедуры \ No newline at end of file +КонецПроцедуры + +#КонецОбласти From 7a9c480fab950db8da74d74f75262bf2c4b1d723 Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Wed, 25 Mar 2026 18:40:18 +0300 Subject: [PATCH 04/12] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B8=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...75\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" | 0 ...75\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" | 0 ...75\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" | 0 ...75\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" | 0 ...75\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" | 0 ...75\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" | 0 ...75\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" | 0 ...76\320\227\320\260\320\277\321\203\321\201\320\272\320\260.os" | 0 ...75\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" | 0 ...75\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" | 0 10 files changed, 0 insertions(+), 0 deletions(-) rename "tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\321\200\320\276\320\262.os" => "tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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" (100%) rename "tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.os" => "tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\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" (100%) rename "tests/\320\242\320\265\321\201\321\202\321\213\320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" => "tests/\320\242\320\265\321\201\321\202\321\213\320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\271\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" (100%) rename "tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271.os" => "tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" (100%) rename "tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" => "tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\260\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" (100%) rename "tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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" => "tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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" (100%) rename "tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\270.os" => "tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" (100%) rename "tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\321\200\320\260\321\202\320\265\320\263\320\270\320\270\320\245\320\276\320\273\320\276\320\264\320\275\321\213\320\271\320\227\320\260\320\277\321\203\321\201\320\272.os" => "tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\321\200\320\260\321\202\320\265\320\263\320\270\320\270\320\245\320\276\320\273\320\276\320\264\320\275\320\276\320\263\320\276\320\227\320\260\320\277\321\203\321\201\320\272\320\260.os" (100%) rename "tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\265\321\200\320\276\320\262.os" => "tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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" (100%) rename "tests/\320\242\320\265\321\201\321\202\321\213\320\255\321\202\320\260\320\273\320\276\320\275\320\276\320\262.os" => "tests/\320\242\320\265\321\201\321\202\321\213\320\255\321\202\320\260\320\273\320\276\320\275\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" (100%) diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\321\200\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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" similarity index 100% rename from "tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\321\200\320\276\320\262.os" rename to "tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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" diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\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" similarity index 100% rename from "tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.os" rename to "tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\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" diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\271\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" similarity index 100% rename from "tests/\320\242\320\265\321\201\321\202\321\213\320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" rename to "tests/\320\242\320\265\321\201\321\202\321\213\320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\271\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" similarity index 100% rename from "tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271.os" rename to "tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\227\320\260\320\277\321\203\321\201\320\272\320\260\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\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\260\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" similarity index 100% rename from "tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" rename to "tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\260\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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" similarity index 100% rename from "tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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" rename to "tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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" diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\270.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" similarity index 100% rename from "tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\270.os" rename to "tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\321\200\320\260\321\202\320\265\320\263\320\270\320\270\320\245\320\276\320\273\320\276\320\264\320\275\321\213\320\271\320\227\320\260\320\277\321\203\321\201\320\272.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\321\200\320\260\321\202\320\265\320\263\320\270\320\270\320\245\320\276\320\273\320\276\320\264\320\275\320\276\320\263\320\276\320\227\320\260\320\277\321\203\321\201\320\272\320\260.os" similarity index 100% rename from "tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\321\200\320\260\321\202\320\265\320\263\320\270\320\270\320\245\320\276\320\273\320\276\320\264\320\275\321\213\320\271\320\227\320\260\320\277\321\203\321\201\320\272.os" rename to "tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\202\321\200\320\260\321\202\320\265\320\263\320\270\320\270\320\245\320\276\320\273\320\276\320\264\320\275\320\276\320\263\320\276\320\227\320\260\320\277\321\203\321\201\320\272\320\260.os" diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\265\321\200\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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" similarity index 100% rename from "tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\265\321\200\320\276\320\262.os" rename to "tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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" diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\255\321\202\320\260\320\273\320\276\320\275\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\255\321\202\320\260\320\273\320\276\320\275\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" similarity index 100% rename from "tests/\320\242\320\265\321\201\321\202\321\213\320\255\321\202\320\260\320\273\320\276\320\275\320\276\320\262.os" rename to "tests/\320\242\320\265\321\201\321\202\321\213\320\255\321\202\320\260\320\273\320\276\320\275\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" From 5a318d39d9ffea6572c9c1a3c2d5c23deaf3d11f Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Wed, 25 Mar 2026 18:50:48 +0300 Subject: [PATCH 05/12] =?UTF-8?q?=D0=97=D0=B0=D0=BC=D0=B5=D1=87=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bsl-language-server.json | 2 +- ...\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" | 2 +- ...\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" | 1 + ...\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" | 1 + ...\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" | 1 + ...\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" | 1 + 6 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.bsl-language-server.json b/.bsl-language-server.json index b0f15f6..37c91e9 100644 --- a/.bsl-language-server.json +++ b/.bsl-language-server.json @@ -5,7 +5,7 @@ "listOfIncorrectFirstSymbol": ";|,\\s*\\S+" }, "Typo": { - "userWordsToIgnore": "Аппендер,Дто,Бенчмаркинг,Запускателя,Бенчмарками,Бенчмаркам,Бенчмарк,бенчмарк,Бенчмарки,бенчмарки,Бенчмарков,бенчмарков,Бенчмарка,бенчмарками,бенчмарка,Бенчмарку,Прогревочных,прогревочных,Десериализованный,Десериализуемые,Сериализуемый,Сериализуемое,Несериализуемое,Запускатель,запускатель,Распарсить,распарсить,Регулярка,Десериализатор,Сериализовать,Сериализации,сериализации,Сериализуемые,Сериализацией,Сериализуется,Сериализацию,сериализацию,сериализуемым,сериализован,Сериализуемость,Чекпоинт,Извлекатель,непримитивный,Десериализации,десериализации,Несериализуемых,Валидатор,Валидировать,Алиас,Эталонность" + "userWordsToIgnore": "Аппендер,Дто,Бенчмаркинг,Запускателя,Несериализуемыми,Чекпоинта,Чекпоинту,Бенчмарками,Бенчмаркам,Бенчмарк,бенчмарк,Бенчмарки,бенчмарки,Бенчмарков,бенчмарков,Бенчмарка,бенчмарками,бенчмарка,Бенчмарку,Прогревочных,прогревочных,Десериализованный,Десериализуемые,Сериализуемый,Сериализуемое,Несериализуемое,Запускатель,запускатель,Распарсить,распарсить,Регулярка,Десериализатор,Сериализовать,Сериализации,сериализации,Сериализуемые,Сериализацией,Сериализуется,Сериализацию,сериализацию,сериализуемым,сериализован,Сериализуемость,Чекпоинт,Извлекатель,непримитивный,Десериализации,десериализации,Несериализуемых,Валидатор,Валидировать,Алиас,Эталонность" }, "LatinAndCyrillicSymbolInWord": false, "MagicNumber": { diff --git "a/src/BenchmarkOneScript/core/running/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\265\320\271\321\201\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" "b/src/BenchmarkOneScript/core/running/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\265\320\271\321\201\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" index 432b5b9..c07e931 100644 --- "a/src/BenchmarkOneScript/core/running/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\265\320\271\321\201\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" +++ "b/src/BenchmarkOneScript/core/running/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\265\320\271\321\201\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" @@ -14,7 +14,7 @@ // Параметры - Массив из ПараметрБенчмарка - Параметры запуска кейса. Если не заданы, // - Неопределено создается пустой массив параметров. // ИсполняющаяСреда - ИсполняющаяСредаБенчмарков - Исполняющая среда кейса. Если не задана, -// - Неопределено создается среда по умолчанию. +// - Неопределено создается среда по умолчанию. Процедура ПриСозданииОбъекта(Идентификатор, Дескриптор, Параметры = Неопределено, ИсполняющаяСреда = Неопределено) _Идентификатор = Идентификатор; diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\232\320\265\320\271\321\201\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/tests/\320\242\320\265\321\201\321\202\321\213\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\232\320\265\320\271\321\201\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 3d484e1..2b61b26 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\232\320\265\320\271\321\201\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/tests/\320\242\320\265\321\201\321\202\321\213\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\232\320\265\320\271\321\201\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,4 +1,5 @@ // BSLLS:LineLength-off +// BSLLS:MagicNumber-off #Использовать asserts #Использовать "helpers" diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\260\320\237\321\200\320\276\321\206\320\265\321\201\321\201\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/tests/\320\242\320\265\321\201\321\202\321\213\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\260\320\237\321\200\320\276\321\206\320\265\321\201\321\201\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 e992d8e..fe9180a 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\260\320\237\321\200\320\276\321\206\320\265\321\201\321\201\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/tests/\320\242\320\265\321\201\321\202\321\213\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\260\320\237\321\200\320\276\321\206\320\265\321\201\321\201\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,4 +1,5 @@ // BSLLS:LineLength-off +// BSLLS:MagicNumber-off #Использовать asserts #Использовать tempfiles diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" index efc0b8c..b44644d 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" @@ -1,4 +1,5 @@ // BSLLS:LineLength-off +// BSLLS:MagicNumber-off #Использовать asserts #Использовать fs diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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 f6e83ce..a15768d 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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,4 +1,5 @@ // BSLLS:LineLength-off +// BSLLS:MagicNumber-off #Использовать asserts #Использовать fs From 3dcd564c8a64ebf77ff72d1a421a1567c6f24011 Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Wed, 25 Mar 2026 19:08:32 +0300 Subject: [PATCH 06/12] =?UTF-8?q?=D0=97=D0=B0=D0=BC=D0=B5=D1=87=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\260\321\200\320\272\320\276\320\262.os" | 20 +---------------- ...20\260\321\200\320\272\320\276\320\262.os" | 2 +- ...20\260\321\200\320\272\320\276\320\262.os" | 3 ++- ...20\260\321\200\320\272\320\276\320\262.os" | 22 ++----------------- ...20\260\321\200\320\272\320\276\320\262.os" | 18 --------------- ...20\260\321\200\320\272\320\276\320\262.os" | 17 -------------- ...20\260\321\200\320\272\320\276\320\262.os" | 2 +- 7 files changed, 7 insertions(+), 77 deletions(-) diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\222\320\260\320\273\320\270\320\264\320\260\321\206\320\270\320\270\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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\222\320\260\320\273\320\270\320\264\320\260\321\206\320\270\320\270\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 631c5ad..06d49fb 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\222\320\260\320\273\320\270\320\264\320\260\321\206\320\270\320\270\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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\222\320\260\320\273\320\270\320\264\320\260\321\206\320\270\320\270\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -3,27 +3,9 @@ // BSLLS:MagicNumber-off #Использовать asserts -#Использовать fluent -#Использовать tempfiles #Использовать "helpers" #Использовать "fixtures/benchmarks" -Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов - -#Область ОбработчикиСобытий - -&Инициализация -Процедура ПередВсеми() Экспорт - _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); -КонецПроцедуры - -&Завершение -Процедура ПослеВсех() Экспорт - _МенеджерВременныхФайлов.Удалить(); -КонецПроцедуры - -#КонецОбласти - #Область Тесты &Тест @@ -154,7 +136,7 @@ .Что(Конфигурация) .Метод("УстановитьМинимальноеКоличествоВызововЗаИтерацию", Параметры) .ВыбрасываетИсключение(ТекстОшибки); - + КонецЦикла; КонецПроцедуры diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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 9e3f38c..01b1e0c 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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" @@ -106,7 +106,7 @@ Конфигурация = Новый КонфигурацияБенчмарков(Тип) .УстановитьКоличествоИтераций(1) - .УстановитьКоличествоПрогревочныхИтераций(0) + .УстановитьКоличествоПрогревочныхИтераций(1) .УстановитьКоличествоВызововЗаИтерацию(КоличествоВызововЗаИтерацию); // Действие diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\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\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 0d45eaa..d8b7cd5 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\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\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -115,10 +115,11 @@ // Подготовка Тип = Тип("ПустойБенчмарк"); + Конфигурация = Новый КонфигурацияБенчмарков(Тип); ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); Конфигурация - .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ХолодныйЗапуск) + .УстановитьСтратегию(СтратегииЗапускаБенчмарка.ХолодныйЗапуск) .УстановитьКоличествоИтераций(1) .ДобавитьМониторингПамяти(); diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\273\320\276\320\275\320\276\320\272\320\230\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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\232\320\276\320\273\320\276\320\275\320\276\320\272\320\230\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 0a27d04..b230d01 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\273\320\276\320\275\320\276\320\272\320\230\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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\232\320\276\320\273\320\276\320\275\320\276\320\272\320\230\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -3,27 +3,9 @@ // BSLLS:MagicNumber-off #Использовать asserts -#Использовать fluent -#Использовать tempfiles #Использовать "helpers" #Использовать "fixtures/benchmarks" -Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов - -#Область ОбработчикиСобытий - -&Инициализация -Процедура ПередВсеми() Экспорт - _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); -КонецПроцедуры - -&Завершение -Процедура ПослеВсех() Экспорт - _МенеджерВременныхФайлов.Удалить(); -КонецПроцедуры - -#КонецОбласти - #Область Тесты &Тест @@ -227,7 +209,7 @@ Процентили = КолонкаОтчетаБенчмарковПроцентиль.ПроцентилиПоУмолчанию(); Процентили.Добавить(33); - Для Каждого Процентиль Из КолонкаОтчетаБенчмарковПроцентиль.ПроцентилиПоУмолчанию() Цикл + Для Каждого Процентиль Из Процентили Цикл ИмяКолонки = КолонкиОтчетаБенчмарков.Процентиль(Процентиль); Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(ИмяКолонки)).Не_().ЭтоНеопределено(); Ожидаем.Что(ТаблицаОтчета[0][ИмяКолонки]).Заполнено(); @@ -284,4 +266,4 @@ КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\271\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\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\271\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 9826e6e..41e2109 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\271\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\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\271\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -3,27 +3,9 @@ // BSLLS:MagicNumber-off #Использовать asserts -#Использовать fluent -#Использовать tempfiles #Использовать "helpers" #Использовать "fixtures/benchmarks" -Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов - -#Область ОбработчикиСобытий - -&Инициализация -Процедура ПередВсеми() Экспорт - _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); -КонецПроцедуры - -&Завершение -Процедура ПослеВсех() Экспорт - _МенеджерВременныхФайлов.Удалить(); -КонецПроцедуры - -#КонецОбласти - #Область Тесты &Тест diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\236\321\201\320\275\320\276\320\262\320\275\321\213\321\205\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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\236\321\201\320\275\320\276\320\262\320\275\321\213\321\205\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 70ca788..55ae292 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\236\321\201\320\275\320\276\320\262\320\275\321\213\321\205\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\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\236\321\201\320\275\320\276\320\262\320\275\321\213\321\205\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -4,26 +4,9 @@ #Использовать asserts #Использовать fluent -#Использовать tempfiles #Использовать "helpers" #Использовать "fixtures/benchmarks" -Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов - -#Область ОбработчикиСобытий - -&Инициализация -Процедура ПередВсеми() Экспорт - _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); -КонецПроцедуры - -&Завершение -Процедура ПослеВсех() Экспорт - _МенеджерВременныхФайлов.Удалить(); -КонецПроцедуры - -#КонецОбласти - #Область Тесты &Тест diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271\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\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 654b736..21ba499 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271\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\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\272\320\260\320\267\320\260\321\202\320\265\320\273\320\265\320\271\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -147,7 +147,7 @@ КонецПроцедуры &Тест -Процедура ТестДолжен_ФормироватьФиксированнуюСтроку() Экспорт +Процедура ТестДолжен_ФорматироватьФиксированнуюСтроку() Экспорт // Действие СтрокаСВыравниваниемВлево = ПредставленияПоказателейБенчмарков.ФиксированнаяСтрока("abc", 5); From 3316dcf444ee679f357990f7507713ba73fd6266 Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Wed, 25 Mar 2026 19:10:17 +0300 Subject: [PATCH 07/12] =?UTF-8?q?=D0=97=D0=B0=D0=BC=D0=B5=D1=87=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21\207\320\274\320\260\321\200\320\272\320\276\320\262.os" | 1 + ...21\207\320\274\320\260\321\200\320\272\320\276\320\262.os" | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\232\320\265\320\271\321\201\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/tests/\320\242\320\265\321\201\321\202\321\213\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\232\320\265\320\271\321\201\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 2b61b26..a5356c5 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\232\320\265\320\271\321\201\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/tests/\320\242\320\265\321\201\321\202\321\213\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\232\320\265\320\271\321\201\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,5 +1,6 @@ // BSLLS:LineLength-off // BSLLS:MagicNumber-off +// BSLLS:NestedFunctionInParameters-off #Использовать asserts #Использовать "helpers" diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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 a15768d..dea2b15 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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/tests/\320\242\320\265\321\201\321\202\321\213\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\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" @@ -97,10 +97,10 @@ Возврат ЭкспортерыРезультатовБенчмарков.Json; ИначеЕсли ИмяЭкспортера = "Html" Тогда Возврат ЭкспортерыРезультатовБенчмарков.Html; + Иначе + ВызватьИсключение СтрШаблон("Неизвестный экспортер <%1>", ИмяЭкспортера); КонецЕсли; - ВызватьИсключение СтрШаблон("Неизвестный экспортер <%1>", ИмяЭкспортера); - КонецФункции #КонецОбласти From 94c9929bf9604081728587f147e554c5db7839d5 Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Wed, 25 Mar 2026 19:33:02 +0300 Subject: [PATCH 08/12] =?UTF-8?q?=D0=A3=D0=B2=D0=B5=D0=BB=D0=B8=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=B7=D0=B0=D0=B4=D0=B5=D1=80=D0=B6=D0=BA?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\265\321\200\320\266\320\272\320\276\320\271.os" | 8 ++++---- ...0\274\320\260\321\200\320\272\320\276\320\262.os" | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git "a/tests/fixtures/benchmarks/\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\227\320\260\320\264\320\265\321\200\320\266\320\272\320\276\320\271.os" "b/tests/fixtures/benchmarks/\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\227\320\260\320\264\320\265\321\200\320\266\320\272\320\276\320\271.os" index b4c0cc5..7ae6f13 100644 --- "a/tests/fixtures/benchmarks/\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\227\320\260\320\264\320\265\321\200\320\266\320\272\320\276\320\271.os" +++ "b/tests/fixtures/benchmarks/\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\227\320\260\320\264\320\265\321\200\320\266\320\272\320\276\320\271.os" @@ -1,10 +1,10 @@ &Бенчмарк &Эталон -Процедура Задержка10() Экспорт - Приостановить(10); +Процедура Задержка100() Экспорт + Приостановить(100); КонецПроцедуры &Бенчмарк -Процедура Задержка20() Экспорт - Приостановить(20); +Процедура Задержка200() Экспорт + Приостановить(200); КонецПроцедуры \ No newline at end of file diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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 01b1e0c..b35d509 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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" @@ -102,7 +102,7 @@ Тип = Тип("БенчмаркиСЗадержкой"); ДескрипторБенчмарка = Новый КоллекцияДескрипторовБенчмарков(Тип) - .НайтиПоИмени("Задержка10"); + .НайтиПоИмени("Задержка100"); Конфигурация = Новый КонфигурацияБенчмарков(Тип) .УстановитьКоличествоИтераций(1) @@ -122,7 +122,7 @@ КоличествоВызововЗаИтерацию - 0.01, КоличествоВызововЗаИтерацию + 0.01 ); - Ожидаем.Что(Статистика.Среднее).Между(10, 20); + Ожидаем.Что(Статистика.Среднее).Между(100, 200); КонецПроцедуры @@ -181,14 +181,14 @@ Статистика1 = Запуски[0].Статистика.ВМиллисекунды(); Статистика2 = Запуски[1].Статистика.ВМиллисекунды(); - Ожидаем.Что(Статистика1.Среднее).Больше(10); - Ожидаем.Что(Статистика2.Среднее).Больше(20); + Ожидаем.Что(Статистика1.Среднее).Между(100, 200); + Ожидаем.Что(Статистика2.Среднее).Между(200, 300); Ожидаем.Что(Статистика1.СтандартноеОтклонение).Больше(0); Ожидаем.Что(Статистика2.СтандартноеОтклонение).Больше(0); Ожидаем.Что(Статистика1.СтандартнаяОшибкаСреднего).Больше(0); Ожидаем.Что(Статистика2.СтандартнаяОшибкаСреднего).Больше(0); - Ожидаем.Что(Статистика1.Медиана).Больше(10); - Ожидаем.Что(Статистика2.Медиана).Больше(20); + Ожидаем.Что(Статистика1.Медиана).Между(100, 200); + Ожидаем.Что(Статистика2.Медиана).Между(200, 300); Ожидаем.Что(Отчет.Таблица[0][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно(1); Ожидаем.Что(Отчет.Таблица[1][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Больше(1); From 856491fa8de89f54849bd240d6044950ecceba9f Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Wed, 25 Mar 2026 19:33:32 +0300 Subject: [PATCH 09/12] =?UTF-8?q?=D0=9D=D0=B0=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B9=D0=BA=D0=B0=20=D1=82=D0=B5=D1=81=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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 b35d509..2ad5543 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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" @@ -168,7 +168,7 @@ Конфигурация = Новый КонфигурацияБенчмарков(Тип) .УстановитьКоличествоИтераций(3) - .УстановитьКоличествоПрогревочныхИтераций(0) + .УстановитьКоличествоПрогревочныхИтераций(1) .УстановитьКоличествоВызововЗаИтерацию(3); // Действие From 15c3dcac244000ea5f23b8c9cc24a16205c3be0b Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Wed, 25 Mar 2026 20:15:29 +0300 Subject: [PATCH 10/12] =?UTF-8?q?=D0=9E=D1=87=D0=B5=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D0=BD=D0=B0=D1=8F=20=D0=BF=D0=BE=D0=BF=D1=8B=D1=82=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21\200\320\266\320\272\320\276\320\271.os" | 8 +-- ...20\260\321\200\320\272\320\276\320\262.os" | 71 ++++++++++++++++--- 2 files changed, 65 insertions(+), 14 deletions(-) diff --git "a/tests/fixtures/benchmarks/\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\227\320\260\320\264\320\265\321\200\320\266\320\272\320\276\320\271.os" "b/tests/fixtures/benchmarks/\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\227\320\260\320\264\320\265\321\200\320\266\320\272\320\276\320\271.os" index 7ae6f13..b4c0cc5 100644 --- "a/tests/fixtures/benchmarks/\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\227\320\260\320\264\320\265\321\200\320\266\320\272\320\276\320\271.os" +++ "b/tests/fixtures/benchmarks/\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\227\320\260\320\264\320\265\321\200\320\266\320\272\320\276\320\271.os" @@ -1,10 +1,10 @@ &Бенчмарк &Эталон -Процедура Задержка100() Экспорт - Приостановить(100); +Процедура Задержка10() Экспорт + Приостановить(10); КонецПроцедуры &Бенчмарк -Процедура Задержка200() Экспорт - Приостановить(200); +Процедура Задержка20() Экспорт + Приостановить(20); КонецПроцедуры \ No newline at end of file diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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 2ad5543..fe1eb12 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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" @@ -5,6 +5,8 @@ #Использовать "helpers" #Использовать "fixtures/benchmarks" +Перем _КоэффициентОтклоненияЗадержки; // Число, Неопределено + #Область Тесты &Тест @@ -15,9 +17,9 @@ Тип = Тип("БенчмаркБуферДвоичныхДанных"); Конфигурация = Новый КонфигурацияБенчмарков(Тип) - .УстановитьКоличествоИтераций(3) + .УстановитьКоличествоИтераций(2) .УстановитьКоличествоПрогревочныхИтераций(1) - .УстановитьКоличествоВызововЗаИтерацию(3); + .УстановитьКоличествоВызововЗаИтерацию(2); ДескрипторБенчмарка = Новый КоллекцияДескрипторовБенчмарков(Тип) .ПолучитьПервый() @@ -41,8 +43,8 @@ Тип = Тип("ПустойБенчмарк"); Конфигурация = Новый КонфигурацияБенчмарков(Тип) - .УстановитьКоличествоИтераций(3) - .УстановитьКоличествоПрогревочныхИтераций(0) + .УстановитьКоличествоИтераций(2) + .УстановитьКоличествоПрогревочныхИтераций(1) .УстановитьКоличествоВызововЗаИтерацию(3) .ДобавитьМониторингПамяти(); @@ -100,9 +102,11 @@ // Подготовка КоличествоВызововЗаИтерацию = 3; Тип = Тип("БенчмаркиСЗадержкой"); + КоэффициентОтклонения = ПолучитьКоэффициентОтклоненияЗадержки(); + ГраницыДляЗадержки10 = ГраницыОжидаемогоСреднего(10, КоэффициентОтклонения); ДескрипторБенчмарка = Новый КоллекцияДескрипторовБенчмарков(Тип) - .НайтиПоИмени("Задержка100"); + .НайтиПоИмени("Задержка10"); Конфигурация = Новый КонфигурацияБенчмарков(Тип) .УстановитьКоличествоИтераций(1) @@ -122,7 +126,7 @@ КоличествоВызововЗаИтерацию - 0.01, КоличествоВызововЗаИтерацию + 0.01 ); - Ожидаем.Что(Статистика.Среднее).Между(100, 200); + Ожидаем.Что(Статистика.Среднее).Между(ГраницыДляЗадержки10.Нижняя, ГраницыДляЗадержки10.Верхняя); КонецПроцедуры @@ -165,6 +169,9 @@ // Подготовка Тип = Тип("БенчмаркиСЗадержкой"); + КоэффициентОтклонения = ПолучитьКоэффициентОтклоненияЗадержки(); + ГраницыДляЗадержки10 = ГраницыОжидаемогоСреднего(10, КоэффициентОтклонения); + ГраницыДляЗадержки20 = ГраницыОжидаемогоСреднего(20, КоэффициентОтклонения); Конфигурация = Новый КонфигурацияБенчмарков(Тип) .УстановитьКоличествоИтераций(3) @@ -181,17 +188,61 @@ Статистика1 = Запуски[0].Статистика.ВМиллисекунды(); Статистика2 = Запуски[1].Статистика.ВМиллисекунды(); - Ожидаем.Что(Статистика1.Среднее).Между(100, 200); - Ожидаем.Что(Статистика2.Среднее).Между(200, 300); + Ожидаем.Что(Статистика1.Среднее).Между(ГраницыДляЗадержки10.Нижняя, ГраницыДляЗадержки10.Верхняя); + Ожидаем.Что(Статистика2.Среднее).Между(ГраницыДляЗадержки20.Нижняя, ГраницыДляЗадержки20.Верхняя); Ожидаем.Что(Статистика1.СтандартноеОтклонение).Больше(0); Ожидаем.Что(Статистика2.СтандартноеОтклонение).Больше(0); Ожидаем.Что(Статистика1.СтандартнаяОшибкаСреднего).Больше(0); Ожидаем.Что(Статистика2.СтандартнаяОшибкаСреднего).Больше(0); - Ожидаем.Что(Статистика1.Медиана).Между(100, 200); - Ожидаем.Что(Статистика2.Медиана).Между(200, 300); + Ожидаем.Что(Статистика1.Медиана).Между(ГраницыДляЗадержки10.Нижняя, ГраницыДляЗадержки10.Верхняя); + Ожидаем.Что(Статистика2.Медиана).Между(ГраницыДляЗадержки20.Нижняя, ГраницыДляЗадержки20.Верхняя); Ожидаем.Что(Отчет.Таблица[0][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно(1); Ожидаем.Что(Отчет.Таблица[1][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Больше(1); КонецПроцедуры #КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПолучитьКоэффициентОтклоненияЗадержки() + + Если Не _КоэффициентОтклоненияЗадержки = Неопределено Тогда + Возврат _КоэффициентОтклоненияЗадержки; + КонецЕсли; + + Тип = Тип("БенчмаркиСЗадержкой"); + + ДескрипторБенчмарка = Новый КоллекцияДескрипторовБенчмарков(Тип) + .НайтиПоИмени("Задержка10"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .УстановитьКоличествоИтераций(1) + .УстановитьКоличествоПрогревочныхИтераций(0) + .УстановитьКоличествоВызововЗаИтерацию(10); + + Репортер = Новый НулевойРепортерБенчмарков(); + Запускатель = Новый ЗапускательБенчмарков(ДескрипторБенчмарка, Конфигурация, Репортер); + Результат = Запускатель.Запустить(); + Среднее = Результат.Запуски[0].Статистика.ВМиллисекунды().Среднее; + + _КоэффициентОтклоненияЗадержки = Среднее / 10; + + Возврат _КоэффициентОтклоненияЗадержки; + +КонецФункции + +Функция ГраницыОжидаемогоСреднего(ОжидаемоеСреднее, КоэффициентОтклонения) + + СкорректированноеСреднее = ОжидаемоеСреднее * КоэффициентОтклонения; + Допуск = СкорректированноеСреднее * 0.25; + + Возврат Новый Структура( + "Нижняя, Верхняя", + СкорректированноеСреднее - Допуск, + СкорректированноеСреднее + Допуск + ); + +КонецФункции + +#КонецОбласти From 67144f6ab89577906d69b53a45a90bc179ddb5d6 Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Wed, 25 Mar 2026 20:32:01 +0300 Subject: [PATCH 11/12] =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=8B=D1=82=D0=BA?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\260\321\200\320\272\320\276\320\262.os" | 70 +++---------------- 1 file changed, 9 insertions(+), 61 deletions(-) diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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 fe1eb12..68a95d5 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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" @@ -5,8 +5,6 @@ #Использовать "helpers" #Использовать "fixtures/benchmarks" -Перем _КоэффициентОтклоненияЗадержки; // Число, Неопределено - #Область Тесты &Тест @@ -102,8 +100,6 @@ // Подготовка КоличествоВызововЗаИтерацию = 3; Тип = Тип("БенчмаркиСЗадержкой"); - КоэффициентОтклонения = ПолучитьКоэффициентОтклоненияЗадержки(); - ГраницыДляЗадержки10 = ГраницыОжидаемогоСреднего(10, КоэффициентОтклонения); ДескрипторБенчмарка = Новый КоллекцияДескрипторовБенчмарков(Тип) .НайтиПоИмени("Задержка10"); @@ -119,14 +115,13 @@ // Проверка Замер = Результат.Запуски[0].НайтиИтерациюЗамера(ЭтапыБенчмарка.Измерение, 1); КоэффициентОпераций = Замер.Наносекунд / Замер.НаносекундЗаОперацию; - Статистика = Результат.Запуски[0].Статистика.ВМиллисекунды(); Ожидаем.Что(Замер.КоличествоОпераций).Равно(КоличествоВызововЗаИтерацию); Ожидаем.Что(КоэффициентОпераций).Между( КоличествоВызововЗаИтерацию - 0.01, КоличествоВызововЗаИтерацию + 0.01 ); - Ожидаем.Что(Статистика.Среднее).Между(ГраницыДляЗадержки10.Нижняя, ГраницыДляЗадержки10.Верхняя); + Ожидаем.Что(Замер.НаносекундЗаОперацию).Больше(0); КонецПроцедуры @@ -169,9 +164,6 @@ // Подготовка Тип = Тип("БенчмаркиСЗадержкой"); - КоэффициентОтклонения = ПолучитьКоэффициентОтклоненияЗадержки(); - ГраницыДляЗадержки10 = ГраницыОжидаемогоСреднего(10, КоэффициентОтклонения); - ГраницыДляЗадержки20 = ГраницыОжидаемогоСреднего(20, КоэффициентОтклонения); Конфигурация = Новый КонфигурацияБенчмарков(Тип) .УстановитьКоличествоИтераций(3) @@ -188,61 +180,17 @@ Статистика1 = Запуски[0].Статистика.ВМиллисекунды(); Статистика2 = Запуски[1].Статистика.ВМиллисекунды(); - Ожидаем.Что(Статистика1.Среднее).Между(ГраницыДляЗадержки10.Нижняя, ГраницыДляЗадержки10.Верхняя); - Ожидаем.Что(Статистика2.Среднее).Между(ГраницыДляЗадержки20.Нижняя, ГраницыДляЗадержки20.Верхняя); - Ожидаем.Что(Статистика1.СтандартноеОтклонение).Больше(0); - Ожидаем.Что(Статистика2.СтандартноеОтклонение).Больше(0); - Ожидаем.Что(Статистика1.СтандартнаяОшибкаСреднего).Больше(0); - Ожидаем.Что(Статистика2.СтандартнаяОшибкаСреднего).Больше(0); - Ожидаем.Что(Статистика1.Медиана).Между(ГраницыДляЗадержки10.Нижняя, ГраницыДляЗадержки10.Верхняя); - Ожидаем.Что(Статистика2.Медиана).Между(ГраницыДляЗадержки20.Нижняя, ГраницыДляЗадержки20.Верхняя); + Ожидаем.Что(Статистика1.Среднее).Больше(0); + Ожидаем.Что(Статистика2.Среднее).Больше(Статистика1.Среднее); + Ожидаем.Что(Статистика1.СтандартноеОтклонение).БольшеИлиРавно(0); + Ожидаем.Что(Статистика2.СтандартноеОтклонение).БольшеИлиРавно(0); + Ожидаем.Что(Статистика1.СтандартнаяОшибкаСреднего).БольшеИлиРавно(0); + Ожидаем.Что(Статистика2.СтандартнаяОшибкаСреднего).БольшеИлиРавно(0); + Ожидаем.Что(Статистика1.Медиана).Больше(0); + Ожидаем.Что(Статистика2.Медиана).Больше(Статистика1.Медиана); Ожидаем.Что(Отчет.Таблица[0][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно(1); Ожидаем.Что(Отчет.Таблица[1][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Больше(1); КонецПроцедуры #КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Функция ПолучитьКоэффициентОтклоненияЗадержки() - - Если Не _КоэффициентОтклоненияЗадержки = Неопределено Тогда - Возврат _КоэффициентОтклоненияЗадержки; - КонецЕсли; - - Тип = Тип("БенчмаркиСЗадержкой"); - - ДескрипторБенчмарка = Новый КоллекцияДескрипторовБенчмарков(Тип) - .НайтиПоИмени("Задержка10"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип) - .УстановитьКоличествоИтераций(1) - .УстановитьКоличествоПрогревочныхИтераций(0) - .УстановитьКоличествоВызововЗаИтерацию(10); - - Репортер = Новый НулевойРепортерБенчмарков(); - Запускатель = Новый ЗапускательБенчмарков(ДескрипторБенчмарка, Конфигурация, Репортер); - Результат = Запускатель.Запустить(); - Среднее = Результат.Запуски[0].Статистика.ВМиллисекунды().Среднее; - - _КоэффициентОтклоненияЗадержки = Среднее / 10; - - Возврат _КоэффициентОтклоненияЗадержки; - -КонецФункции - -Функция ГраницыОжидаемогоСреднего(ОжидаемоеСреднее, КоэффициентОтклонения) - - СкорректированноеСреднее = ОжидаемоеСреднее * КоэффициентОтклонения; - Допуск = СкорректированноеСреднее * 0.25; - - Возврат Новый Структура( - "Нижняя, Верхняя", - СкорректированноеСреднее - Допуск, - СкорректированноеСреднее + Допуск - ); - -КонецФункции - -#КонецОбласти From 1bc58bcaed365eb1a7af9eaf1b5767c39dab0d37 Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Wed, 25 Mar 2026 21:31:53 +0300 Subject: [PATCH 12/12] =?UTF-8?q?=D0=A2=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\260\321\200\320\272\320\276\320\262.os" | 27 +++---------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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 68a95d5..8a93c96 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\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" @@ -55,42 +55,23 @@ КонецПроцедуры &Тест -Процедура ТестДолжен_НеЗаполнятьВыделяемуюПамятьБезПрофилированияПамяти() Экспорт +Процедура ТестДолжен_НеЗамерятьВыделяемуюПамять() Экспорт // Подготовка Тип = Тип("ПустойБенчмарк"); Конфигурация = Новый КонфигурацияБенчмарков(Тип) - .УстановитьКоличествоИтераций(2) - .УстановитьКоличествоПрогревочныхИтераций(0) - .УстановитьКоличествоВызововЗаИтерацию(3); - - // Действие - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - - // Проверка - Ожидаем.Что(Результат.Запуски[0].Статистика.ВыделяемаяПамять).Равно(0); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_НеСоздаватьЗамерыПамятиБезПрофилированияПамяти() Экспорт - - // Подготовка - Тип = Тип("ПустойБенчмарк"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип) - .УстановитьКоличествоИтераций(2) + .УстановитьКоличествоИтераций(1) .УстановитьКоличествоПрогревочныхИтераций(0) - .УстановитьКоличествоВызововЗаИтерацию(3); + .УстановитьКоличествоВызововЗаИтерацию(1); // Действие Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка ЗамерПамяти = Результат.Запуски[0].НайтиИтерациюЗамера(ЭтапыБенчмарка.Память, 1); - Ожидаем.Что(ЗамерПамяти).ЭтоНеопределено(); + Ожидаем.Что(Результат.Запуски[0].Статистика.ВыделяемаяПамять).Равно(0); КонецПроцедуры