mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-06 11:40:20 +03:00
fix(xdto): три дефекта, найденных платформенной верификацией снэпшотов
verify-snapshots загружает результат каждого кейса в 1С. Раньше навыки xdto через него не проходили вовсе; первый прогон дал 5 из 9. Ни корпусная сверка, ни валидатор такого не ловили: корпус состоит из заведомо валидных пакетов, а синтетические кейсы до сих пор в базу не грузились. 1. fixed. В модели XDTO это булев флаг, значение лежит в default; в XSD наоборот — fixed="V" несёт значение. Компилятор писал значение прямо в fixed, и платформа отвергала пакет («Отсутствует фиксированное значение свойства»). Перевод сделан в обе стороны; по принципу прощающего ввода принимается и модельная форма через зеркало xdto:fixed. Отображение выведено по корпусу: fixed встречается только вместе с default, значений всего два. 2. Импорт на несуществующий пакет платформа отвергает («xdto-package-3.3 … не определен»), а у нас проверки не было. Добавлена ошибка валидатора и, что важнее, предупреждение прямо на сборке — отказ при db-update дешевле поймать на шаг раньше. Правило пришлось калибровать корпусом: сначала оно дало 67 ложных срабатываний на платформенных пространствах имён, их список выведен и исключён. 3. localName проверяется как NCName — фикстура с пробелом в имени была негодной, заменена на реалистичный дефис (name="alpha_3" localName="alpha-3"). Харнесс получил skipPlatformVerify с обязательной причиной: результат set-namespace невалиден by design, операция намеренно оставляет висящий импорт у зависящего пакета. Итог: 9/9 компилятора, 9/10 + 1 осознанный пропуск у edit, round-trip 760/760, валидатор 0 ложных, 40 тестов на обоих рантаймах. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
3eb805f7b0
commit
5d5a1bc36a
@@ -1,9 +1,26 @@
|
||||
{
|
||||
"name": "ссылки на типы: свой ns (dNpN), голое имя, чужой ns с импортом, ref",
|
||||
"caseFiles": ["refs.xsd"],
|
||||
"params": { "xsdFile": "refs.xsd" },
|
||||
"caseFiles": [
|
||||
"other.xsd",
|
||||
"refs.xsd"
|
||||
],
|
||||
"params": {
|
||||
"xsdFile": "refs.xsd"
|
||||
},
|
||||
"validatePath": "XDTOPackages/refs",
|
||||
"expect": {
|
||||
"files": ["XDTOPackages/refs.xml", "XDTOPackages/refs/Ext/Package.bin"]
|
||||
}
|
||||
"files": [
|
||||
"XDTOPackages/refs.xml",
|
||||
"XDTOPackages/refs/Ext/Package.bin"
|
||||
]
|
||||
},
|
||||
"preRun": [
|
||||
{
|
||||
"script": "xdto-compile/scripts/xdto-compile",
|
||||
"args": {
|
||||
"-XsdPath": "{workDir}/other.xsd",
|
||||
"-OutputDir": "{workDir}"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user