Skip to content

Commit be52b13

Browse files
authored
Merge pull request #84 from oscript-library/feature/feature-for-ci-79
Исправление различных багов и проблем гитсинка
2 parents cf7d366 + c35ff88 commit be52b13

File tree

9 files changed

+153
-32
lines changed

9 files changed

+153
-32
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,8 @@
11

22
tests\.xml
3+
4+
exec\.log
5+
6+
bdd-log\.xml
7+
8+
*.ospx

.vscode/tasks.json

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
{
2-
"version": "0.1.0",
2+
"version": "2.0.0",
3+
"_runner": "terminal",
34
"windows": {
45
"command": "cmd",
5-
"args": ["/c", "chcp 65001 >nul &"]
6+
"args": ["/c", "chcp 65001 ;"]
67
},
78
"linux": {
89
"command": "sh",
@@ -11,6 +12,28 @@
1112
"isShellCommand": true,
1213
"showOutput": "silent",
1314
"tasks": [
15+
{
16+
"taskName": "Testing project (opm test)",
17+
"args": [
18+
// "oscript",
19+
// "src/opm.os",
20+
"opm",
21+
"test"
22+
],
23+
// "echoCommand": true,
24+
// "showOutput": "always",
25+
"suppressTaskName": true,
26+
// "isTestCommand": false,
27+
"problemMatcher": {
28+
"fileLocation": "absolute",
29+
"pattern": {
30+
"regexp": "{Модуль\\s+(.+)\\s\\/\\s.*:\\s+(\\d+)\\s+\\/\\s+([^{]*)",
31+
"file": 1,
32+
"location": 2,
33+
"message": 3
34+
}
35+
}
36+
},
1437
{
1538
"taskName": "Testing project",
1639
"args": [

features/ПростыеКоманды.feature

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,24 @@
1414
Сценарий: Получение версии продукта
1515
Когда Я выполняю команду "oscript" c параметрами "src/gitsync.os version"
1616
Тогда Я сообщаю вывод команды "oscript"
17-
И Вывод команды "oscript" содержит "2.1.1"
17+
Тогда я вижу в консоли строку подобно "(\d+\.){2}\d+"
1818
И Вывод команды "oscript" не содержит "GitSync v"
1919
И Код возврата команды "oscript" равен 0
2020

2121
Сценарий: Получение помощи продукта
2222
Когда Я выполняю команду "oscript" c параметрами "src/gitsync.os help"
23+
Тогда я вижу в консоли строку подобно "GitSync\s+v(\d+\.){2}\d+"
2324
Тогда Вывод команды "oscript" содержит
2425
"""
25-
GitSync v2.1.1
2626
Возможные команды:
2727
"""
2828
И Код возврата команды "oscript" равен 0
2929

3030
Сценарий: Вызов исполняемого файла без параметров
3131
Когда Я выполняю команду "oscript" c параметрами "src/gitsync.os"
32+
Тогда я вижу в консоли строку подобно "GitSync\s+v(\d+\.){2}\d+"
3233
Тогда Вывод команды "oscript" содержит
3334
"""
34-
GitSync v2.1.1
3535
ОШИБКА - Некорректные аргументы командной строки
3636
Возможные команды:
3737
"""

src/core/Классы/КомандаSync.os

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@
5252
Парсер.ДобавитьПараметрФлаг ("-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl");
5353
Парсер.ДобавитьПараметрФлаг ("-check-authors", "Проверка файла AUTHORS, на наличие всех авторов коммитов ");
5454

55-
Парсер.ДобавитьПараметрФлагКоманды("-stop-if-empty-comment", "Остановить, если Комментарий к версии пустой");
56-
Парсер.ДобавитьПараметрФлагКоманды("-auto-set-tags", "Автоматическая установка тэгов по версия конфиграции");
55+
Парсер.ДобавитьПараметрФлаг("-stop-if-empty-comment", "Остановить, если Комментарий к версии пустой");
56+
Парсер.ДобавитьПараметрФлаг("-auto-set-tags", "Автоматическая установка тэгов по версия конфиграции");
5757

5858
КонецПроцедуры // ЗарегистрироватьКоманду
5959

src/core/Классы/МенеджерСинхронизации.os

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
Перем УдалятьВременныеФайлы;
2424
Перем КоличествоЦикловОжиданияЛицензииПоУмолчанию;
2525

26+
Перем РабочийКаталогСохр;
27+
Перем ГитРепозиторийСохр;
28+
2629
///////////////////////////////////////////////////////////////////////////////////////////////
2730
// ПРОГРАММНЫЙ ИНТЕРФЕЙС
2831

@@ -438,14 +441,22 @@
438441
/////////////////////////////////////
439442
// GIT Пересмотр
440443

441-
// <Описание процедуры>
442-
//
443444
Функция ПолучитьГитРепозиторий(Знач КаталогРабочейКопии)
444445

445-
ГитРепозиторий = Новый ГитРепозиторий;
446-
ГитРепозиторий.УстановитьРабочийКаталог(КаталогРабочейКопии);
447-
ГитРепозиторий.УстановитьНастройку("core.quotepath","false",РежимУстановкиНастроекGit.Локально);
448-
ГитРепозиторий.УстановитьНастройку("merge.ours.driver","true",РежимУстановкиНастроекGit.Локально);
446+
ФайлКаталога = Новый Файл(ОбъединитьПути(ТекущийКаталог(), КаталогРабочейКопии));
447+
Если ФайлКаталога.ПолноеИмя = РабочийКаталогСохр Тогда
448+
ГитРепозиторий = ГитРепозиторийСохр;
449+
Иначе
450+
ГитРепозиторий = Новый ГитРепозиторий;
451+
ГитРепозиторий.УстановитьРабочийКаталог(КаталогРабочейКопии);
452+
ГитРепозиторий.УстановитьНастройку("core.quotepath", "false", РежимУстановкиНастроекGit.Локально);
453+
ГитРепозиторий.УстановитьНастройку("merge.ours.driver", "true", РежимУстановкиНастроекGit.Локально);
454+
455+
РабочийКаталогСохр = ФайлКаталога.ПолноеИмя;
456+
ГитРепозиторийСохр = ГитРепозиторий;
457+
458+
КонецЕсли;
459+
449460
Возврат ГитРепозиторий;
450461

451462
КонецФункции // ПолучитьГитРепозиторий()
@@ -1311,7 +1322,13 @@
13111322
///////////////////////////////////////////////////////////////////////////////////////////////
13121323
// Вспомогательные функции
13131324

1314-
Процедура УдалитьВременныеФайлыПриНеобходимости(Знач ПутьКФайлу = "")
1325+
// Удаляет временные файлы при необходимости
1326+
// Если передана пустая строка, то удаляются все зарегистрированные временные файлы
1327+
//
1328+
// Параметры:
1329+
// ПутьКФайлу - Строка - полный путь файла или пустая строка
1330+
//
1331+
Процедура УдалитьВременныеФайлыПриНеобходимости(Знач ПутьКФайлу = "") Экспорт
13151332

13161333
Если УдалятьВременныеФайлы Тогда
13171334
Возврат;

tasks/test.os

Lines changed: 82 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,82 @@
1-
#Использовать 1testrunner
2-
3-
Тестер = Новый Тестер;
4-
5-
ПутьКТестам = ОбъединитьПути(ТекущийСценарий().Каталог, "..", "tests");
6-
ПутьКОтчетуJUnit = ОбъединитьПути(ТекущийСценарий().Каталог, "..");
7-
8-
РезультатТестирования = Тестер.ТестироватьКаталог(
9-
Новый Файл(ПутьКТестам),
10-
Новый Файл(ПутьКОтчетуJUnit)
11-
);
12-
13-
Если РезультатТестирования <> 0 Тогда
14-
ВызватьИсключение РезультатТестирования;
15-
КонецЕсли;
1+
// #Использовать "../src"
2+
#Использовать 1bdd
3+
#Использовать 1testrunner
4+
5+
Функция ПрогнатьТесты()
6+
7+
Тестер = Новый Тестер;
8+
9+
ПутьКТестам = ОбъединитьПути(ТекущийСценарий().Каталог, "..", "tests");
10+
ПутьКОтчетуJUnit = ОбъединитьПути(ТекущийСценарий().Каталог, "..");
11+
12+
КаталогТестов = Новый Файл(ПутьКТестам);
13+
Если Не КаталогТестов.Существует() Тогда
14+
Сообщить(СтрШаблон("Не найден каталог тестов %1", ПутьКТестам));
15+
Возврат Истина;
16+
КонецЕсли;
17+
18+
РезультатТестирования = Тестер.ТестироватьКаталог(
19+
КаталогТестов,
20+
Новый Файл(ПутьКОтчетуJUnit)
21+
);
22+
23+
Успешно = РезультатТестирования = 0;
24+
25+
Возврат Успешно;
26+
КонецФункции // ПрогнатьТесты()
27+
28+
Функция ПрогнатьФичи()
29+
30+
ПутьОтчетаJUnit = "./bdd-log.xml";
31+
32+
КаталогФич = ОбъединитьПути(".", "features");
33+
34+
Файл_КаталогФич = Новый Файл(КаталогФич);
35+
Если Не Файл_КаталогФич.Существует() Тогда
36+
Сообщить(СтрШаблон("Не найден каталог фич %1", КаталогФич));
37+
Возврат Истина;
38+
КонецЕсли;
39+
40+
ИсполнительБДД = Новый ИсполнительБДД;
41+
РезультатыВыполнения = ИсполнительБДД.ВыполнитьФичу(Файл_КаталогФич, Файл_КаталогФич);
42+
ИтоговыйРезультатВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);
43+
44+
СтатусВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().НеВыполнялся;
45+
Если РезультатыВыполнения.Строки.Количество() > 0 Тогда
46+
47+
СтатусВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);
48+
49+
КонецЕсли;
50+
51+
ГенераторОтчетаJUnit = Новый ГенераторОтчетаJUnit;
52+
ГенераторОтчетаJUnit.Сформировать(РезультатыВыполнения, СтатусВыполнения, ПутьОтчетаJUnit);
53+
54+
Сообщить(СтрШаблон("Результат прогона фич <%1>
55+
|", ИтоговыйРезультатВыполнения));
56+
57+
Возврат ИтоговыйРезультатВыполнения <> ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался;
58+
КонецФункции // ПрогнатьФичи()
59+
60+
Попытка
61+
ТестыПрошли = ПрогнатьТесты();
62+
63+
Исключение
64+
ТестыПрошли = Ложь;
65+
Сообщить(СтрШаблон("Тесты через 1testrunner выполнены неудачно
66+
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
67+
КонецПопытки;
68+
69+
Попытка
70+
ФичиПрошли = ПрогнатьФичи();
71+
Исключение
72+
ФичиПрошли = Ложь;
73+
Сообщить(СтрШаблон("Тесты поведения через 1bdd выполнены неудачно
74+
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
75+
КонецПопытки;
76+
77+
Если Не ТестыПрошли Или Не ФичиПрошли Тогда
78+
ВызватьИсключение "Тестирование завершилось неудачно!";
79+
Иначе
80+
Сообщить(СтрШаблон("Результат прогона тестов <%1>
81+
|", ТестыПрошли));
82+
КонецЕсли;

tests/git-sync-test.os

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,10 @@
371371
КоличествоКоммитов = КоличествоКоммитов + 1;
372372
КонецЦикла;
373373
ЛогГит.Закрыть();
374+
375+
Распаковщик.УдалитьВременныеФайлыПриНеобходимости(ИмяФайлаЛогаГит);
376+
Распаковщик.УдалитьВременныеФайлыПриНеобходимости(Батник.Закрыть());
377+
374378
Утверждения.ПроверитьРавенство(КоличествоКоммитов, 8, "Количество коммитов в git-хранилище");
375379

376380
КонецПроцедуры
@@ -475,9 +479,6 @@
475479
ФайлЛога = ВременныеФайлы.СоздатьФайл("log");
476480
Батник = Новый КомандныйФайл();
477481
Батник.Создать();
478-
Если ЭтоWindows Тогда
479-
Батник.ДобавитьКоманду("chcp 1251 > nul");
480-
КонецЕсли;
481482
Батник.ДобавитьКоманду(СтрШаблон("cd %1 ""%2""",?(ЭтоWindows, "/d", ""), ЛокальныйКаталог));
482483

483484
ПараметрыКоманды = Новый Массив;
@@ -498,6 +499,9 @@
498499
РезультатКлонирования = Батник.Исполнить();
499500
// вывод всех сообщений от Git
500501
Лог.Информация(Батник.ПолучитьВывод());
502+
503+
Распаковщик.УдалитьВременныеФайлыПриНеобходимости(Батник.Закрыть());
504+
501505
Утверждения.ПроверитьРавенство(РезультатКлонирования, 0, "git clone должен отработать успешно");
502506

503507
Ответ = Новый Структура;

tests/test-export_with_min_max_versions.os

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,10 @@
103103
КоличествоКоммитов = КоличествоКоммитов + 1;
104104
КонецЦикла;
105105
ЛогГит.Закрыть();
106+
107+
Распаковщик.УдалитьВременныеФайлыПриНеобходимости(ИмяФайлаЛогаГит);
108+
Распаковщик.УдалитьВременныеФайлыПриНеобходимости(Батник.Закрыть());
109+
106110
Возврат КоличествоКоммитов;
107111

108112
КонецФункции

0 commit comments

Comments
 (0)