From 94379fc002386235c39dbd9382e12bc933dd8020 Mon Sep 17 00:00:00 2001 From: thedemoncat Date: Mon, 10 Feb 2020 19:34:42 +0600 Subject: [PATCH 1/5] =?UTF-8?q?=20-=20=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0?= =?UTF-8?q?=20=D1=81=D1=80=D0=B0=D0=B2=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/resources/NoValidSum.txt | 1 + tests/resources/ValidSum.txt | 1 + tests/resources/ValidSum2.txt | 1 + ...20\260\320\271\320\273\320\276\320\262.os" | 47 ++++++++++++++++++ .../\320\244\320\241.os" | 49 +++++++++++++++++++ 5 files changed, 99 insertions(+) create mode 100644 tests/resources/NoValidSum.txt create mode 100644 tests/resources/ValidSum.txt create mode 100644 tests/resources/ValidSum2.txt create mode 100644 "tests/\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262.os" diff --git a/tests/resources/NoValidSum.txt b/tests/resources/NoValidSum.txt new file mode 100644 index 0000000..9f3c1e1 --- /dev/null +++ b/tests/resources/NoValidSum.txt @@ -0,0 +1 @@ +1234567890_ \ No newline at end of file diff --git a/tests/resources/ValidSum.txt b/tests/resources/ValidSum.txt new file mode 100644 index 0000000..6a537b5 --- /dev/null +++ b/tests/resources/ValidSum.txt @@ -0,0 +1 @@ +1234567890 \ No newline at end of file diff --git a/tests/resources/ValidSum2.txt b/tests/resources/ValidSum2.txt new file mode 100644 index 0000000..6a537b5 --- /dev/null +++ b/tests/resources/ValidSum2.txt @@ -0,0 +1 @@ +1234567890 \ No newline at end of file diff --git "a/tests/\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262.os" "b/tests/\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262.os" new file mode 100644 index 0000000..2cdae97 --- /dev/null +++ "b/tests/\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262.os" @@ -0,0 +1,47 @@ +#Использовать asserts +#Использовать tempfiles + +#Использовать ".." + +Перем мМенеджерВременныхФайлов; + +Функция ПолучитьСписокТестов(Знач ЮнитТестирование) Экспорт + + МассивТестов = Новый Массив; + МассивТестов.Добавить("Тест_ПроверитьХешСумму"); + МассивТестов.Добавить("Тест_ФайлыРавны"); + МассивТестов.Добавить("Тест_ФайлыНеРавны"); + + Возврат МассивТестов; + +КонецФункции + +Процедура ПередЗапускомТеста() Экспорт +КонецПроцедуры + +Процедура ПослеЗапускаТеста() Экспорт +КонецПроцедуры + + +Процедура Тест_ПроверитьХешСумму() Экспорт + + ХешьСуммаSHA1 = "01b307acba4f54f55aafc33bb06bbbf6ca803e9a"; + + ПутьКФайлу = ОбъединитьПути(ТекущийКаталог(), "tests", "resources", "ValidSum.txt"); + Сообщить("ПутьКФайлу " + ПутьКФайлу); + ФС.ПолучитьСуммуФайлаSHA1(ПутьКФайлу); + Ожидаем.Что(ФС.ПолучитьСуммуФайлаSHA1(ПутьКФайлу)).Равно(ХешьСуммаSHA1); + +КонецПроцедуры + +Процедура Тест_ФайлыРавны() Экспорт + ПервыйФайл = ОбъединитьПути(ТекущийКаталог(), "tests", "resources", "ValidSum.txt"); + ВторойФайл = ОбъединитьПути(ТекущийКаталог(), "tests", "resources", "ValidSum2.txt"); + Ожидаем.Что(ФС.СравнитьФайлы(ПервыйФайл, ВторойФайл)).Равно(Истина); +КонецПроцедуры + +Процедура Тест_ФайлыНеРавны() Экспорт + ПервыйФайл = ОбъединитьПути(ТекущийКаталог(), "tests", "resources", "ValidSum.txt"); + ВторойФайл = ОбъединитьПути(ТекущийКаталог(), "tests", "resources", "NoValidSum.txt"); + Ожидаем.Что(ФС.СравнитьФайлы(ПервыйФайл, ВторойФайл)).Равно(Ложь); +КонецПроцедуры \ No newline at end of file diff --git "a/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\241.os" "b/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\241.os" index 6cc514f..848c3dd 100644 --- "a/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\241.os" +++ "b/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\241.os" @@ -6,6 +6,7 @@ // ///////////////////////////////////////////////////////////////////// +#Использовать 1commands // Проверяет существование файла или каталога // @@ -218,3 +219,51 @@ Возврат Шаблон; КонецФункции + + +// <Описание функции> +// +// Параметры: +// <Параметр1> - <Тип.Вид> - <описание параметра> +// <продолжение описания параметра> +// <Параметр2> - <Тип.Вид> - <описание параметра> +// <продолжение описания параметра> +// +// Возвращаемое значение: +// <Тип.Вид> - <описание возвращаемого значения> +// +Функция ПолучитьСуммуФайлаSHA1(ПутьКФайлу) Экспорт + + Если НЕ ФайлСуществует(ПутьКФайлу) Тогда + ВызватьИсключение "Выбран каталог или файла не существует"; + КонецЕсли; + + Команда = Новый Команда; + СистемнаяИнформация = Новый СистемнаяИнформация; + ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; + Если ЭтоWindows Тогда + Команда = СтрШаблон("certutil -hashfile %1", ПутьКФайлу); + Иначе + Команда.УстановитьКоманду("sha1sum"); + Команда.ДобавитьПараметр(ПутьКФайлу); + КонецЕсли; + + КодВозврата = Команда.Исполнить(); + Ответ = Команда.ПолучитьВывод(); + Возврат СтрРазделить(Ответ, " ")[0]; +КонецФункции + +// <Описание функции> +// +// Параметры: +// <Параметр1> - <Тип.Вид> - <описание параметра> +// <продолжение описания параметра> +// <Параметр2> - <Тип.Вид> - <описание параметра> +// <продолжение описания параметра> +// +// Возвращаемое значение: +// <Тип.Вид> - <описание возвращаемого значения> +// +Функция СравнитьФайлы(ПервыйФайПуть , ВторойФайлПуть) Экспорт + Возврат ПолучитьСуммуФайлаSHA1(ПервыйФайПуть) = ПолучитьСуммуФайлаSHA1(ВторойФайлПуть); +КонецФункции \ No newline at end of file From c098248de5ed8651ed7fb743cf17039d8d9ad7e1 Mon Sep 17 00:00:00 2001 From: thedemoncat Date: Mon, 10 Feb 2020 19:38:05 +0600 Subject: [PATCH 2/5] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packagedef | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packagedef b/packagedef index 172a616..fcc6b13 100644 --- a/packagedef +++ b/packagedef @@ -3,4 +3,5 @@ .Версия("1.0.0") .ВключитьФайл("Модули") .ВключитьФайл("LICENSE") - .ВключитьФайл("README.md"); + .ВключитьФайл("README.md") + .ЗависитОт("1commands", "1.5.0"); From 1685a5855098b9aa20714762d05c4ee21118d77b Mon Sep 17 00:00:00 2001 From: thedemoncat Date: Tue, 11 Feb 2020 08:25:55 +0300 Subject: [PATCH 3/5] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=83=20=D0=BD=D0=B0=20?= =?UTF-8?q?OS=20windows?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\260\320\271\320\273\320\276\320\262.os" | 2 -- .../\320\244\320\241.os" | 36 +++++++++---------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git "a/tests/\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262.os" "b/tests/\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262.os" index 2cdae97..2543e4e 100644 --- "a/tests/\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262.os" +++ "b/tests/\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262.os" @@ -28,8 +28,6 @@ ХешьСуммаSHA1 = "01b307acba4f54f55aafc33bb06bbbf6ca803e9a"; ПутьКФайлу = ОбъединитьПути(ТекущийКаталог(), "tests", "resources", "ValidSum.txt"); - Сообщить("ПутьКФайлу " + ПутьКФайлу); - ФС.ПолучитьСуммуФайлаSHA1(ПутьКФайлу); Ожидаем.Что(ФС.ПолучитьСуммуФайлаSHA1(ПутьКФайлу)).Равно(ХешьСуммаSHA1); КонецПроцедуры diff --git "a/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\241.os" "b/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\241.os" index 848c3dd..8046ec4 100644 --- "a/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\241.os" +++ "b/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\241.os" @@ -221,16 +221,13 @@ КонецФункции -// <Описание функции> +// Вычилсяет значение хеш-суммы (контрольной суммы) для указанного файлов по алгоритму SHA-1. // // Параметры: -// <Параметр1> - <Тип.Вид> - <описание параметра> -// <продолжение описания параметра> -// <Параметр2> - <Тип.Вид> - <описание параметра> -// <продолжение описания параметра> +// <ПутьКФайлу> - Строка - Путь к файлу, сумму котрого необходимо вычислить // // Возвращаемое значение: -// <Тип.Вид> - <описание возвращаемого значения> +// Строка - Контрольная сумма файла // Функция ПолучитьСуммуФайлаSHA1(ПутьКФайлу) Экспорт @@ -242,28 +239,31 @@ СистемнаяИнформация = Новый СистемнаяИнформация; ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; Если ЭтоWindows Тогда - Команда = СтрШаблон("certutil -hashfile %1", ПутьКФайлу); + Команда.УстановитьКоманду("certutil"); + Команда.ДобавитьПараметр("-hashfile"); + Команда.ДобавитьПараметр(ПутьКФайлу); + Команда.Исполнить(); + Ответ = Команда.ПолучитьВывод(); + Возврат СокрЛП(СтрПолучитьСтроку(СтрЗаменить(Ответ, " ", ""), 2)); Иначе Команда.УстановитьКоманду("sha1sum"); Команда.ДобавитьПараметр(ПутьКФайлу); + Команда.Исполнить(); + Возврат СтрРазделить(Команда.ПолучитьВывод(), " ")[0]; КонецЕсли; - КодВозврата = Команда.Исполнить(); - Ответ = Команда.ПолучитьВывод(); - Возврат СтрРазделить(Ответ, " ")[0]; КонецФункции -// <Описание функции> +// Сравнивает хеш-суммы 2-х переданных файлов // // Параметры: -// <Параметр1> - <Тип.Вид> - <описание параметра> -// <продолжение описания параметра> -// <Параметр2> - <Тип.Вид> - <описание параметра> -// <продолжение описания параметра> +// <ПервыйФайл> - Строка - Путь к первому файлу. +// +// <ПервыйФайл> - Строка - Путь ко второму файлу. // // Возвращаемое значение: -// <Тип.Вид> - <описание возвращаемого значения> +// Булево - Результат сравнения // -Функция СравнитьФайлы(ПервыйФайПуть , ВторойФайлПуть) Экспорт - Возврат ПолучитьСуммуФайлаSHA1(ПервыйФайПуть) = ПолучитьСуммуФайлаSHA1(ВторойФайлПуть); +Функция СравнитьФайлы(ПервыйФайл , ВторойФайл) Экспорт + Возврат ПолучитьСуммуФайлаSHA1(ПервыйФайл) = ПолучитьСуммуФайлаSHA1(ВторойФайл); КонецФункции \ No newline at end of file From bf6058ca5ce6118b7cad9c9b95612f2e232e18d6 Mon Sep 17 00:00:00 2001 From: thedemoncat Date: Tue, 11 Feb 2020 08:40:18 +0300 Subject: [PATCH 4/5] =?UTF-8?q?=D0=9E=D0=BF=D0=B5=D1=87=D0=B0=D1=82=D0=BA?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\320\244\320\241.os" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\241.os" "b/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\241.os" index 8046ec4..ac2328a 100644 --- "a/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\241.os" +++ "b/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\241.os" @@ -221,7 +221,7 @@ КонецФункции -// Вычилсяет значение хеш-суммы (контрольной суммы) для указанного файлов по алгоритму SHA-1. +// Вычиcлсяет значение хеш-суммы (контрольной суммы) для указанного файлов по алгоритму SHA-1. // // Параметры: // <ПутьКФайлу> - Строка - Путь к файлу, сумму котрого необходимо вычислить From f1d63bbb9f2be98f1ddfbaf719ee6a9d854f7853 Mon Sep 17 00:00:00 2001 From: thedemoncat Date: Tue, 11 Feb 2020 08:42:20 +0300 Subject: [PATCH 5/5] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=D1=81=D1=8B=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20GIT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\320\265\320\244\320\260\320\271\320\273\320\276\320\262.os" | 2 +- .../\320\244\320\241.os" | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git "a/tests/\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262.os" "b/tests/\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262.os" index 2543e4e..7a8a8e6 100644 --- "a/tests/\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262.os" +++ "b/tests/\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262.os" @@ -42,4 +42,4 @@ ПервыйФайл = ОбъединитьПути(ТекущийКаталог(), "tests", "resources", "ValidSum.txt"); ВторойФайл = ОбъединитьПути(ТекущийКаталог(), "tests", "resources", "NoValidSum.txt"); Ожидаем.Что(ФС.СравнитьФайлы(ПервыйФайл, ВторойФайл)).Равно(Ложь); -КонецПроцедуры \ No newline at end of file +КонецПроцедуры diff --git "a/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\241.os" "b/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\241.os" index ac2328a..c85624b 100644 --- "a/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\241.os" +++ "b/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\241.os" @@ -266,4 +266,4 @@ // Функция СравнитьФайлы(ПервыйФайл , ВторойФайл) Экспорт Возврат ПолучитьСуммуФайлаSHA1(ПервыйФайл) = ПолучитьСуммуФайлаSHA1(ВторойФайл); -КонецФункции \ No newline at end of file +КонецФункции