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 a6c8892..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" @@ -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\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..06d49fb --- /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,144 @@ +// BSLLS:LineLength-off +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать "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" new file mode 100644 index 0000000..a5356c5 --- /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,147 @@ +// BSLLS:LineLength-off +// BSLLS:MagicNumber-off +// BSLLS:NestedFunctionInParameters-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\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" deleted file mode 100644 index 2e6787c..0000000 --- "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" +++ /dev/null @@ -1,76 +0,0 @@ -// BSLLS:DuplicateStringLiteral-off -// BSLLS:MagicNumber-off - -#Использовать asserts -#Использовать "helpers" -#Использовать "fixtures/benchmarks" - -&Тест -Процедура ТестДолжен_ПроверитьВыделяемуюПамять() Экспорт - - РазмерВБайтах = 1024 * 1024; - - Тип = Тип("БенчмаркБуферДвоичныхДанных"); - - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - ДескрипторБенчмарка = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк"); - ДескрипторБенчмарка.ДобавитьПараметры(РазмерВБайтах); - - Результат = Бенчмаркинг.Запустить(ДескрипторыБенчмарков); - - ВыделеноБайт = Результат.Запуски[0].Статистика.ВыделяемаяПамять; - Коэффициент = РазмерВБайтах / ВыделеноБайт; - - Ожидаем.Что(Коэффициент).Между(0.99, 1); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ПроверитьВыделяемуюПамятьПустогоБенчмарка() Экспорт - - Тип = Тип("ПустойБенчмарк"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип) - .ДобавитьМониторингПамяти() - .УстановитьКоличествоИтераций(5) - .УстановитьКоличествоПрогревочныхИтераций(0); - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - - ВыделеноБайт = Результат.Запуски[0].Статистика.ВыделяемаяПамять; - - Ожидаем.Что(ВыделеноБайт).Между(1, 2000); - -КонецПроцедуры - -&Тест -Процедура Тест_Производительность() Экспорт - - Результат = Бенчмаркинг.Запустить(Тип("БенчмаркиСЗадержкой")); - Запуски = Результат.Запуски; - Отчет = Результат.Отчет; - - Статистика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\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" new file mode 100644 index 0000000..8a93c96 --- /dev/null +++ "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" @@ -0,0 +1,177 @@ +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать "helpers" +#Использовать "fixtures/benchmarks" + +#Область Тесты + +&Тест +Процедура ТестДолжен_ИзмеритьВыделяемуюПамятьБуфераДвоичныхДанных() Экспорт + + // Подготовка + РазмерВБайтах = 1024 * 1024; + Тип = Тип("БенчмаркБуферДвоичныхДанных"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .УстановитьКоличествоИтераций(2) + .УстановитьКоличествоПрогревочныхИтераций(1) + .УстановитьКоличествоВызововЗаИтерацию(2); + + ДескрипторБенчмарка = Новый КоллекцияДескрипторовБенчмарков(Тип) + .ПолучитьПервый() + .ДобавитьПараметры(РазмерВБайтах); + + // Действие + Результат = Бенчмаркинг.Запустить(ДескрипторБенчмарка, Конфигурация); + + // Проверка + ВыделеноБайт = Результат.Запуски[0].Статистика.ВыделяемаяПамять; + Коэффициент = РазмерВБайтах / ВыделеноБайт; + + Ожидаем.Что(Коэффициент).Между(0.99, 1); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ИзмеритьВыделяемуюПамятьПустогоБенчмарка() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .УстановитьКоличествоИтераций(2) + .УстановитьКоличествоПрогревочныхИтераций(1) + .УстановитьКоличествоВызововЗаИтерацию(3) + .ДобавитьМониторингПамяти(); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + Ожидаем.Что(Результат.Запуски[0].Статистика.ВыделяемаяПамять).Между(1, 3000); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_НеЗамерятьВыделяемуюПамять() Экспорт + + // Подготовка + Тип = Тип("ПустойБенчмарк"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .УстановитьКоличествоИтераций(1) + .УстановитьКоличествоПрогревочныхИтераций(0) + .УстановитьКоличествоВызововЗаИтерацию(1); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + ЗамерПамяти = Результат.Запуски[0].НайтиИтерациюЗамера(ЭтапыБенчмарка.Память, 1); + Ожидаем.Что(ЗамерПамяти).ЭтоНеопределено(); + Ожидаем.Что(Результат.Запуски[0].Статистика.ВыделяемаяПамять).Равно(0); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_РассчитатьВремяЗаОперациюПриНесколькихВызовахЗаИтерацию() Экспорт + + // Подготовка + КоличествоВызововЗаИтерацию = 3; + Тип = Тип("БенчмаркиСЗадержкой"); + + ДескрипторБенчмарка = Новый КоллекцияДескрипторовБенчмарков(Тип) + .НайтиПоИмени("Задержка10"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .УстановитьКоличествоИтераций(1) + .УстановитьКоличествоПрогревочныхИтераций(1) + .УстановитьКоличествоВызововЗаИтерацию(КоличествоВызововЗаИтерацию); + + // Действие + Результат = Бенчмаркинг.Запустить(ДескрипторБенчмарка, Конфигурация); + + // Проверка + Замер = Результат.Запуски[0].НайтиИтерациюЗамера(ЭтапыБенчмарка.Измерение, 1); + КоэффициентОпераций = Замер.Наносекунд / Замер.НаносекундЗаОперацию; + + Ожидаем.Что(Замер.КоличествоОпераций).Равно(КоличествоВызововЗаИтерацию); + Ожидаем.Что(КоэффициентОпераций).Между( + КоличествоВызововЗаИтерацию - 0.01, + КоличествоВызововЗаИтерацию + 0.01 + ); + Ожидаем.Что(Замер.НаносекундЗаОперацию).Больше(0); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_РассчитатьВыделяемуюПамятьЗаОперациюПриНесколькихВызовахЗаИтерацию() Экспорт + + // Подготовка + РазмерВБайтах = 256 * 1024; + КоличествоВызововЗаИтерацию = 4; + Тип = Тип("БенчмаркБуферДвоичныхДанных"); + + ДескрипторБенчмарка = Новый КоллекцияДескрипторовБенчмарков(Тип) + .НайтиПоИмени("Бенчмарк") + .ДобавитьПараметры(РазмерВБайтах); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .УстановитьКоличествоИтераций(1) + .УстановитьКоличествоПрогревочныхИтераций(0) + .УстановитьКоличествоВызововЗаИтерацию(КоличествоВызововЗаИтерацию); + + // Действие + Результат = Бенчмаркинг.Запустить(ДескрипторБенчмарка, Конфигурация); + + // Проверка + Замер = Результат.Запуски[0].НайтиИтерациюЗамера(ЭтапыБенчмарка.Память, 1); + КоэффициентОпераций = Замер.ВыделяемаяПамять / Замер.ВыделяемаяПамятьЗаОперацию; + КоэффициентРазмера = РазмерВБайтах / Результат.Запуски[0].Статистика.ВыделяемаяПамять; + + Ожидаем.Что(Замер.КоличествоОпераций).Равно(КоличествоВызововЗаИтерацию); + Ожидаем.Что(КоэффициентОпераций).Между( + КоличествоВызововЗаИтерацию - 0.01, + КоличествоВызововЗаИтерацию + 0.01 + ); + Ожидаем.Что(КоэффициентРазмера).Между(0.95, 1.05); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_РассчитатьПоказателиПроизводительности() Экспорт + + // Подготовка + Тип = Тип("БенчмаркиСЗадержкой"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип) + .УстановитьКоличествоИтераций(3) + .УстановитьКоличествоПрогревочныхИтераций(1) + .УстановитьКоличествоВызововЗаИтерацию(3); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + Запуски = Результат.Запуски; + Отчет = Результат.Отчет; + + Статистика1 = Запуски[0].Статистика.ВМиллисекунды(); + Статистика2 = Запуски[1].Статистика.ВМиллисекунды(); + + Ожидаем.Что(Статистика1.Среднее).Больше(0); + Ожидаем.Что(Статистика2.Среднее).Больше(Статистика1.Среднее); + Ожидаем.Что(Статистика1.СтандартноеОтклонение).БольшеИлиРавно(0); + Ожидаем.Что(Статистика2.СтандартноеОтклонение).БольшеИлиРавно(0); + Ожидаем.Что(Статистика1.СтандартнаяОшибкаСреднего).БольшеИлиРавно(0); + Ожидаем.Что(Статистика2.СтандартнаяОшибкаСреднего).БольшеИлиРавно(0); + Ожидаем.Что(Статистика1.Медиана).Больше(0); + Ожидаем.Что(Статистика2.Медиана).Больше(Статистика1.Медиана); + Ожидаем.Что(Отчет.Таблица[0][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно(1); + Ожидаем.Что(Отчет.Таблица[1][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Больше(1); + +КонецПроцедуры + +#КонецОбласти 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\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 52% rename from "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" rename to "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" index 0a6988a..aeb9315 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\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" @@ -11,6 +11,8 @@ Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов +#Область ОбработчикиСобытий + &Инициализация Процедура ПередВсеми() Экспорт @@ -20,7 +22,7 @@ &После Процедура ПослеЗапускаТеста() Экспорт - + КаталогАртефактов = ".\BenchmarkArtifacts"; ФС.УдалитьФайлы(КаталогАртефактов); @@ -34,13 +36,20 @@ КонецПроцедуры +#КонецОбласти + +#Область Тесты + &Тест -Процедура Тест_ЗапускБенчмарковИзКаталога() Экспорт - +Процедура ТестДолжен_ЗапуститьБенчмаркиИзКаталога() Экспорт + + // Подготовка Каталог = "./tests/fixtures/БенчмаркиЧерезКаталог"; + // Действие Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог); + // Проверка Ожидаем.Что(Результат).ИмеетДлину(2); Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога1", "ИмяФайла")).Заполнено(); Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога2", "ИмяФайла")).Заполнено(); @@ -48,12 +57,15 @@ КонецПроцедуры &Тест -Процедура Тест_ЗапускБенчмарковИзКаталогаРекурсивно() Экспорт - +Процедура ТестДолжен_ЗапуститьБенчмаркиИзКаталогаРекурсивно() Экспорт + + // Подготовка Каталог = "./tests/fixtures/БенчмаркиЧерезКаталог"; + // Действие Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог, Истина); + // Проверка Ожидаем.Что(Результат).ИмеетДлину(3); Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога1", "ИмяФайла")).Заполнено(); Ожидаем.Что(Результат.Найти("БенчмаркИзКаталога2", "ИмяФайла")).Заполнено(); @@ -62,88 +74,50 @@ КонецПроцедуры &Тест -Процедура Тест_ЗапускБенчмарковИзНесуществующегоКаталога() Экспорт - +Процедура ТестДолжен_ВернутьПустойРезультатПриЗапускеИзНесуществующегоКаталога() Экспорт + + // Подготовка Каталог = "./tests/fixtures/Классы/НесуществующийКаталог"; + // Действие Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог); + // Проверка Ожидаем.Что(Результат).ИмеетДлину(0); КонецПроцедуры &Тест -Процедура Тест_ЗапускБенчмарковСОшибкой() Экспорт - +Процедура ТестДолжен_ВернутьУспешныеИОшибочныеРезультатыПриЗапускеКаталога() Экспорт + + // Подготовка Каталог = "./tests/fixtures/БенчмаркиСОшибкой"; + // Действие Результат = Бенчмаркинг.ЗапуститьИзКаталога(Каталог); + // Проверка Ожидаем.Что(Результат).ИмеетДлину(2); Ожидаем.Что(Результат.Найти(Истина, "Успешно")).Заполнено(); Ожидаем.Что(Результат.Найти(Ложь, "Успешно")).Заполнено(); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ПодключитьНесуществующегоФайлБенчмарка() Экспорт - - ПутьКФайлу = "./tests/fixtures/Классы/БенчмаркНесуществующий.os"; - - Тип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлу); - - Ожидаем.Что(Тип).ЭтоНеопределено(); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ПодключитьФайлБезБенчмарков() Экспорт - - ПутьКФайлу = "./tests/fixtures/Классы/БенчмаркБезБенчмарков.os"; - - Тип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлу); - - Ожидаем.Что(Тип).ЭтоНеопределено(); КонецПроцедуры &Тест -Процедура ТестДолжен_УбратьЦифрыВНачалеИмениТипаПриПодключенииФайла() Экспорт +Процедура ТестДолжен_ВыброситьИсключениеПриЗапускеСРазнымиТипамиОбъектов() Экспорт // Подготовка - Каталог = _МенеджерВременныхФайлов.СоздатьКаталог(); - ПутьКФайлу = ОбъединитьПути(Каталог, "123ТестовыйБенчмарк.os"); - - Код = " - |&Бенчмарк - |Процедура Бенчмарк() Экспорт - |КонецПроцедуры"; - - ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8); - ЗаписьТекста.Записать(Код); - ЗаписьТекста.Закрыть(); - - // Действие - Тип = Бенчмаркинг.ПодключитьБенчмарк(ПутьКФайлу); - - // Проверка - Ожидаем.Что(Строка(Тип)).Равно("ТестовыйБенчмарк"); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ПроверитьЗапретЗапускаСРазнымиТипамиОбъектов() Экспорт - Коллекция1 = Новый КоллекцияДескрипторовБенчмарков(Тип("БенчмаркСПараметрамиМетода")); Коллекция2 = Новый КоллекцияДескрипторовБенчмарков(Тип("БенчмаркиПоКатегориям")); ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(); ДескрипторыБенчмарков.Добавить(Коллекция1.ПолучитьПервый()); ДескрипторыБенчмарков.Добавить(Коллекция2.ПолучитьПервый()); - + ПараметрыМетода = Новый Массив(); ПараметрыМетода.Добавить(ДескрипторыБенчмарков); + // Действие и Проверка Ожидаем .Что(Бенчмаркинг) .Метод("Запустить", ПараметрыМетода) @@ -153,15 +127,19 @@ &Тест Процедура ТестДолжен_ЗапуститьБенчмаркЧерезДескриптор() Экспорт - + + // Подготовка Тип = Тип("ПустойБенчмарк"); ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); Дескриптор = ДескрипторыБенчмарков.ПолучитьПервый(); Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию(); + + // Действие Результат = Бенчмаркинг.Запустить(Дескриптор, Конфигурация); + // Проверка Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); Ожидаем.Что(Результат.Запуски).Заполнено(); @@ -171,15 +149,16 @@ &Тест Процедура ТестДолжен_ЗапуститьБенчмаркСПараметрамиМетодаИзАннотаций() Экспорт - + // Подготовка Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию(); // Действие Результат = Бенчмаркинг.Запустить(Тип("БенчмаркСПараметрамиМетода"), Конфигурация); + + // Проверка НаборыПараметров = Результат.ДескрипторыБенчмарков.ПолучитьПервый().НаборыПараметров(); - // Проверка Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(10); Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(100); @@ -191,7 +170,7 @@ &Тест Процедура ТестДолжен_ЗапуститьБенчмаркСПараметрамиМетодаИОбщегоПоляИзАннотаций() Экспорт - + // Подготовка Тип = Тип("БенчмаркСПараметрамиМетодаИПоля"); @@ -220,7 +199,7 @@ &Тест Процедура ТестДолжен_ЗапуститьБенчмаркСУстановкойПараметровМетода() Экспорт - + // Подготовка Параметры1 = Новый Массив(); Параметры1.Добавить(50); @@ -235,10 +214,10 @@ ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк").ОчиститьПараметры(); - // Действие Дескриптор.ДобавитьПараметры(Параметры1); Дескриптор.ДобавитьПараметры(Параметры2); + // Действие Результат = Бенчмаркинг.Запустить(Дескриптор, ТестированиеБенчмарков.КонфигурацияПоУмолчанию()); // Проверка @@ -247,39 +226,6 @@ Ожидаем.Что(Результат.Отчет.Таблица[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"); КонецПроцедуры @@ -394,7 +340,7 @@ ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк").ОчиститьПараметры(); - + ПараметрыБенчмарка = Новый Массив(); ПараметрыБенчмарка.Добавить(Новый ПараметрБенчмарка("Парам1", 50, Ложь)); ПараметрыБенчмарка.Добавить(Новый ПараметрБенчмарка("Парам1", 150, Истина)); @@ -413,215 +359,26 @@ #КонецОбласти &Тест -Процедура Тест_КатегорииИзАннотации() Экспорт - - Тип = Тип("БенчмаркиПоКатегориям"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); - - ИмяКолонки = КолонкиОтчетаБенчмарков.Категория; - - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(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"); Тип = Тип("ПустойБенчмарк"); @@ -631,8 +388,10 @@ Конфигурация.ДобавитьИсполняющуюСреду("dev", "dev"); Конфигурация.ДобавитьИсполняющуюСреду("stable", "stable"); + // Действие Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + // Проверка Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды]).Содержит("dev"); Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды]).Содержит("stable"); @@ -640,23 +399,25 @@ КонецПроцедуры &Тест -Процедура Тест_ПроверяетОшибкуЗапускаПриНаличииНесериализуемыхПараметров() Экспорт +Процедура ТестДолжен_ВыброситьИсключениеПриЗапускеСНесериализуемымиПараметрами() Экспорт + // Подготовка Тип = Тип("БенчмаркСПараметрамиПоля"); Конфигурация = Новый КонфигурацияБенчмарков(Тип); ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - + Конфигурация .ОчиститьПараметры() .ДобавитьПараметр("Значение", Новый Структура("Тест", 1)) .ДобавитьИсполняющуюСреду("dev") .ДобавитьИсполняющуюСреду("stable", , Истина); - + ПараметрыМетода = Новый Массив(); ПараметрыМетода.Добавить(Тип); ПараметрыМетода.Добавить(Конфигурация); + // Действие и Проверка Ожидаем .Что(Бенчмаркинг) .Метод("Запустить", ПараметрыМетода) @@ -667,16 +428,18 @@ &Тест Процедура ТестДолжен_ОбработатьОшибкуУстановкиПоляОбъектаКласса() Экспорт + // Подготовка Тип = Тип("БенчмаркСПараметрамиПоля"); Конфигурация = Новый КонфигурацияБенчмарков(Тип); ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); Конфигурация.ДобавитьПараметр("ОшибочноеИмя", 100); - + ПараметрыМетода = Новый Массив(); ПараметрыМетода.Добавить(Тип); ПараметрыМетода.Добавить(Конфигурация); + // Действие и Проверка Ожидаем .Что(Бенчмаркинг) .Метод("Запустить", ПараметрыМетода) @@ -686,13 +449,13 @@ &Тест Процедура ТестДолжен_ВыброситьИсключениеНевозможностиОпределенияТипаКласса() Экспорт - + // Подготовка ПараметрыМетода = Новый Массив(); ПараметрыМетода.Добавить(Новый КоллекцияДескрипторовБенчмарков()); ПараметрыМетода.Добавить(ТестированиеБенчмарков.КонфигурацияПоУмолчанию()); - // Проверка + // Действие и Проверка Ожидаем .Что(Бенчмаркинг) .Метод("Запустить", ПараметрыМетода) @@ -700,57 +463,4 @@ КонецПроцедуры -&Тест -Процедура ТестДолжен_ИзвлечьНаименованиеИзАннотацииБенчмарк() Экспорт - - // Подготовка - Тип = Тип("БенчмаркСНаименованием"); - - // Действие - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - - // Проверка - ДескрипторСНаименованием = ДескрипторыБенчмарков.НайтиПоИмени("БенчмаркСНаименованием"); - ДескрипторБезНаименования = ДескрипторыБенчмарков.НайтиПоИмени("БенчмаркБезНаименования"); - - Ожидаем.Что(ДескрипторСНаименованием.Наименование()).Равно("Тестовое наименование бенчмарка"); - Ожидаем.Что(ДескрипторБезНаименования.Наименование()).Равно(""); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_УстановитьНаименованиеЧерезМетодДескриптора() Экспорт - - // Подготовка - Тип = Тип("ПустойБенчмарк"); - - ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); - Дескриптор = ДескрипторыБенчмарков.ПолучитьПервый(); - - // Действие - Дескриптор.УстановитьНаименование("Мое наименование"); - - // Проверка - Ожидаем.Что(Дескриптор.Наименование()).Равно("Мое наименование"); - -КонецПроцедуры - -&Тест -Процедура ТестДолжен_ВключитьНаименованиеВОтчет() Экспорт - - // Подготовка - Конфигурация = ТестированиеБенчмарков.КонфигурацияПоУмолчанию(); - - // Действие - Результат = Бенчмаркинг.Запустить(Тип("БенчмаркСНаименованием"), Конфигурация); - - // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); - - ДескрипторСНаименованием = Результат.Отчет.Таблица[0]; - ДескрипторБезНаименования = Результат.Отчет.Таблица[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..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,13 +51,11 @@ &Тест Процедура ТестДолжен_НеПодготавливатьАннотированныйФайл() Экспорт + // Подготовка + ФайлыДляЗапуска = МассивФайлов("./tests/fixtures/benchmarks/Классы/ПустойБенчмарк.os"); + // Действие - Сообщения = ВыполнитьСЗахватомЛогаПодготовителя( - МассивФайлов( - "./tests/fixtures/benchmarks/Классы/ПустойБенчмарк.os", - "ФайлКоторогоНеСуществуетДляТестаЗапускателя.os" - ) - ); + Сообщения = ПолучитьСообщенияПодготовителяФайлаБенчмарка(ФайлыДляЗапуска); // Проверка Ожидаем.Что(Сообщения).ИмеетДлину(0); @@ -60,13 +65,11 @@ &Тест Процедура ТестДолжен_НеПодготавливатьФайлыИзКаталогаСКлассическимиБенчмарками() Экспорт + // Подготовка + ФайлыДляЗапуска = МассивФайлов("./tests/fixtures/БенчмаркиЧерезКаталог"); + // Действие - Сообщения = ВыполнитьСЗахватомЛогаПодготовителя( - МассивФайлов( - "./tests/fixtures/БенчмаркиЧерезКаталог", - "ФайлКоторогоНеСуществуетДляТестаЗапускателя.os" - ) - ); + Сообщения = ПолучитьСообщенияПодготовителяФайлаБенчмарка(ФайлыДляЗапуска); // Проверка Ожидаем.Что(Сообщения).ИмеетДлину(0); @@ -81,11 +84,8 @@ АбсолютныйПуть = ПолныйПутьКФайлу(ОтносительныйПуть); // Действие - Сообщения = ВыполнитьСЗахватомЛогаПодготовителя( - МассивФайлов( - ОтносительныйПуть, - АбсолютныйПуть - ) + Сообщения = ПолучитьСообщенияПодготовителяФайлаБенчмарка( + МассивФайлов(ОтносительныйПуть, АбсолютныйПуть) ); // Проверка @@ -98,28 +98,23 @@ Процедура ТестДолжен_ЗаписатьПредупреждениеЕслиНеНайденыФайлыБенчмарков() Экспорт // Подготовка - Лог = Логирование.ПолучитьЛог("oscript.lib.benchmark.ЗапускательФайловБенчмарков"); - ПредыдущийУровень = Лог.Уровень(); - Аппендер = ЗагрузитьСценарий(ПолныйПутьКФайлу("./tests/fixtures/АппендерЛога.os")); - - Лог.УстановитьУровень(УровниЛога.Предупреждение); - Лог.ДобавитьСпособВывода(Аппендер, УровниЛога.Предупреждение); + КонтекстЛога = ПодключитьАппендерЛога( + "oscript.lib.benchmark.ЗапускательФайловБенчмарков", + УровниЛога.Предупреждение + ); // Действие Попытка Запускатель = Новый ЗапускательФайловБенчмарков(Новый Массив()); Запускатель.Запустить(); - - Сообщения = Аппендер.ПолучитьСообщения(); + Сообщения = КонтекстЛога.Аппендер.ПолучитьСообщения(); Исключение - Лог.УдалитьСпособВывода(Аппендер); - Лог.УстановитьУровень(ПредыдущийУровень); + ОтключитьАппендерЛога(КонтекстЛога); ВызватьИсключение; КонецПопытки; - Лог.УдалитьСпособВывода(Аппендер); - Лог.УстановитьУровень(ПредыдущийУровень); - + ОтключитьАппендерЛога(КонтекстЛога); + // Проверка Ожидаем.Что(Сообщения).ИмеетДлину(1); Ожидаем.Что(Сообщения[0]).Равно("ПРЕДУПРЕЖДЕНИЕ - Не найдено ни одного файла с бенчмарками для запуска"); @@ -131,36 +126,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 +194,7 @@ Файлы = НайтиФайлы(КаталогАртефактов, "*.json"); Ожидаем.Что(Файлы, "Должно быть создано два файла отчета").ИмеетДлину(2); - + Ожидаем .Что( ФС.ФайлСуществует(ПутьКФайлуОтчета), @@ -198,8 +213,7 @@ "Файла отчета для АлгоритмБезАннотации2 не должен быть создан") .ЭтоЛожь(); - Сериализатор = Новый СериализаторРезультатовБенчмарков(); - РезультатЗапуска = Сериализатор.ПрочитатьИзJson(ПутьКФайлуОтчета); + РезультатЗапуска = ПрочитатьРезультатИзJson(ПутьКФайлуОтчета); Ожидаем .Что( @@ -235,39 +249,82 @@ КонецПроцедуры -Функция ВыполнитьСЗахватомЛогаПодготовителя(МассивФайлов) +#КонецОбласти - Лог = Логирование.ПолучитьЛог("oscript.lib.benchmark.ПодготовительФайлаБенчмарка"); - ПредыдущийУровень = Лог.Уровень(); - Аппендер = ЗагрузитьСценарий(ПолныйПутьКФайлу("./tests/fixtures/АппендерЛога.os")); +#Область СлужебныеПроцедурыИФункции - Лог.УстановитьУровень(УровниЛога.Отладка); - Лог.ДобавитьСпособВывода(Аппендер, УровниЛога.Отладка); +Функция ПолучитьСообщенияПодготовителяФайлаБенчмарка(ФайлыДляЗапуска) - МассивФайлов.Добавить("ФайлКоторогоНеСуществуетДляТестаЗапускателя.os"); + КонтекстЛога = ПодключитьАппендерЛога( + "oscript.lib.benchmark.ПодготовительФайлаБенчмарка", + УровниЛога.Отладка + ); + + ФайлыДляПроверки = Новый Массив(); + Для Каждого ФайлДляЗапуска Из ФайлыДляЗапуска Цикл + ФайлыДляПроверки.Добавить(ФайлДляЗапуска); + КонецЦикла; + ФайлыДляПроверки.Добавить(ИмяНесуществующегоФайлаЗапускателя()); Попытка - Запускатель = Новый ЗапускательФайловБенчмарков(МассивФайлов); + Запускатель = Новый ЗапускательФайловБенчмарков(ФайлыДляПроверки); Ожидаем .Что(Запускатель) .Метод("Запустить") - .ВыбрасываетИсключение("Файл <ФайлКоторогоНеСуществуетДляТестаЗапускателя.os> не существует"); + .ВыбрасываетИсключение(ТекстОшибкиНесуществующегоФайлаЗапускателя()); - Сообщения = Аппендер.ПолучитьСообщения(); + Сообщения = КонтекстЛога.Аппендер.ПолучитьСообщения(); Исключение - Лог.УдалитьСпособВывода(Аппендер); - Лог.УстановитьУровень(ПредыдущийУровень); + ОтключитьАппендерЛога(КонтекстЛога); ВызватьИсключение; КонецПопытки; - Лог.УдалитьСпособВывода(Аппендер); - Лог.УстановитьУровень(ПредыдущийУровень); + ОтключитьАппендерЛога(КонтекстЛога); Возврат Сообщения; КонецФункции +Функция ПодключитьАппендерЛога(ИмяЛога, Уровень) + + Лог = Логирование.ПолучитьЛог(ИмяЛога); + Аппендер = ЗагрузитьСценарий(ПолныйПутьКФайлу("./tests/fixtures/АппендерЛога.os")); + ПредыдущийУровень = Лог.Уровень(); + + Лог.УстановитьУровень(Уровень); + Лог.ДобавитьСпособВывода(Аппендер, Уровень); + + Возврат Новый Структура("Лог, Аппендер, ПредыдущийУровень", Лог, Аппендер, ПредыдущийУровень); + +КонецФункции + +Процедура ОтключитьАппендерЛога(КонтекстЛога) + + КонтекстЛога.Лог.УдалитьСпособВывода(КонтекстЛога.Аппендер); + КонтекстЛога.Лог.УстановитьУровень(КонтекстЛога.ПредыдущийУровень); + +КонецПроцедуры + +Функция НастройкиСJsonЭкспортером(КаталогАртефактов) + + Настройки = Новый НастройкиЗапускаБенчмарков(); + Настройки.Конфигурация = ТестированиеБенчмарков + .КонфигурацияПоУмолчанию() + .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Json) + .УстановитьКаталогАртефактов(КаталогАртефактов); + + Возврат Настройки; + +КонецФункции + +Функция ПрочитатьРезультатИзJson(ПутьКФайлу) + + Сериализатор = Новый СериализаторРезультатовБенчмарков(); + Возврат Сериализатор.ПрочитатьИзJson(ПутьКФайлу); + +КонецФункции + Функция ПолныйПутьКФайлу(ПутьКФайлу) Возврат ФС.НормализоватьПуть(ОбъединитьПути(ТекущийКаталог(), ПутьКФайлу)); КонецФункции @@ -313,4 +370,14 @@ Возврат НовыеФайлы; -КонецФункции \ 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..d8b7cd5 --- /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,147 @@ +// 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\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\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" similarity index 93% 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" 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\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\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..b230d01 --- /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,269 @@ +// BSLLS:LineLength-off +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать "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); + +КонецПроцедуры + +#КонецОбласти \ 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\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 a4ec460..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,935 +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); - - ПараметрыМетода = Новый Массив(); - ПараметрыМетода.Добавить(ИдентификаторыКейсов); - - ГенераторКейсов = Новый ГенераторКейсовБенчмарков(ДескрипторыБенчмарков, Конфигурация); - - // Действие и Проверка - Ожидаем - .Что(ГенераторКейсов) - .Метод("СгенерироватьПоИдентификаторам", ПараметрыМетода) - .ВыбрасываетИсключение("Не найдено 1 из 2 запрошенных кейсов. Ненайденные идентификаторы кейсов: 100"); - -КонецПроцедуры - -Процедура ПроверитьКонфигурациюБенчмаркаСАннотациямиКонфигурации(Конфигурация) - - Экспортеры = Конфигурация.Экспортеры(); - КоллекцияЭкспортеры = ПроцессорыКоллекций.ИзКоллекции(Экспортеры); - ИсполняющиеСреды = Конфигурация.ИсполняющиеСреды(); - Колонки = Конфигурация.Колонки(); - Параметры = Конфигурация.Параметры(); - ИсточникиПараметров = Конфигурация.ИсточникиПараметров(); - - ФункцияПоискаЭкспортера = "Экспортер -> ТипЗнч(Экспортер) = Тип(""ЭкспортерРезультатовБенчмарковВ%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); - ТекстЛога = ЧтениеТекста.Прочитать(); - ЧтениеТекста.Закрыть(); - - Возврат СтрРазделить(ТекстЛога, Символы.ПС, Ложь); - -КонецФункции \ 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..fe9180a --- /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,211 @@ +// BSLLS:LineLength-off +// BSLLS:MagicNumber-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\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\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" new file mode 100644 index 0000000..41e2109 --- /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\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,184 @@ +// BSLLS:LineLength-off +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать "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..55ae292 --- /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,273 @@ +// BSLLS:LineLength-off +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать fluent +#Использовать "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 950ed85..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,13 +3,19 @@ Перем _ПарсерПараметровБенчмарковCLI; // ПарсерПараметровБенчмарковCLI +#Область ОбработчикиСобытий + &Инициализация -Процедура Инициализация() Экспорт +Процедура ПередВсеми() Экспорт _ПарсерПараметровБенчмарковCLI = Новый ПарсерПараметровБенчмарковCLI(); КонецПроцедуры +#КонецОбласти + +#Область Тесты + &Тест &Параметры("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 dc40030..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" @@ -5,24 +5,28 @@ #Использовать tempfiles #Использовать "helpers" -Перем МенеджерВременныхФайлов; // МенеджерВременныхФайлов -Перем ПодготовительФайлаБенчмарка; // ПодготовительФайлаБенчмарка +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов +Перем _ПодготовительФайлаБенчмарка; // ПодготовительФайлаБенчмарка -&Перед -Процедура ПередЗапускомТеста() Экспорт - - МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); - ПодготовительФайлаБенчмарка = Новый ПодготовительФайлаБенчмарка(МенеджерВременныхФайлов); +#Область ОбработчикиСобытий +&Инициализация +Процедура ПередВсеми() Экспорт + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); + _ПодготовительФайлаБенчмарка = Новый ПодготовительФайлаБенчмарка(_МенеджерВременныхФайлов); КонецПроцедуры -&После -Процедура ПослеЗапускаТеста() Экспорт +&Завершение +Процедура ПослеВсех() Экспорт - МенеджерВременныхФайлов.Удалить(); + _МенеджерВременныхФайлов.Удалить(); КонецПроцедуры +#КонецОбласти + +#Область Тесты + &Тест Процедура ТестДолжен_ВернутьИсходныйФайлЕслиАннотацияБенчмаркУжеЕсть() Экспорт @@ -30,11 +34,11 @@ ПутьКФайлу = "./tests/fixtures/benchmarks/Классы/ПустойБенчмарк.os"; // Действие - ПодготовленныйФайл = ПодготовительФайлаБенчмарка.Подготовить(ПутьКФайлу); + ПодготовленныйФайл = _ПодготовительФайлаБенчмарка.Подготовить(ПутьКФайлу); // Проверка Ожидаем.Что(ПодготовленныйФайл).Равно(ПутьКФайлу); - Ожидаем.Что(МенеджерВременныхФайлов.Файлы()).ИмеетДлину(0); + Ожидаем.Что(_МенеджерВременныхФайлов.Файлы()).ИмеетДлину(0); КонецПроцедуры @@ -45,7 +49,7 @@ ПутьКФайлу = "./tests/fixtures/АлгоритмБезАннотации.os"; // Действие - ПодготовленныйФайл = ПодготовительФайлаБенчмарка.Подготовить(ПутьКФайлу); + ПодготовленныйФайл = _ПодготовительФайлаБенчмарка.Подготовить(ПутьКФайлу); // Проверка ТекстВременногоФайла = ПрочитатьТекст(ПодготовленныйФайл); @@ -53,7 +57,7 @@ ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип); Ожидаем.Что(ФС.ФайлСуществует(ПодготовленныйФайл)).Равно(Истина); - Ожидаем.Что(МенеджерВременныхФайлов.Файлы()).ИмеетДлину(1); + Ожидаем.Что(_МенеджерВременныхФайлов.Файлы()).ИмеетДлину(1); Ожидаем.Что(ТекстВременногоФайла).Содержит("#Использовать fs"); Ожидаем.Что(ТекстВременногоФайла).Содержит("&Бенчмарк"); Ожидаем.Что(ТекстВременногоФайла).Содержит("Процедура Бенчмарк() Экспорт"); @@ -68,10 +72,18 @@ &Параметры("./tests/fixtures/АлгоритмБезАннотации.os", Ложь) Процедура ТестДолжен_ОпределитьНаличиеБенчмарковВФайле(ПутьКФайлу, Ожидание) Экспорт - Ожидаем.Что(ПодготовительФайлаБенчмарка.СодержитБенчмарки(ПутьКФайлу)).Равно(Ожидание); + // Действие + СодержитБенчмарки = _ПодготовительФайлаБенчмарка.СодержитБенчмарки(ПутьКФайлу); + + // Проверка + Ожидаем.Что(СодержитБенчмарки).Равно(Ожидание); КонецПроцедуры +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Функция ПрочитатьТекст(ПутьКФайлу) ЧтениеТекста = Новый ЧтениеТекста(ПутьКФайлу, КодировкаТекста.UTF8); @@ -81,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" deleted file mode 100644 index 2272901..0000000 --- "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" +++ /dev/null @@ -1,167 +0,0 @@ -// BSLLS:DuplicateStringLiteral-off -// BSLLS:MagicNumber-off - -#Использовать asserts -#Использовать "helpers" - -&Тест -Процедура Тест_ПредставлениеБайт() Экспорт - - Кратность = 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"; - ТестовыйНабор[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 Тогда - Ожидаем.Что(РезультатСМинусом).Равно("-" + Представление); - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - -&Тест -Процедура Тест_ПредставлениеБулево() Экспорт - - ТестовыйНабор = Новый Соответствие(); - ТестовыйНабор[Истина] = "True"; - ТестовыйНабор[Ложь] = "False"; - - Для Каждого Строка Из ТестовыйНабор Цикл - - Значение = Строка.Ключ; - Представление = Строка.Значение; - - Результат = ПредставленияПоказателейБенчмарков.Представление(Значение); - Ожидаем.Что(Результат).Равно(Представление); - - КонецЦикла; - -КонецПроцедуры - -&Тест -Процедура Тест_ПредставлениеБулевоФорматнойСтрокой() Экспорт - - ФорматнаяСтрока = "БЛ=No; БИ=Yes"; - - ТестовыйНабор = Новый Соответствие(); - ТестовыйНабор[Истина] = "Yes"; - ТестовыйНабор[Ложь] = "No"; - - Для Каждого Строка Из ТестовыйНабор Цикл - - Значение = Строка.Ключ; - Представление = Строка.Значение; - - Результат = ПредставленияПоказателейБенчмарков.Представление(Значение, , ФорматнаяСтрока); - Ожидаем.Что(Результат).Равно(Представление); - - КонецЦикла; - -КонецПроцедуры \ No newline at end of file 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" new file mode 100644 index 0000000..21ba499 --- /dev/null +++ "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" @@ -0,0 +1,166 @@ +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать "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") +Процедура ТестДолжен_ФорматироватьБайтыВЧитаемыйВид(Значение, ОжидаемоеПредставление) Экспорт + // Действие + Результат = ПредставленияПоказателейБенчмарков.ПредставлениеЧитаемое( + Значение, + ЕдиницыИзмеренийБенчмарков.Байт + ); + + // Проверка + Ожидаем.Что(Результат).Равно(ОжидаемоеПредставление); + +КонецПроцедуры + +&Тест +&Параметры(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 Тогда + Ожидаем.Что(РезультатСМинусом).Равно("-" + ОжидаемоеПредставление); + КонецЕсли; + +КонецПроцедуры + +&Тест +&Параметры(Истина, "True") +&Параметры(Ложь, "False") +Процедура ТестДолжен_ФорматироватьБулево(Значение, ОжидаемоеПредставление) Экспорт + + // Действие + Результат = ПредставленияПоказателейБенчмарков.Представление(Значение); + + // Проверка + Ожидаем.Что(Результат).Равно(ОжидаемоеПредставление); + +КонецПроцедуры + +&Тест +&Параметры(Истина, "Yes") +&Параметры(Ложь, "No") +Процедура ТестДолжен_ФорматироватьБулевоПоФорматнойСтроке(Значение, ОжидаемоеПредставление) Экспорт + + // Действие + Результат = ПредставленияПоказателейБенчмарков.Представление(Значение, , "БЛ=No; БИ=Yes"); + + // Проверка + Ожидаем.Что(Результат).Равно(ОжидаемоеПредставление); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ФорматироватьЧислоБезДобавленияЕдиницыИзмерения() Экспорт + + // Действие + Результат = ПредставленияПоказателейБенчмарков.ПредставлениеЧитаемое( + 1500, + ЕдиницыИзмеренийБенчмарков.Наносекунда, + "", + Ложь + ); + + // Проверка + Ожидаем.Что(Результат).Равно("1.5"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ФорматироватьФиксированнуюСтроку() Экспорт + + // Действие + СтрокаСВыравниваниемВлево = ПредставленияПоказателейБенчмарков.ФиксированнаяСтрока("abc", 5); + СтрокаСВыравниваниемВправо = ПредставленияПоказателейБенчмарков.ФиксированнаяСтрока("abc", 5, Истина); + СтрокаСОборачиванием = ПредставленияПоказателейБенчмарков.ФиксированнаяСтрока("abc", 5, Ложь, "-", Истина); + СтрокаБезОбрезания = ПредставленияПоказателейБенчмарков.ФиксированнаяСтрока("abcdef", 3); + + // Проверка + Ожидаем.Что(СтрокаСВыравниваниемВлево).Равно("abc "); + Ожидаем.Что(СтрокаСВыравниваниемВправо).Равно(" abc"); + Ожидаем.Что(СтрокаСОборачиванием).Равно("-abc-"); + Ожидаем.Что(СтрокаБезОбрезания).Равно("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\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 92% 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" index 760cfdb..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\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" @@ -7,27 +7,33 @@ #Использовать "helpers" #Использовать "fixtures/benchmarks" -Перем МенеджерВременныхФайлов; // МенеджерВременныхФайлов +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов + +#Область ОбработчикиСобытий &Инициализация Процедура ПередВсеми() Экспорт - МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); КонецПроцедуры &Завершение Процедура ПослеВсех() Экспорт - МенеджерВременныхФайлов.Удалить(); + _МенеджерВременныхФайлов.Удалить(); КонецПроцедуры +#КонецОбласти + +#Область Тесты + &Тест -Процедура ТестДолжен_СериализоватьИДесериализовать() Экспорт +Процедура ТестДолжен_СериализоватьИДесериализоватьНастройкиЗапускаБенчмарков() Экспорт // Подготовка Тип = Тип("БенчмаркСАннотациямиКонфигурации"); Конфигурация = Новый КонфигурацияБенчмарков(Тип); КоллекцияДескрипторов = Новый КоллекцияДескрипторовБенчмарков(Тип); - ИмяФайла = МенеджерВременныхФайлов.НовоеИмяФайла(); + ИмяФайла = _МенеджерВременныхФайлов.НовоеИмяФайла(); НастройкиЗапуска = Новый НастройкиЗапускаБенчмарков(); НастройкиЗапуска.ДескрипторыБенчмарков = КоллекцияДескрипторов; @@ -45,6 +51,10 @@ КонецПроцедуры +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Процедура ПроверитьДескрипторыБенчмаркаСАннотациямиКонфигурации(ДескрипторыБенчмарков) Ожидаем.Что(ДескрипторыБенчмарков.Количество()).Равно(1); @@ -69,7 +79,7 @@ КонецПроцедуры Процедура ПроверитьКонфигурациюБенчмаркаСАннотациямиКонфигурации(Конфигурация) - + Экспортеры = Конфигурация.Экспортеры(); КоллекцияЭкспортеры = ПроцессорыКоллекций.ИзКоллекции(Экспортеры); ИсполняющиеСреды = Конфигурация.ИсполняющиеСреды(); @@ -112,4 +122,6 @@ Ожидаем.Что(ИсточникиПараметров[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\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 95% 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" index 1320ff8..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\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" @@ -9,38 +9,44 @@ #Использовать "helpers" #Использовать "fixtures/benchmarks" -Перем МенеджерВременныхФайлов; // МенеджерВременныхФайлов +Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов + +#Область ОбработчикиСобытий &Инициализация Процедура ПередВсеми() Экспорт - МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); + _МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов(); КонецПроцедуры &Завершение Процедура ПослеВсех() Экспорт - МенеджерВременныхФайлов.Удалить(); + _МенеджерВременныхФайлов.Удалить(); КонецПроцедуры &После Процедура ПослеЗапускаТеста() Экспорт - + КаталогАртефактов = ".\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").ЭтоЛожь(); - -КонецПроцедуры \ 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\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" similarity index 75% 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" index b3bd9ab..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\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 @@ #Использовать asserts #Использовать "helpers" +#Область Тесты + &Тест Процедура ТестДолжен_ПрочитатьПустуюКоллекциюЗамеров() Экспорт @@ -31,12 +33,15 @@ КонецПроцедуры &Тест -Процедура Тест_НечетныйРазмер() Экспорт - +Процедура ТестДолжен_РассчитатьСтатистикуДляНечетногоКоличестваЗамеров() Экспорт + + // Подготовка ТестовыеЗамеры = ТестовыеЗамеры("12, 15, 22, 25, 17, 28, 14", "100, 101, 102"); + // Действие Статистика = Новый СтатистикаБенчмарка(ТестовыеЗамеры); + // Проверка Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(19); Ожидаем.Что(Статистика.Мин, "Мин").Равно(12); Ожидаем.Что(Статистика.Макс, "Макс").Равно(28); @@ -55,12 +60,15 @@ КонецПроцедуры &Тест -Процедура Тест_ЧетныйРазмер() Экспорт - +Процедура ТестДолжен_РассчитатьСтатистикуДляЧетногоКоличестваЗамеров() Экспорт + + // Подготовка ТестовыеЗамеры = ТестовыеЗамеры("12, 15, 22, 25, 17, 28, 20, 4", "100, 102"); + // Действие Статистика = Новый СтатистикаБенчмарка(ТестовыеЗамеры); + // Проверка Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(17.875); Ожидаем.Что(Статистика.Мин, "Мин").Равно(4); Ожидаем.Что(Статистика.Макс, "Макс").Равно(28); @@ -79,12 +87,15 @@ КонецПроцедуры &Тест -Процедура Тест_ОдинаковыеЗначения() Экспорт - +Процедура ТестДолжен_РассчитатьСтатистикуДляОдинаковыхЗамеров() Экспорт + + // Подготовка ТестовыеЗамеры = ТестовыеЗамеры("5, 5, 5, 5", "100, 100"); + // Действие Статистика = Новый СтатистикаБенчмарка(ТестовыеЗамеры); + // Проверка Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(5); Ожидаем.Что(Статистика.Мин, "Мин").Равно(5); Ожидаем.Что(Статистика.Макс, "Макс").Равно(5); @@ -103,12 +114,15 @@ КонецПроцедуры &Тест -Процедура Тест_ОтрицательныеЗначения() Экспорт - +Процедура ТестДолжен_РассчитатьСтатистикуДляОтрицательныхЗамеров() Экспорт + + // Подготовка ТестовыеЗамеры = ТестовыеЗамеры("-12, 15, -22, 25, 17, 28, 0, 4", "100, -100"); + // Действие Статистика = Новый СтатистикаБенчмарка(ТестовыеЗамеры); + // Проверка Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(6.875); Ожидаем.Что(Статистика.Мин, "Мин").Равно(-22); Ожидаем.Что(Статистика.Макс, "Макс").Равно(28); @@ -127,15 +141,18 @@ КонецПроцедуры &Тест -Процедура Тест_ВМиллисекунды() Экспорт - +Процедура ТестДолжен_КонвертироватьСтатистикуВМиллисекунды() Экспорт + + // Подготовка ОтношениеКБазовой = ЕдиницыИзмеренийБенчмарков.Миллисекунда.ОтношениеКБазовой; ТестовыеЗамеры = ТестовыеЗамеры("12, 15, 22, 25, 17, 28, 14", "100, 101", ОтношениеКБазовой); + // Действие Статистика = Новый СтатистикаБенчмарка(ТестовыеЗамеры); Статистика.ВМиллисекунды(); + // Проверка Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(19); Ожидаем.Что(Статистика.Мин, "Мин").Равно(12); Ожидаем.Что(Статистика.Макс, "Макс").Равно(28); @@ -153,15 +170,18 @@ КонецПроцедуры &Тест -Процедура Тест_ВСекунды() Экспорт - +Процедура ТестДолжен_КонвертироватьСтатистикуВСекунды() Экспорт + + // Подготовка ОтношениеКБазовой = ЕдиницыИзмеренийБенчмарков.Секунда.ОтношениеКБазовой; ТестовыеЗамеры = ТестовыеЗамеры("12, 15, 22, 25, 17, 28, 14", "100, 101", ОтношениеКБазовой); + // Действие Статистика = Новый СтатистикаБенчмарка(ТестовыеЗамеры); Статистика.ВСекунды(); + // Проверка Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(19); Ожидаем.Что(Статистика.Мин, "Мин").Равно(12); Ожидаем.Что(Статистика.Макс, "Макс").Равно(28); @@ -179,13 +199,16 @@ КонецПроцедуры &Тест -Процедура Тест_ВНаносекунды() Экспорт - +Процедура ТестДолжен_ВернутьСтатистикуВНаносекундахПослеОбратнойКонвертации() Экспорт + + // Подготовка ТестовыеЗамеры = ТестовыеЗамеры("12, 15, 22, 25, 17, 28, 14", "100, 101"); + // Действие Статистика = Новый СтатистикаБенчмарка(ТестовыеЗамеры); Статистика.ВСекунды().ВНаносекунды(); + // Проверка Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(19); Ожидаем.Что(Статистика.Мин, "Мин").Равно(12); Ожидаем.Что(Статистика.Макс, "Макс").Равно(28); @@ -203,16 +226,19 @@ КонецПроцедуры &Тест -Процедура Тест_Разделить() Экспорт - +Процедура ТестДолжен_РазделитьСтатистику() Экспорт + + // Подготовка ТестовыеЗамеры1 = ТестовыеЗамеры("32, 16, 64, 128", "100, 102"); ТестовыеЗамеры2 = ТестовыеЗамеры("2, 8, 16, 4", "50, 51"); Статистика1 = Новый СтатистикаБенчмарка(ТестовыеЗамеры1); Статистика2 = Новый СтатистикаБенчмарка(ТестовыеЗамеры2); + // Действие Статистика = Статистика1.Разделить(Статистика2); + // Проверка Ожидаем.Что(Статистика.Среднее, "Среднее").Равно(14.0625); Ожидаем.Что(Статистика.Мин, "Мин").Равно(1); Ожидаем.Что(Статистика.Макс, "Макс").Равно(64); @@ -230,8 +256,104 @@ КонецПроцедуры -Функция ТестовыеЗамеры(СтрокаЗамерыВремени, СтрокаЗамерыПамяти, Множитель = 1) Экспорт +&Тест +Процедура ТестДолжен_ПрочитатьЗамерыИзСтруктуры() Экспорт + + // Подготовка + ЗамерыВремени = Новый Массив(); + ЗамерыВремени.Добавить(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 +375,6 @@ Возврат Замеры; -КонецФункции \ No newline at end of file +КонецФункции + +#КонецОбласти 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 98% 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" 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\320\276\320\263\320\276\320\227\320\260\320\277\321\203\321\201\320\272\320\260.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" new file mode 100644 index 0000000..b44644d --- /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,130 @@ +// BSLLS:LineLength-off +// BSLLS:MagicNumber-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\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" new file mode 100644 index 0000000..dea2b15 --- /dev/null +++ "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" @@ -0,0 +1,106 @@ +// BSLLS:LineLength-off +// BSLLS:MagicNumber-off + +#Использовать asserts +#Использовать fs +#Использовать strings +#Использовать "helpers" +#Использовать "fixtures/benchmarks" + +#Область ОбработчикиСобытий + +&После +Процедура ПослеЗапускаТеста() Экспорт + + ФС.УдалитьФайлы(".\BenchmarkArtifacts"); + +КонецПроцедуры + +#КонецОбласти + +#Область Тесты + +&Тест +&Параметры("Markdown", "md", "tests/fixtures/verified-report.md") +&Параметры("Json", "json", "tests/fixtures/verified-report.json") +&Параметры("Html", "html", "tests/fixtures/verified-report.html") +Процедура ТестДолжен_ЭкспортироватьОтчетВУказанныйФормат(ИмяЭкспортера, Расширение, ПутьКЭталону) Экспорт + + Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда + Возврат; + КонецЕсли; + + // Подготовка + Тип = Тип("БенчмаркиДляЭкспорта"); + ТекстЭталон = СтроковыеФункции.ПрочитатьФайл(ПутьКЭталону); + Конфигурация = ПодготовитьКонфигурациюЭкспорта(Тип, ИмяЭкспортера); + ПутьКФайлу = ОбъединитьПути(Конфигурация.КаталогАртефактов(), "БенчмаркиДляЭкспорта-report." + Расширение); + + // Действие + Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + Ожидаем.Что(СтроковыеФункции.ПрочитатьФайл(ПутьКФайлу)).Равно(ТекстЭталон); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_НеСоздаватьАртефактыБезЭкспортеров() Экспорт + + // Подготовка + Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда + Возврат; + КонецЕсли; + + Тип = Тип("БенчмаркиДляЭкспорта"); + Конфигурация = ПодготовитьКонфигурациюЭкспорта(Тип); + Конфигурация.УдалитьЭкспортеры(); + + // Действие + Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + Ожидаем.Что(НайтиФайлы(Конфигурация.КаталогАртефактов(), "*-report.*")).ИмеетДлину(0); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПодготовитьКонфигурациюЭкспорта(Тип, ИмяЭкспортера = "") + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + Конфигурация + .ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаВремени", СобытияБенчмарков.ПослеКаждогоКейса) + .ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаМокСредыОкружения", СобытияБенчмарков.ПослеВсех); + + Если ЗначениеЗаполнено(ИмяЭкспортера) Тогда + Конфигурация.ДобавитьЭкспортер(ЭкспортерПоИмени(ИмяЭкспортера)); + КонецЕсли; + + Если ИмяЭкспортера = "Json" Тогда + Конфигурация.УстановитьКоличествоИтераций(10); + КонецЕсли; + + Возврат Конфигурация; + +КонецФункции + +Функция ЭкспортерПоИмени(ИмяЭкспортера) + + Если ИмяЭкспортера = "Markdown" Тогда + Возврат ЭкспортерыРезультатовБенчмарков.Markdown; + ИначеЕсли ИмяЭкспортера = "Json" Тогда + Возврат ЭкспортерыРезультатовБенчмарков.Json; + ИначеЕсли ИмяЭкспортера = "Html" Тогда + Возврат ЭкспортерыРезультатовБенчмарков.Html; + Иначе + ВызватьИсключение СтрШаблон("Неизвестный экспортер <%1>", ИмяЭкспортера); + КонецЕсли; + +КонецФункции + +#КонецОбласти 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" deleted file mode 100644 index e4e0fe9..0000000 --- "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" +++ /dev/null @@ -1,113 +0,0 @@ -// BSLLS:LineLength-off - -#Использовать asserts -#Использовать fs -#Использовать strings -#Использовать "helpers" -#Использовать "fixtures/benchmarks" - -&После -Процедура ПослеЗапускаТеста() Экспорт - - КаталогАртефактов = ".\BenchmarkArtifacts"; - - ФС.УдалитьФайлы(КаталогАртефактов); - -КонецПроцедуры - -&Тест -Процедура Тест_ЭкспортВMarkdown() Экспорт - - Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда - Возврат; - КонецЕсли; - - // Подготовка - Тип = Тип("БенчмаркиДляЭкспорта"); - - ТекстЭталон = СтроковыеФункции.ПрочитатьФайл("tests/fixtures/verified-report.md"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Конфигурация - .ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаВремени", СобытияБенчмарков.ПослеКаждогоКейса) - .ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаМокСредыОкружения", СобытияБенчмарков.ПослеВсех) - .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Markdown); - - ПутьКФайлу = ОбъединитьПути(Конфигурация.КаталогАртефактов(), "БенчмаркиДляЭкспорта-report.md"); - - // Действие - Бенчмаркинг.Запустить(Тип, Конфигурация); - - // Проверка - Текст = СтроковыеФункции.ПрочитатьФайл(ПутьКФайлу); - - Ожидаем.Что(Текст).Равно(ТекстЭталон); - -КонецПроцедуры - -&Тест -Процедура Тест_ЭкспортВJson() Экспорт - - Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда - Возврат; - КонецЕсли; - - // Подготовка - Тип = Тип("БенчмаркиДляЭкспорта"); - - ТекстЭталон = СтроковыеФункции.ПрочитатьФайл("tests/fixtures/verified-report.json"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Конфигурация - .ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаВремени", СобытияБенчмарков.ПослеКаждогоКейса) - .ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаМокСредыОкружения", СобытияБенчмарков.ПослеВсех) - .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Json) - .УстановитьКоличествоИтераций(10); - - ПутьКФайлу = ОбъединитьПути(Конфигурация.КаталогАртефактов(), "БенчмаркиДляЭкспорта-report.json"); - - // Действие - Бенчмаркинг.Запустить(Тип, Конфигурация); - - // Проверка - Текст = СтроковыеФункции.ПрочитатьФайл(ПутьКФайлу); - - Ожидаем.Что(Текст).Равно(ТекстЭталон); - -КонецПроцедуры - -&Тест -Процедура Тест_ЭкспортВHtml() Экспорт - - Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда - Возврат; - КонецЕсли; - - // Подготовка - Тип = Тип("БенчмаркиДляЭкспорта"); - - ТекстЭталон = СтроковыеФункции.ПрочитатьФайл("tests/fixtures/verified-report.html"); - - Конфигурация = Новый КонфигурацияБенчмарков(Тип); - ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); - - Конфигурация - .ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаВремени", СобытияБенчмарков.ПослеКаждогоКейса) - .ДобавитьОбработчикСобытия("ОбработчикиСобытийБенчмарков.УстановкаМокСредыОкружения", СобытияБенчмарков.ПослеВсех) - .ДобавитьЭкспортер(ЭкспортерыРезультатовБенчмарков.Html); - - ПутьКФайлу = ОбъединитьПути(Конфигурация.КаталогАртефактов(), "БенчмаркиДляЭкспорта-report.html"); - - // Действие - Бенчмаркинг.Запустить(Тип, Конфигурация); - - // Проверка - Текст = СтроковыеФункции.ПрочитатьФайл(ПутьКФайлу); - - Ожидаем.Что(Текст).Равно(ТекстЭталон); - -КонецПроцедуры \ No newline at end of file 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 99% 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" 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\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\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 +КонецПроцедуры + +#КонецОбласти