From 1d81b3fcc35a366eed827538fd0a3857fc415345 Mon Sep 17 00:00:00 2001 From: Nikita Ivanchenko Date: Mon, 6 Mar 2023 10:04:33 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=B4=D1=80=D0=B0=D1=84=D1=82=20=D0=B8?= =?UTF-8?q?=D1=81=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D0=BF=D0=B0=D0=B4=D0=B5=D0=BD=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=B8=D0=BD=D0=B8=D1=86=D0=B8=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\264\320\265\320\273\320\272\320\260.os" | 3 ++- ...20\276\321\201\321\202\321\214\321\216.os" | 5 +++++ ...20\276\321\201\321\202\321\214\321\216.os" | 5 +++++ ...20\264\320\265\320\273\320\272\320\260.os" | 20 +++++++++++++++++++ 4 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 "tests/\320\236\321\210\320\270\320\261\320\276\321\207\320\275\321\213\320\265\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\321\202\320\276\321\200\320\276\320\271\320\226\320\265\320\273\321\203\320\264\321\214\320\241\320\246\320\270\320\272\320\273\320\270\321\207\320\275\321\213\320\271\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\321\214\321\216.os" create mode 100644 "tests/\320\236\321\210\320\270\320\261\320\276\321\207\320\275\321\213\320\265\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\265\321\200\320\262\321\213\320\271\320\226\320\265\320\273\321\203\320\264\321\214\320\241\320\246\320\270\320\272\320\273\320\270\321\207\320\275\321\213\320\271\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\321\214\321\216.os" diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" index bb74775..5f4c771 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" @@ -293,7 +293,7 @@ Если Желудь = Неопределено Тогда Попытка Семафор = Семафоры.Получить(Имя); - Семафор.Захватить(); + Семафор.Захватить(50); Желудь = ИнициализированныеЖелудиОдиночки.Получить(Имя); Если Желудь = Неопределено Тогда @@ -306,6 +306,7 @@ Лог.Ошибка("Не удалось инициализировать желудь %1", Имя); Лог.Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); Семафор.Освободить(); + ВызватьИсключение "111 11"; КонецПопытки; КонецЕсли; diff --git "a/tests/\320\236\321\210\320\270\320\261\320\276\321\207\320\275\321\213\320\265\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\321\202\320\276\321\200\320\276\320\271\320\226\320\265\320\273\321\203\320\264\321\214\320\241\320\246\320\270\320\272\320\273\320\270\321\207\320\275\321\213\320\271\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\321\214\321\216.os" "b/tests/\320\236\321\210\320\270\320\261\320\276\321\207\320\275\321\213\320\265\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\321\202\320\276\321\200\320\276\320\271\320\226\320\265\320\273\321\203\320\264\321\214\320\241\320\246\320\270\320\272\320\273\320\270\321\207\320\275\321\213\320\271\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\321\214\321\216.os" new file mode 100644 index 0000000..9ec03b9 --- /dev/null +++ "b/tests/\320\236\321\210\320\270\320\261\320\276\321\207\320\275\321\213\320\265\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\321\202\320\276\321\200\320\276\320\271\320\226\320\265\320\273\321\203\320\264\321\214\320\241\320\246\320\270\320\272\320\273\320\270\321\207\320\275\321\213\320\271\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\321\214\321\216.os" @@ -0,0 +1,5 @@ +&Пластилин Перем ПервыйЖелудьСЦикличныйЗависимостью; + +&Желудь +Процедура ПриСозданииОбъекта() +КонецПроцедуры \ No newline at end of file diff --git "a/tests/\320\236\321\210\320\270\320\261\320\276\321\207\320\275\321\213\320\265\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\265\321\200\320\262\321\213\320\271\320\226\320\265\320\273\321\203\320\264\321\214\320\241\320\246\320\270\320\272\320\273\320\270\321\207\320\275\321\213\320\271\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\321\214\321\216.os" "b/tests/\320\236\321\210\320\270\320\261\320\276\321\207\320\275\321\213\320\265\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\265\321\200\320\262\321\213\320\271\320\226\320\265\320\273\321\203\320\264\321\214\320\241\320\246\320\270\320\272\320\273\320\270\321\207\320\275\321\213\320\271\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\321\214\321\216.os" new file mode 100644 index 0000000..59b5a5d --- /dev/null +++ "b/tests/\320\236\321\210\320\270\320\261\320\276\321\207\320\275\321\213\320\265\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\265\321\200\320\262\321\213\320\271\320\226\320\265\320\273\321\203\320\264\321\214\320\241\320\246\320\270\320\272\320\273\320\270\321\207\320\275\321\213\320\271\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\321\214\321\216.os" @@ -0,0 +1,5 @@ +&Пластилин Перем ВторойЖелудьСЦикличныйЗависимостью; + +&Желудь +Процедура ПриСозданииОбъекта() +КонецПроцедуры \ No newline at end of file diff --git "a/tests/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" "b/tests/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" index 79894b3..96ee3ec 100644 --- "a/tests/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" +++ "b/tests/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" @@ -993,3 +993,23 @@ КонецПроцедуры + +&Тест +Процедура ПроверкаИсключенияНаЦикличномВнедрении() Экспорт + // Дано + Поделка = Новый Поделка(); + Поделка.ДобавитьЖелудь(Тип("ПервыйЖелудьСЦикличныйЗависимостью")); + Поделка.ДобавитьЖелудь(Тип("ВторойЖелудьСЦикличныйЗависимостью")); + Поделка.ЗапуститьПриложение(); + // Когда + + Параметры = Новый Массив(); + Параметры.Добавить("ПервыйЖелудьСЦикличныйЗависимостью"); + Желудь = Поделка.НайтиЖелудь("ПервыйЖелудьСЦикличныйЗависимостью"); + + // Тогда + Ожидаем.Что(Желудь).Равно(Неопределено); + +КонецПроцедуры + +ПроверкаИсключенияНаЦикличномВнедрении(); \ No newline at end of file From 3826613b1a6ffaf485bea6c4c3753586d56faa46 Mon Sep 17 00:00:00 2001 From: Nikita Ivanchenko Date: Mon, 6 Mar 2023 16:08:03 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=BD=D0=BE=D1=80=D0=BC=D0=B0=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D1=8B=D0=B9=20=D0=B5=D0=BA=D1=81=D0=B5=D0=BF=D1=88=D0=BD?= =?UTF-8?q?=20=D0=B8=20=D1=82=D0=B5=D1=81=D1=82=20=D0=BD=D0=B0=20=D1=86?= =?UTF-8?q?=D0=B8=D0=BA=D0=BB=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B8=D0=B5=20?= =?UTF-8?q?=D1=81=D1=81=D1=8B=D0=BB=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...320\264\320\265\320\273\320\272\320\260.os" | 18 ++++++++++++++---- ...320\264\320\265\320\273\320\272\320\260.os" | 9 +++------ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" index 5f4c771..c008e18 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" @@ -293,7 +293,7 @@ Если Желудь = Неопределено Тогда Попытка Семафор = Семафоры.Получить(Имя); - Семафор.Захватить(50); + ЗахватитьСемафор(Семафор); Желудь = ИнициализированныеЖелудиОдиночки.Получить(Имя); Если Желудь = Неопределено Тогда @@ -303,10 +303,12 @@ Семафор.Освободить(); Исключение - Лог.Ошибка("Не удалось инициализировать желудь %1", Имя); - Лог.Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ТекстСообщения = СтрШаблон("Не удалось инициализировать желудь %1", Имя); + ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Лог.Ошибка(ТекстСообщения); + Лог.Ошибка(ТекстОшибки); Семафор.Освободить(); - ВызватьИсключение "111 11"; + ВызватьИсключение СтрШаблон("%1; %2", ТекстСообщения, ТекстОшибки); КонецПопытки; КонецЕсли; @@ -314,6 +316,14 @@ КонецФункции +Процедура ЗахватитьСемафор(Семафор) + Попытка + Семафор.Захватить(50); + Исключение + ВызватьИсключение "Циклическое внедрение пластилина"; + КонецПопытки; +КонецПроцедуры + Процедура ПроверитьСостояниеИнициализация() Если НЕ СостояниеПриложения = СостоянияПриложения.Инициализация() Тогда diff --git "a/tests/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" "b/tests/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" index 96ee3ec..993263b 100644 --- "a/tests/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" +++ "b/tests/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" @@ -1001,15 +1001,12 @@ Поделка.ДобавитьЖелудь(Тип("ПервыйЖелудьСЦикличныйЗависимостью")); Поделка.ДобавитьЖелудь(Тип("ВторойЖелудьСЦикличныйЗависимостью")); Поделка.ЗапуститьПриложение(); - // Когда + // Когда Параметры = Новый Массив(); Параметры.Добавить("ПервыйЖелудьСЦикличныйЗависимостью"); - Желудь = Поделка.НайтиЖелудь("ПервыйЖелудьСЦикличныйЗависимостью"); // Тогда - Ожидаем.Что(Желудь).Равно(Неопределено); - -КонецПроцедуры + Ожидаем.Что(Поделка).Метод("НайтиЖелудь", Параметры).ВыбрасываетИсключение("Циклическое внедрение пластилина"); -ПроверкаИсключенияНаЦикличномВнедрении(); \ No newline at end of file +КонецПроцедуры \ No newline at end of file