Files
cc-1c-skills/tests/skills/cases/db-load-xml/compat-mode-above-platform-posix.json
T
Nick ShirokovandClaude Opus 5 64c629a897 test(skills): sh-фейк снимает кавычки со значения /Out
Значение /Out несёт кавычки внутри токена — это соглашение 1С (run_v8 передаёт
File="путь" так же). В batch их снимает %~2, поэтому win32-фейк работал; в sh
их надо снять явно, иначе cp целится в имя файла с кавычками и лог не появляется.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-13 15:47:41 +03:00

51 lines
2.0 KiB
JSON

{
"name": "Режим совместимости выше платформы на *nix: классифицируется как отказ (issue #63)",
"osOnly": [
"darwin",
"linux"
],
"runtimeOnly": "python",
"preRun": [
{
"writeFile": {
"path": "fake.sh",
"content": "#!/bin/sh\n# Фейк платформы для *nix: вычитывает путь из /Out и кладёт туда готовый лог.\n# Значение /Out несёт кавычки ВНУТРИ токена (соглашение 1С, см. run_v8) — в batch их\n# снимает %~2, в sh их надо снять руками, иначе cp целится в имя с кавычками.\nSELF=$(dirname \"$0\")\nOUT=\"\"\nwhile [ $# -gt 0 ]; do\n if [ \"$1\" = \"/Out\" ]; then\n OUT=\"$2\"\n OUT=\"${OUT#\\\"}\"\n OUT=\"${OUT%\\\"}\"\n fi\n shift\ndone\ncp \"$SELF/log.txt\" \"$OUT\"\nexit 0\n",
"executable": true
}
},
{
"writeFile": {
"path": "log.txt",
"content": "Для работы с конфигурацией необходима версия платформы не меньше, чем 8.3.27.\r\nТекущая версия 8.3.24.1691.\r\n"
}
},
{
"writeFile": {
"path": "ib/1Cv8.1CD",
"content": "stub"
}
},
{
"writeFile": {
"path": "src/Configuration.xml",
"content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<MetaDataObject/>"
}
}
],
"args_extra": [
"-V8Path",
"{workDir}/fake.sh",
"-InfoBasePath",
"{workDir}/ib",
"-ConfigDir",
"{workDir}/src"
],
"expect": {
"stdoutContains": [
"[warning] platform reported success, but the log contains 1 problem(s):",
"необходима версия платформы не меньше"
]
},
"noSnapshot": "навык ничего не пишет в рабочий каталог — проверяется разбор лога платформы"
}