fix(db-load-xml, db-update, db-load-git): предупреждение о тихом отказе — только при успехе платформы

Блок «[warning] platform reported success, but the log contains N problem(s)»
печатался при любом коде выхода. При провале (code ≠ 0) он стоял под
«Error … (code: N)» и называл провал успехом, а его строки повторяли лог,
который уже выведен целиком.

Блок задуман для случая, когда платформа сообщает об успехе, но в логе отказ, —
теперь он печатается только при code 0. При провале остаются строка ошибки и лог.
Список отказов в выжимке — только тихие отказы, а не все ошибки загрузки, поэтому
при провале он был бы ещё и неполным. -StrictLog не изменился.

Кейсы failed-load-no-success-warning (фейковая платформа, код 1, строка-отказ
в логе) — по одному на навык; на прежних скриптах падают. Все порты:
db-load-xml v1.33, db-update v1.23, db-load-git v1.31.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-09-27 17:31:51 +03:00
co-authored by Claude Opus 5.5
parent 38c32fb903
commit bdf7902e6a
9 changed files with 154 additions and 18 deletions
@@ -0,0 +1,76 @@
{
"name": "Провал загрузки (код 1) со строкой-отказом в логе: лог выведен, блока «reported success» нет (fake platform)",
"fakePlatform": {
"log": "Загрузка конфигурации из файлов.\r\nНеверное свойство объекта метаданных. Свойство LineNumberLength не входит в состав объекта метаданных TabularSection. - LineNumberLength\r\n",
"exit": 1
},
"preRun": [
{
"writeFile": {
"path": "src/Configuration.xml",
"content": "<MetaDataObject>\n\t<Configuration>\n\t\t<ChildObjects>\n\t\t\t<Catalog>Товары</Catalog>\n\t\t</ChildObjects>\n\t</Configuration>\n</MetaDataObject>\n"
}
},
{
"writeFile": {
"path": "src/Catalogs/Товары.xml",
"content": "<MetaDataObject>\n\t<Catalog>\n\t\t<ChildObjects/>\n\t</Catalog>\n</MetaDataObject>\n"
}
},
{
"git": [
"-C",
"src",
"init",
"-q"
]
},
{
"git": [
"-C",
"src",
"add",
"-A"
]
},
{
"git": [
"-C",
"src",
"commit",
"-qm",
"base"
]
},
{
"writeFile": {
"path": "src/Catalogs/Товары.xml",
"content": "<MetaDataObject>\n\t<Catalog>\n\t\t<ChildObjects/>\n\t</Catalog>\n</MetaDataObject>\n<!-- изменение -->\n"
}
},
{
"git": [
"-C",
"src",
"add",
"-A"
]
}
],
"args_extra": [
"-V8Path",
"{fakePlatform}",
"-InfoBasePath",
"{workDir}/ib",
"-ConfigDir",
"{workDir}/src",
"-Source",
"Staged"
],
"expectError": true,
"expect": {
"stdoutContains": "Свойство LineNumberLength не входит в состав объекта метаданных",
"stdoutNotContains": "reported success"
},
"noSnapshot": "навык ничего не пишет в рабочий каталог — проверяется вывод при провале платформы"
}
@@ -0,0 +1,29 @@
{
"name": "Провал загрузки (код 1) со строкой-отказом в логе: лог выведен, блока «reported success» нет (fake platform)",
"fakePlatform": {
"log": "Загрузка конфигурации из файлов.\r\nНеверное свойство объекта метаданных. Свойство LineNumberLength не входит в состав объекта метаданных TabularSection. - LineNumberLength\r\n",
"exit": 1
},
"preRun": [
{
"writeFile": {
"path": "src/Configuration.xml",
"content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<MetaDataObject/>"
}
}
],
"args_extra": [
"-V8Path",
"{fakePlatform}",
"-InfoBasePath",
"{workDir}/ib",
"-ConfigDir",
"{workDir}/src"
],
"expectError": true,
"expect": {
"stdoutContains": "Свойство LineNumberLength не входит в состав объекта метаданных",
"stdoutNotContains": "reported success"
},
"noSnapshot": "навык ничего не пишет в рабочий каталог — проверяется вывод при провале платформы"
}
@@ -0,0 +1,19 @@
{
"name": "Провал загрузки (код 1) со строкой-отказом в логе: лог выведен, блока «reported success» нет (fake platform)",
"fakePlatform": {
"log": "Загрузка конфигурации из файлов.\r\nНеверное свойство объекта метаданных. Свойство LineNumberLength не входит в состав объекта метаданных TabularSection. - LineNumberLength\r\n",
"exit": 1
},
"args_extra": [
"-V8Path",
"{fakePlatform}",
"-InfoBasePath",
"{workDir}/ib"
],
"expectError": true,
"expect": {
"stdoutContains": "Свойство LineNumberLength не входит в состав объекта метаданных",
"stdoutNotContains": "reported success"
},
"noSnapshot": "навык ничего не пишет в рабочий каталог — проверяется вывод при провале платформы"
}