diff --git a/packagedef b/packagedef index 0dc463d..713757f 100644 --- a/packagedef +++ b/packagedef @@ -13,7 +13,7 @@ Константы_ЛокальнаяВерсия = ЗагрузитьСценарий(ПутьКСценариюКонстант); ВерсияПродукта = Константы_ЛокальнаяВерсия.ВерсияПродукта; Иначе - ВерсияПродукта = "1.4.1"; + ВерсияПродукта = "1.4.2"; КонецЕсли; Описание.Имя("opm") diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\321\215\321\210\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\273\320\265\320\275\320\275\321\213\321\205\320\237\320\260\320\272\320\265\321\202\320\276\320\262.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\321\215\321\210\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\273\320\265\320\275\320\275\321\213\321\205\320\237\320\260\320\272\320\265\321\202\320\276\320\262.os" index b816037..a745cd4 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\321\215\321\210\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\273\320\265\320\275\320\275\321\213\321\205\320\237\320\260\320\272\320\265\321\202\320\276\320\262.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\321\215\321\210\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\273\320\265\320\275\320\275\321\213\321\205\320\237\320\260\320\272\320\265\321\202\320\276\320\262.os" @@ -39,9 +39,20 @@ УстановленаКорректнаяВерсия = Истина; ИначеЕсли ОписаниеЗависимости.МинимальнаяВерсия = ВерсияSNAPSHOT И УстановленнаяВерсия <> ВерсияSNAPSHOT Тогда УстановленаКорректнаяВерсия = Ложь; - Иначе - УстановленаКорректнаяВерсия = ОписаниеЗависимости.МинимальнаяВерсия = Неопределено - ИЛИ Версии.СравнитьВерсии(УстановленнаяВерсия, ОписаниеЗависимости.МинимальнаяВерсия) >= 0; + Иначе + Если ОписаниеЗависимости.МинимальнаяВерсия = Неопределено Тогда + УстановленаКорректнаяВерсия = Истина; + Иначе + Попытка + // Сначала пытаемся использовать семвер + РезультатСравнения = Версии.СравнитьВерсии(УстановленнаяВерсия, ОписаниеЗависимости.МинимальнаяВерсия); + Исключение + // Если семвер не может обработать версию (например, 4-значную), используем модуль РаботаСВерсиями + РезультатСравнения = РаботаСВерсиями.СравнитьВерсии(УстановленнаяВерсия, ОписаниеЗависимости.МинимальнаяВерсия); + КонецПопытки; + + УстановленаКорректнаяВерсия = РезультатСравнения >= 0; + КонецЕсли; КонецЕсли; Лог.Отладка("Пакет установлен: " + ПакетУстановлен); @@ -160,8 +171,10 @@ Возврат ПутьКФайлуМетаданных; -КонецФункции - +КонецФункции + + + Процедура ПриСозданииОбъекта(КаталогПоискаБиблиотек = "") Лог = Логирование.ПолучитьЛог("oscript.app.opm"); diff --git "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\275\321\201\321\202\320\260\320\275\321\202\321\213Opm.os" "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\275\321\201\321\202\320\260\320\275\321\202\321\213Opm.os" index 3ea4e9e..376d787 100644 --- "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\275\321\201\321\202\320\260\320\275\321\202\321\213Opm.os" +++ "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\275\321\201\321\202\320\260\320\275\321\202\321\213Opm.os" @@ -24,5 +24,5 @@ ПутьВЗапасномХранилище = "/download/"; ЛокальныйКаталогУстановкиПакетов = "oscript_modules"; ИмяЛога = "oscript.app.opm"; -ВерсияПродукта = "1.4.1"; +ВерсияПродукта = "1.4.2"; ИмяФайлаНастроек = "opm.cfg"; diff --git a/tests/versions-test.os b/tests/versions-test.os index ffbae18..785b11f 100644 --- a/tests/versions-test.os +++ b/tests/versions-test.os @@ -16,6 +16,7 @@ СписокТестов.Добавить("ТестДолжен_ПроверитьЧтоВерсияАБольшеВерсииБ"); СписокТестов.Добавить("ТестДолжен_ПолучитьИмяИВерсиюПоИмениПакетаБезВерсии"); СписокТестов.Добавить("ТестДолжен_ПолучитьИмяИВерсиюПоИмениПакетаСВерсией"); + СписокТестов.Добавить("ТестДолжен_СравнитьЧетырехзначныеВерсии"); Возврат СписокТестов; @@ -89,3 +90,23 @@ Ожидаем.Что(Пакет.Версия).Равно("1.1.1"); КонецПроцедуры + +Процедура ТестДолжен_СравнитьЧетырехзначныеВерсии() Экспорт + + // Тестируем сравнение четырехзначных версий (не семвер) + ВерсияА = "1.2.3.4"; + ВерсияБ = "1.2.3.3"; + + // Проверяем что старый механизм может сравнивать 4-значные версии + РезультатСравнения = РаботаСВерсиями.СравнитьВерсии(ВерсияА, ВерсияБ); + Ожидаем.Что(РезультатСравнения).Больше(0); + + // Проверяем равенство + РезультатСравнения = РаботаСВерсиями.СравнитьВерсии(ВерсияА, ВерсияА); + Ожидаем.Что(РезультатСравнения).Равно(0); + + // Проверяем меньше + РезультатСравнения = РаботаСВерсиями.СравнитьВерсии(ВерсияБ, ВерсияА); + Ожидаем.Что(РезультатСравнения).Меньше(0); + +КонецПроцедуры