1
0
mirror of https://github.com/bia-technologies/precommit4onec.git synced 2025-05-15 22:06:29 +02:00

ORAIS-1536: Исключить из проверки модули без исходных кодов.

This commit is contained in:
Зазулов Алексей Александрович (ЗК-0001393) 2024-07-31 12:49:42 +03:00 committed by Максимов Валерий Валерьевич (000044217)
parent 1b745d0eca
commit f65039d65f
5 changed files with 55 additions and 10 deletions

View File

@ -16,7 +16,23 @@
// //
Функция ЭтоФайлИсходников(Файл) Экспорт Функция ЭтоФайлИсходников(Файл) Экспорт
Возврат СтрСравнить(Файл.Расширение, ".bsl") = 0 Или СтрСравнить(Файл.Расширение, ".os") = 0; Если СтрСравнить(Файл.Расширение, ".bsl") = 0 Тогда
МаркерЗащищенногоМодуля = СтрРазделить("255 255 255 127", " ");
Буфер = ФайловыеОперации.ПрочитатьДвоичныеДанные(Файл.ПолноеИмя, МаркерЗащищенногоМодуля.Количество());
Сч = 0;
Для Каждого Байт ИЗ Буфер Цикл
Если МаркерЗащищенногоМодуля[Сч] <> Строка(Байт) Тогда
Возврат Истина;
КонецЕсли;
Сч = Сч + 1;
КонецЦикла;
Возврат Ложь;
Иначе
Возврат СтрСравнить(Файл.Расширение, ".os") = 0;
КонецЕсли;
КонецФункции КонецФункции
@ -267,11 +283,11 @@
Возврат СтрСравнить(Файл.Имя, "RecordSetModule.bsl") = 0; Возврат СтрСравнить(Файл.Имя, "RecordSetModule.bsl") = 0;
КонецФункции КонецФункции
// По косвенным признакам опрделеяет принадлежность анализируемого файла к заимствованному в расширение // По косвенным признакам определеяет принадлежность анализируемого файла к заимствованному в расширение
Функция ЭтоФайлЗаимствованногоОбъектаРасширения(Файл) Экспорт Функция ЭтоФайлЗаимствованногоОбъектаРасширения(Файл) Экспорт
Результат = Ложь; Результат = Ложь;
Если НЕ (Файл.Существует() И Файл.ЭтоФайл())Тогда Если НЕ (Файл.Существует() И Файл.ЭтоФайл()) Тогда
Возврат Результат; Возврат Результат;
КонецЕсли; КонецЕсли;

View File

@ -88,11 +88,8 @@
Возврат Кодировка; Возврат Кодировка;
КонецЕсли; КонецЕсли;
МаркерUTFBOM = СтрРазделить("239 187 191", " "); МаркерUTFBOM = СтрРазделить("239 187 191", " ");
ЧтениеДанных = Новый ЧтениеДанных(ПутьКФайлу); Буфер = ПрочитатьДвоичныеДанные(ПутьКФайлу, МаркерUTFBOM.Количество());
Буфер = Новый БуферДвоичныхДанных(МаркерUTFBOM.Количество());
ЧтениеДанных.ПрочитатьВБуферДвоичныхДанных(Буфер, , МаркерUTFBOM.Количество());
ЧтениеДанных.Закрыть();
Сч = 0; Сч = 0;
Для Каждого Байт ИЗ Буфер Цикл Для Каждого Байт ИЗ Буфер Цикл
@ -109,6 +106,24 @@
КонецФункции // ОпределитьКодировку КонецФункции // ОпределитьКодировку
// Читает двоичные данные файла и возвращает их в объекте БуферДвоичныхДанных.
//
// Параметры:
// ПутьКФайлу - Строка - Полный путь к файлу;
// Размер - Число - Количество байт, которое нужно прочитать из файла.
//
// Возвращаемое значение:
// БуферДвоичныхДанных - прочитанные данные файла
//
Функция ПрочитатьДвоичныеДанные(ПутьКФайлу, Размер) Экспорт
ЧтениеДанных = Новый ЧтениеДанных(ПутьКФайлу);
Буфер = Новый БуферДвоичныхДанных(Размер);
ЧтениеДанных.ПрочитатьВБуферДвоичныхДанных(Буфер, , Размер);
ЧтениеДанных.Закрыть();
Возврат Буфер;
КонецФункции
// Возвращает путь файла относительно корневого каталога // Возвращает путь файла относительно корневого каталога
// //
// Параметры: // Параметры:

View File

@ -56,7 +56,7 @@
Текст = Новый ЗаписьТекста(); Текст = Новый ЗаписьТекста();
Текст.Открыть(ПутьКФайлуМодуля, КодировкаТекста.UTF8NoBOM); Текст.Открыть(ПутьКФайлуМодуля, КодировкаТекста.UTF8NoBOM);
ТекстМодуля = Текст.ЗаписатьСтроку("HelloWorld", Символы.ПС); Текст.ЗаписатьСтроку("HelloWorld", Символы.ПС);
Текст.Закрыть(); Текст.Закрыть();
КонецПроцедуры КонецПроцедуры

View File

@ -0,0 +1 @@
���  

View File

@ -23,6 +23,7 @@
ВсеТесты.Добавить("СортировкаСостава_ExchangePlans"); ВсеТесты.Добавить("СортировкаСостава_ExchangePlans");
ВсеТесты.Добавить("СортировкаСостава_FunctionalOptions"); ВсеТесты.Добавить("СортировкаСостава_FunctionalOptions");
ВсеТесты.Добавить("СортировкаСостава_Subsystems"); ВсеТесты.Добавить("СортировкаСостава_Subsystems");
ВсеТесты.Добавить("ТипыФайлов_ЗащищенныеМодулиНеОпределяютсяКакФайлИсходников");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСинхронизацияОбъектовМетаданныхВызываетИсключениеEDT"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСинхронизацияОбъектовМетаданныхВызываетИсключениеEDT");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурВызываетИсключение"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурВызываетИсключение");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурОбработаетФайл"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурОбработаетФайл");
@ -143,6 +144,18 @@
#КонецОбласти #КонецОбласти
#Область ТипыФайлов
Процедура ТипыФайлов_ЗащищенныеМодулиНеОпределяютсяКакФайлИсходников() Экспорт
ПутьКФайлу = ОбъединитьПути(КаталогИсходников(), "tests\fixtures\ЗащищенныеФайлы", "Module.bsl");
Файл = Новый Файл(ПутьКФайлу);
Результат = ТипыФайлов.ЭтоФайлИсходников(Файл);
Ожидаем.Что(Результат, "Защищенный модуль не должен определяться как файл исходников").ЭтоЛожь();
КонецПроцедуры
#КонецОбласти
#Область ИсправлениеНеКаноническогоНаписания #Область ИсправлениеНеКаноническогоНаписания
Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетФайл() Экспорт Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетФайл() Экспорт