Skip to content

Commit

Permalink
Merge branch 'release/v.0.5.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
arkuznetsov committed Sep 26, 2019
2 parents 8d90d59 + afd929c commit a7f3187
Show file tree
Hide file tree
Showing 5 changed files with 190 additions and 41 deletions.
File renamed without changes.
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Описание.Имя("yabr")
.Версия("0.5.1")
.Версия("0.5.2")
.ВерсияСреды("1.0.21")
.ЗависитОт("logos", "1.2.1")
.ЗависитОт("delegate", "0.2.0")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -406,7 +406,7 @@

ПутиКОписаниям = Новый Массив();

НайденныеФайлы = НайтиФайлы(Каталог, "1Cv8Clst.lst", Истина);
НайденныеФайлы = НайтиФайлы(Каталог, "1CV8Clst.lst", Истина);
Для Каждого ТекФайл Из НайденныеФайлы Цикл
ПутиКОписаниям.Добавить(ТекФайл.ПолноеИмя);
КонецЦикла;
Expand Down
82 changes: 45 additions & 37 deletions src/Классы/ЧтениеСкобкоФайла.os
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
// ДвоичныеДанные
Перем НачальнаяСтрока; // Число - номер начальной строки файла для чтения
Перем УровниЗаписей; // Массив(Число) - номера уровней записей скобкофайла,
// которые будут переданы на дальнейшую обработку
// которые будут переданы на дальнейшую обработку
Перем МинУровеньЗаписи; // Число - минимальный обрабатываемый уровень записи
Перем КаталогПозицийЧтения; // Строка - путь к каталогу для сохранения позиций начала чтения
Перем ПрефиксФайлаПозицииЧтения; // Строка - префикс, добавляемый к имени файла для сохранения
// позиции начала чтения
Expand Down Expand Up @@ -178,24 +179,12 @@

УровниЗаписей = Новый Массив();
Если ПараметрыОбработки.Свойство("УровниЗаписей") Тогда
Если ТипЗнч(ПараметрыОбработки.УровниЗаписей) = Тип("Строка") Тогда
УровниЗаписей = СтрРазделить(ПараметрыОбработки.УровниЗаписей, ",");
ИначеЕсли ТипЗнч(ПараметрыОбработки.УровниЗаписей) = Тип("Массив") Тогда
УровниЗаписей = ПараметрыОбработки.УровниЗаписей;
Иначе
УровниЗаписей.Добавить(1);
КонецЕсли;
ЗаполнитьУровниЗаписей(ПараметрыОбработки.УровниЗаписей);
Иначе
УровниЗаписей.Добавить(1);
МинУровеньЗаписи = 1;
КонецЕсли;

Для й = 0 По УровниЗаписей.ВГраница() Цикл
Если ТипЗнч(УровниЗаписей[й]) = Тип("Число") Тогда
Продолжить;
КонецЕсли;
УровниЗаписей[й] = Число(УровниЗаписей[й]);
КонецЦикла;

НачальнаяСтрока = 1;
Если ПараметрыОбработки.Свойство("НачальнаяСтрока") Тогда
НачальнаяСтрока = ПараметрыОбработки.НачальнаяСтрока;
Expand Down Expand Up @@ -260,24 +249,7 @@
Если ВРег(ИмяПараметра) = ВРег("ПутьКФайлу") Тогда
УстановитьДанные(Значение);
ИначеЕсли ВРег(ИмяПараметра) = ВРег("УровниЗаписей") Тогда

УровниЗаписей = Новый Массив();

Если ТипЗнч(Значение) = Тип("Строка") Тогда
УровниЗаписей = СтрРазделить(Значение, ",");
ИначеЕсли ТипЗнч(Значение) = Тип("Массив") Тогда
УровниЗаписей = Значение;
Иначе
УровниЗаписей.Добавить(1);
КонецЕсли;

Для й = 0 По УровниЗаписей.ВГраница() Цикл
Если ТипЗнч(УровниЗаписей[й]) = Тип("Число") Тогда
Продолжить;
КонецЕсли;
УровниЗаписей[й] = Число(УровниЗаписей[й]);
КонецЦикла;

ЗаполнитьУровниЗаписей(Значение);
ИначеЕсли ВРег(ИмяПараметра) = ВРег("НачальнаяСтрока") Тогда
НачальнаяСтрока = Значение;
ИначеЕсли ВРег(ИмяПараметра) = ВРег("КаталогПозицийЧтения") Тогда
Expand Down Expand Up @@ -821,10 +793,15 @@
РодительскийЭлемент = Элемент.Родитель;

Если ПродолжитьОбработкуЭлемента Тогда

ПродолжениеОбработкиДанныхВызовМенеджера(Элемент);
Элемент.Родитель = Неопределено;
Элемент.Значения.Очистить();
РодительскийЭлемент.Значения.Удалить(Элемент.Индекс);

Если Элемент.Уровень <= МинУровеньЗаписи Тогда
Элемент.Родитель = Неопределено;
Элемент.Значения = Неопределено;
РодительскийЭлемент.Значения[Элемент.Индекс] = Неопределено;
КонецЕсли;

КонецЕсли;

Элемент = РодительскийЭлемент;
Expand Down Expand Up @@ -896,11 +873,42 @@

КонецПроцедуры // СохранитьНачальнуюПозициюЧтения()

// Процедура - устанавливает массив уровней записей для передачи на обработку
// и минимальный обрабатываемый уровень записей
//
// Параметры:
// НовыеУровниЗаписей - Массив(Число), Строка - массив или строка номеров записей, разделенная ","
//
Процедура ЗаполнитьУровниЗаписей(Знач НовыеУровниЗаписей)

УровниЗаписей = Новый Массив();

Если ТипЗнч(НовыеУровниЗаписей) = Тип("Строка") Тогда
УровниЗаписей = СтрРазделить(НовыеУровниЗаписей, ",");
ИначеЕсли ТипЗнч(НовыеУровниЗаписей) = Тип("Массив") Тогда
УровниЗаписей = НовыеУровниЗаписей;
Иначе
УровниЗаписей.Добавить(1);
КонецЕсли;

МинУровеньЗаписи = Неопределено;
Для й = 0 По УровниЗаписей.ВГраница() Цикл
Если НЕ ТипЗнч(УровниЗаписей[й]) = Тип("Число") Тогда
УровниЗаписей[й] = Число(УровниЗаписей[й]);
КонецЕсли;
Если МинУровеньЗаписи = Неопределено Тогда
МинУровеньЗаписи = УровниЗаписей[й];
Иначе
МинУровеньЗаписи = Мин(МинУровеньЗаписи, УровниЗаписей[й]);
КонецЕсли;
КонецЦикла;

КонецПроцедуры // ЗаполнитьУровниЗаписей()

#КонецОбласти // ПроцедурыИФункцииЧтенияДанныхСкобкофайла

#Область ПроцедурыИФункцииЗамераСкоростиВыполнения


// Процедура - инициализирует служебную структуру для замера скорости выполнения
//
Процедура ИнициализироватьЗамерСкоростиВыполнения()
Expand Down
145 changes: 143 additions & 2 deletions tests/yabr-test.os
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@

СписокТестов = Новый Массив;
СписокТестов.Добавить("ТестДолжен_ВыгрузитьОтфильтроватьИСохранитьДанныеЖР");
СписокТестов.Добавить("ТестДолжен_ВыгрузитьИСохранитьСписокИБ");
СписокТестов.Добавить("ТестДолжен_ВыгрузитьИСохранитьОтчетПоВерсиямХранилища");
СписокТестов.Добавить("ТестДолжен_ВыгрузитьИСохранитьОтчетПоПроизводительности");

Возврат СписокТестов;

Expand All @@ -63,6 +66,8 @@

ПутьКРезультатам = ОбъединитьПути(ТекущийСценарий().Каталог, "..", "test-reports");

ИмяВыходногоФайла = "jornal2filter2jsonfile-result.json";

Контекст = Новый Структура();

Аргументы = Новый Массив();
Expand All @@ -82,15 +87,151 @@
ТекстОшибки = ОписаниеОшибки();
КонецПопытки;

ИмяВыходногоФайла = "";
Файл = Новый Файл(ОбъединитьПути(ПутьКРезультатам, ИмяВыходногоФайла));

Утверждения.ПроверитьИстину(Файл.Существует(),
"Ошибка чтения журнала регистрации. Файл результатов не найден.");
СтрШаблон("Ошибка чтения журнала регистрации. Файл результатов ""%1"" не найден.",
ОбъединитьПути(ПутьКРезультатам, ИмяВыходногоФайла)));

Утверждения.ПроверитьБольшеИлиРавно(Файл.ПолучитьВремяИзменения(),
ВремяЗапуска,
"Файл результатов не был изменен.");

УдалитьФайлы(ОбъединитьПути(ПутьКРезультатам, "rp"));

КонецПроцедуры // ТестДолжен_ВыгрузитьОтфильтроватьИСохранитьДанныеЖР()

// Процедура - тест
//
Процедура ТестДолжен_ВыгрузитьИСохранитьСписокИБ() Экспорт

ПутьКНастройкам = ОбъединитьПути(ТекущийСценарий().Каталог,
"..",
"examples",
"clusterdata");
ПутьКНастройкам = ОбъединитьПути(ПутьКНастройкам, "ib-list2jsonfile.json");

ПутьКРезультатам = ОбъединитьПути(ТекущийСценарий().Каталог, "..", "test-reports");

ИмяВыходногоФайла = "ib-list2jsonfile-result.json";

Контекст = Новый Структура();

Аргументы = Новый Массив();
Аргументы.Добавить("p");
Аргументы.Добавить("--work-dir");
Аргументы.Добавить(ПутьКРезультатам);
Аргументы.Добавить(ПутьКНастройкам);

Контекст.Вставить("АргументыКоманднойСтроки", Новый ФиксированныйМассив(Аргументы));
Контекст.Вставить("ЭтоТест" , Истина);

ВремяЗапуска = ТекущаяДата();

Попытка
Сценарий = ЗагрузитьСценарий(ОбъединитьПути(ТекущийСценарий().Каталог, "..", "src", "yabr.os"), Контекст);
Исключение
ТекстОшибки = ОписаниеОшибки();
КонецПопытки;

Файл = Новый Файл(ОбъединитьПути(ПутьКРезультатам, ИмяВыходногоФайла));

Утверждения.ПроверитьИстину(Файл.Существует(),
СтрШаблон("Ошибка чтения списка информационных баз. Файл результатов ""%1"" не найден.",
ОбъединитьПути(ПутьКРезультатам, ИмяВыходногоФайла)));

Утверждения.ПроверитьБольшеИлиРавно(Файл.ПолучитьВремяИзменения(),
ВремяЗапуска,
"Файл результатов не был изменен.");

КонецПроцедуры // ТестДолжен_ВыгрузитьИСохранитьСписокИБ()

// Процедура - тест
//
Процедура ТестДолжен_ВыгрузитьИСохранитьОтчетПоВерсиямХранилища() Экспорт

ПутьКНастройкам = ОбъединитьПути(ТекущийСценарий().Каталог,
"..",
"examples",
"ver-rep");
ПутьКНастройкам = ОбъединитьПути(ПутьКНастройкам, "ver-rep2jsonfile.json");

ПутьКРезультатам = ОбъединитьПути(ТекущийСценарий().Каталог, "..", "test-reports");

ИмяВыходногоФайла = "ver-rep2jsonfile-result.json";

Контекст = Новый Структура();

Аргументы = Новый Массив();
Аргументы.Добавить("p");
Аргументы.Добавить("--work-dir");
Аргументы.Добавить(ПутьКРезультатам);
Аргументы.Добавить(ПутьКНастройкам);

Контекст.Вставить("АргументыКоманднойСтроки", Новый ФиксированныйМассив(Аргументы));
Контекст.Вставить("ЭтоТест" , Истина);

ВремяЗапуска = ТекущаяДата();

Попытка
Сценарий = ЗагрузитьСценарий(ОбъединитьПути(ТекущийСценарий().Каталог, "..", "src", "yabr.os"), Контекст);
Исключение
ТекстОшибки = ОписаниеОшибки();
КонецПопытки;

Файл = Новый Файл(ОбъединитьПути(ПутьКРезультатам, ИмяВыходногоФайла));

Утверждения.ПроверитьИстину(Файл.Существует(),
СтрШаблон("Ошибка чтения отчета поверсиям хранилища. Файл результатов ""%1"" не найден.",
ОбъединитьПути(ПутьКРезультатам, ИмяВыходногоФайла)));

Утверждения.ПроверитьБольшеИлиРавно(Файл.ПолучитьВремяИзменения(),
ВремяЗапуска,
"Файл результатов не был изменен.");

КонецПроцедуры // ТестДолжен_ВыгрузитьИСохранитьОтчетПоВерсиямХранилища()

// Процедура - тест
//
Процедура ТестДолжен_ВыгрузитьИСохранитьОтчетПоПроизводительности() Экспорт

ПутьКНастройкам = ОбъединитьПути(ТекущийСценарий().Каталог,
"..",
"examples",
"perf");
ПутьКНастройкам = ОбъединитьПути(ПутьКНастройкам, "perf2jsonfile.json");

ПутьКРезультатам = ОбъединитьПути(ТекущийСценарий().Каталог, "..", "test-reports");

ИмяВыходногоФайла = "perf2jsonfile-result.json";

Контекст = Новый Структура();

Аргументы = Новый Массив();
Аргументы.Добавить("p");
Аргументы.Добавить("--work-dir");
Аргументы.Добавить(ПутьКРезультатам);
Аргументы.Добавить(ПутьКНастройкам);

Контекст.Вставить("АргументыКоманднойСтроки", Новый ФиксированныйМассив(Аргументы));
Контекст.Вставить("ЭтоТест" , Истина);

ВремяЗапуска = ТекущаяДата();

Попытка
Сценарий = ЗагрузитьСценарий(ОбъединитьПути(ТекущийСценарий().Каталог, "..", "src", "yabr.os"), Контекст);
Исключение
ТекстОшибки = ОписаниеОшибки();
КонецПопытки;

Файл = Новый Файл(ОбъединитьПути(ПутьКРезультатам, ИмяВыходногоФайла));

Утверждения.ПроверитьИстину(Файл.Существует(),
СтрШаблон("Ошибка чтения отчета по производительности. Файл результатов ""%1"" не найден.",
ОбъединитьПути(ПутьКРезультатам, ИмяВыходногоФайла)));

Утверждения.ПроверитьБольшеИлиРавно(Файл.ПолучитьВремяИзменения(),
ВремяЗапуска,
"Файл результатов не был изменен.");

КонецПроцедуры // ТестДолжен_ВыгрузитьИСохранитьОтчетПоПроизводительности()

0 comments on commit a7f3187

Please sign in to comment.