test(support-guard): committed deny-тесты на 13 навыков-мутаторов + фикс help-add

Регрессионная защита гарда: по одному expectError-кейсу guard-deny на
каждый из 13 размноженных мутаторов (раньше committed-тесты были только
у 3 пилотных). Ловит случайное удаление/поломку guard-вызова в будущем.

Фикстуры on-support (рукотворный bin: корень/объект f1=0, плюс элемент
f1=0 для edit-existing навыков — форма 4444, макет 5555, подсистема 6666).
Структура под конвенцию каждого навбыка: owner/root для add/compile/edit
конфигурации; плоский Locked/Ext для help-add (EPF-стиль).

Заодно исправлен пред-существующий баг help-add Detect-FormatVersion
(v1.5→v1.6, оба порта): Substring(0, byteLength) падал на кириллическом
Configuration.xml (байт>символов). Теперь Substring по длине строки;
фикстура help-add кириллическая — регрессия фикса покрыта тестом.

Все 13 guard-кейсов зелёные на PowerShell и Python; deny через exit≠0 +
stderr "support-guard". Существующие кейсы не затронуты.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-06-20 15:45:50 +03:00
parent b17dd5d04c
commit acbd6be46c
72 changed files with 653 additions and 3 deletions
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" version="2.17">
<Catalog uuid="22222222-2222-2222-2222-222222222222">
<Properties>
<Name>Locked</Name>
<Synonym/>
<CodeLength>9</CodeLength>
<DescriptionLength>25</DescriptionLength>
</Properties>
<ChildObjects/>
</Catalog>
</MetaDataObject>
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" version="2.17">
<Catalog uuid="33333333-3333-3333-3333-333333333333">
<Properties>
<Name>Removed</Name>
<Synonym/>
<CodeLength>9</CodeLength>
<DescriptionLength>25</DescriptionLength>
</Properties>
<ChildObjects/>
</Catalog>
</MetaDataObject>
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" version="2.17">
<Configuration uuid="11111111-1111-1111-1111-111111111111">
<Properties>
<Name>ТестКонфиг</Name>
<Vendor>ТестВендор</Vendor>
<Version>1.0</Version>
</Properties>
<ChildObjects>
<Catalog>Locked</Catalog>
<Catalog>Removed</Catalog>
</ChildObjects>
</Configuration>
</MetaDataObject>
@@ -0,0 +1 @@
{6,0,1,aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa,0,bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb,"1.0","ТестВендор","ТестКонфиг",3,0,0,11111111-1111-1111-1111-111111111111,0,0,22222222-2222-2222-2222-222222222222,22222222-2222-2222-2222-222222222222,2,0,33333333-3333-3333-3333-333333333333,33333333-3333-3333-3333-333333333333,0,0,66666666-6666-6666-6666-666666666666,66666666-6666-6666-6666-666666666666}
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" version="2.17"><Subsystem uuid="66666666-6666-6666-6666-666666666666"><Properties><Name>ТестПодсистема</Name></Properties><ChildObjects/></Subsystem></MetaDataObject>