From 64c629a897b812268b83907cd8d5b6c83a308d42 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Thu, 13 Aug 2026 15:47:41 +0300 Subject: [PATCH] =?UTF-8?q?test(skills):=20sh-=D1=84=D0=B5=D0=B9=D0=BA=20?= =?UTF-8?q?=D1=81=D0=BD=D0=B8=D0=BC=D0=B0=D0=B5=D1=82=20=D0=BA=D0=B0=D0=B2?= =?UTF-8?q?=D1=8B=D1=87=D0=BA=D0=B8=20=D1=81=D0=BE=20=D0=B7=D0=BD=D0=B0?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20/Out?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Значение /Out несёт кавычки внутри токена — это соглашение 1С (run_v8 передаёт File="путь" так же). В batch их снимает %~2, поэтому win32-фейк работал; в sh их надо снять явно, иначе cp целится в имя файла с кавычками и лог не появляется. Co-Authored-By: Claude Opus 5 (1M context) --- tests/skills/cases/db-load-xml/clean-log-no-warning-posix.json | 2 +- .../cases/db-load-xml/compat-mode-above-platform-posix.json | 2 +- .../cases/db-load-xml/silent-rejection-detected-posix.json | 2 +- .../skills/cases/db-load-xml/silent-rejection-strict-posix.json | 2 +- tests/skills/cases/db-update/clean-log-no-warning-posix.json | 2 +- .../cases/db-update/compat-mode-above-platform-posix.json | 2 +- .../skills/cases/db-update/silent-rejection-detected-posix.json | 2 +- tests/skills/cases/db-update/silent-rejection-strict-posix.json | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/skills/cases/db-load-xml/clean-log-no-warning-posix.json b/tests/skills/cases/db-load-xml/clean-log-no-warning-posix.json index 81726892..47fee5ff 100644 --- a/tests/skills/cases/db-load-xml/clean-log-no-warning-posix.json +++ b/tests/skills/cases/db-load-xml/clean-log-no-warning-posix.json @@ -9,7 +9,7 @@ { "writeFile": { "path": "fake.sh", - "content": "#!/bin/sh\n# Фейк платформы для *nix: вычитывает путь из /Out и кладёт туда готовый лог.\nSELF=$(dirname \"$0\")\nOUT=\"\"\nwhile [ $# -gt 0 ]; do\n if [ \"$1\" = \"/Out\" ]; then OUT=\"$2\"; fi\n shift\ndone\ncp \"$SELF/log.txt\" \"$OUT\"\nexit 0\n", + "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 } }, diff --git a/tests/skills/cases/db-load-xml/compat-mode-above-platform-posix.json b/tests/skills/cases/db-load-xml/compat-mode-above-platform-posix.json index b191eb3e..13954735 100644 --- a/tests/skills/cases/db-load-xml/compat-mode-above-platform-posix.json +++ b/tests/skills/cases/db-load-xml/compat-mode-above-platform-posix.json @@ -9,7 +9,7 @@ { "writeFile": { "path": "fake.sh", - "content": "#!/bin/sh\n# Фейк платформы для *nix: вычитывает путь из /Out и кладёт туда готовый лог.\nSELF=$(dirname \"$0\")\nOUT=\"\"\nwhile [ $# -gt 0 ]; do\n if [ \"$1\" = \"/Out\" ]; then OUT=\"$2\"; fi\n shift\ndone\ncp \"$SELF/log.txt\" \"$OUT\"\nexit 0\n", + "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 } }, diff --git a/tests/skills/cases/db-load-xml/silent-rejection-detected-posix.json b/tests/skills/cases/db-load-xml/silent-rejection-detected-posix.json index a6552abe..a842d201 100644 --- a/tests/skills/cases/db-load-xml/silent-rejection-detected-posix.json +++ b/tests/skills/cases/db-load-xml/silent-rejection-detected-posix.json @@ -9,7 +9,7 @@ { "writeFile": { "path": "fake.sh", - "content": "#!/bin/sh\n# Фейк платформы для *nix: вычитывает путь из /Out и кладёт туда готовый лог.\nSELF=$(dirname \"$0\")\nOUT=\"\"\nwhile [ $# -gt 0 ]; do\n if [ \"$1\" = \"/Out\" ]; then OUT=\"$2\"; fi\n shift\ndone\ncp \"$SELF/log.txt\" \"$OUT\"\nexit 0\n", + "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 } }, diff --git a/tests/skills/cases/db-load-xml/silent-rejection-strict-posix.json b/tests/skills/cases/db-load-xml/silent-rejection-strict-posix.json index 32ebf37f..9be025d5 100644 --- a/tests/skills/cases/db-load-xml/silent-rejection-strict-posix.json +++ b/tests/skills/cases/db-load-xml/silent-rejection-strict-posix.json @@ -9,7 +9,7 @@ { "writeFile": { "path": "fake.sh", - "content": "#!/bin/sh\n# Фейк платформы для *nix: вычитывает путь из /Out и кладёт туда готовый лог.\nSELF=$(dirname \"$0\")\nOUT=\"\"\nwhile [ $# -gt 0 ]; do\n if [ \"$1\" = \"/Out\" ]; then OUT=\"$2\"; fi\n shift\ndone\ncp \"$SELF/log.txt\" \"$OUT\"\nexit 0\n", + "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 } }, diff --git a/tests/skills/cases/db-update/clean-log-no-warning-posix.json b/tests/skills/cases/db-update/clean-log-no-warning-posix.json index b3d02cc8..8bb8abaf 100644 --- a/tests/skills/cases/db-update/clean-log-no-warning-posix.json +++ b/tests/skills/cases/db-update/clean-log-no-warning-posix.json @@ -9,7 +9,7 @@ { "writeFile": { "path": "fake.sh", - "content": "#!/bin/sh\n# Фейк платформы для *nix: вычитывает путь из /Out и кладёт туда готовый лог.\nSELF=$(dirname \"$0\")\nOUT=\"\"\nwhile [ $# -gt 0 ]; do\n if [ \"$1\" = \"/Out\" ]; then OUT=\"$2\"; fi\n shift\ndone\ncp \"$SELF/log.txt\" \"$OUT\"\nexit 0\n", + "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 } }, diff --git a/tests/skills/cases/db-update/compat-mode-above-platform-posix.json b/tests/skills/cases/db-update/compat-mode-above-platform-posix.json index 6251b023..d492c98b 100644 --- a/tests/skills/cases/db-update/compat-mode-above-platform-posix.json +++ b/tests/skills/cases/db-update/compat-mode-above-platform-posix.json @@ -9,7 +9,7 @@ { "writeFile": { "path": "fake.sh", - "content": "#!/bin/sh\n# Фейк платформы для *nix: вычитывает путь из /Out и кладёт туда готовый лог.\nSELF=$(dirname \"$0\")\nOUT=\"\"\nwhile [ $# -gt 0 ]; do\n if [ \"$1\" = \"/Out\" ]; then OUT=\"$2\"; fi\n shift\ndone\ncp \"$SELF/log.txt\" \"$OUT\"\nexit 0\n", + "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 } }, diff --git a/tests/skills/cases/db-update/silent-rejection-detected-posix.json b/tests/skills/cases/db-update/silent-rejection-detected-posix.json index c04c4b89..6b3b9074 100644 --- a/tests/skills/cases/db-update/silent-rejection-detected-posix.json +++ b/tests/skills/cases/db-update/silent-rejection-detected-posix.json @@ -9,7 +9,7 @@ { "writeFile": { "path": "fake.sh", - "content": "#!/bin/sh\n# Фейк платформы для *nix: вычитывает путь из /Out и кладёт туда готовый лог.\nSELF=$(dirname \"$0\")\nOUT=\"\"\nwhile [ $# -gt 0 ]; do\n if [ \"$1\" = \"/Out\" ]; then OUT=\"$2\"; fi\n shift\ndone\ncp \"$SELF/log.txt\" \"$OUT\"\nexit 0\n", + "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 } }, diff --git a/tests/skills/cases/db-update/silent-rejection-strict-posix.json b/tests/skills/cases/db-update/silent-rejection-strict-posix.json index b33e6394..89bf95c2 100644 --- a/tests/skills/cases/db-update/silent-rejection-strict-posix.json +++ b/tests/skills/cases/db-update/silent-rejection-strict-posix.json @@ -9,7 +9,7 @@ { "writeFile": { "path": "fake.sh", - "content": "#!/bin/sh\n# Фейк платформы для *nix: вычитывает путь из /Out и кладёт туда готовый лог.\nSELF=$(dirname \"$0\")\nOUT=\"\"\nwhile [ $# -gt 0 ]; do\n if [ \"$1\" = \"/Out\" ]; then OUT=\"$2\"; fi\n shift\ndone\ncp \"$SELF/log.txt\" \"$OUT\"\nexit 0\n", + "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 } },