Skip to content

fix(launch): split /C argv + Vanessa JUnit overlay (TASK-127 verification)#4

Merged
steel-code-agent merged 2 commits into
masterfrom
agent/c-arg-junit-fix-20260514
May 14, 2026
Merged

fix(launch): split /C argv + Vanessa JUnit overlay (TASK-127 verification)#4
steel-code-agent merged 2 commits into
masterfrom
agent/c-arg-junit-fix-20260514

Conversation

@steel-code-agent

Copy link
Copy Markdown
Collaborator

Summary

Cherry-pick двух фиксов для v8-runner test va на путях с пробелами:

  • 95b58d2 fix(launch): split /C and payload into separate argv tokens (наш собственный, восстановлен из stash 13.05). Возвращает /C + payload двумя argv вместо /C"payload" одним. Снимает блокер «Неверные или отсутствующие параметры соединения с информационной базой» на Linux, когда payload содержит пробелы (наш репозиторий: 1C Projects/GBIG PAM).
  • 008e200 Fix Vanessa JUnit report directory overlay (cherry-pick из upstream alkoleft/v8-runner-rust PR Исправление ошибок запуска Yaxunit и VA тестов alkoleft/v8-runner-rust#6, автор Oleg Karataev). Синхронизирует КаталогВыгрузкиJUnit и ОтчетJUnit.КаталогВыгрузкиJUnit в runtime VAParams. Без этого VA пишет junit в build/out/junit, runner ждёт в runs/<id>/junit.

Контекст

Регрессия выявлена при верификации TASK-127 (маппинг русских/английских OKX-перечислений) через сценарий S123-покупка-btc-5процентов-висяк.feature. После пересборки бинаря v8-runner test va стабильно падал. Диагностика через strace + manual 1cv8c с теми же argv: на Linux 1cv8c не парсит payload внутри /C\"...\" одиночного argv при пробелах в пути.

Upstream PR alkoleft#6 описывает баг как Windows-специфический (CMD escape), но он одинаково ломается на Linux при пробелах.

Test plan

  • cargo build --release — Finished release profile [optimized] target(s) in 20.36s
  • v8-runner test va на репо с пробелами в пути:
    • До фикса: enterprise exit code 1, «Неверные параметры соединения»
    • После фикса: Tests completed — total=1, passed=1, failed=0
  • Manual repro: /C + payload как 2 argv → VA загружается корректно

SteelMorgan and others added 2 commits May 14, 2026 10:16
`/C"value"` was passed as a single argv element with literal `"` chars
in the payload — `std::process::Command` bypasses the shell on both Linux
(execve) and Windows (CreateProcess), so the platform received `/C"…"`
as one unknown key and replied with «Неверные или отсутствующие
параметры соединения с информационной базой». Splitting into `/C` and
the payload as two argv tokens makes the platform parse `/C` as the
command-line parameter key and the next token as its value.

Tests adjusted to match the new format: argv pairs `["/C", "<value>"]`
in unit tests and `/C\n<value>\n` in the integration args.log dump
(printf '%s\n' "$@" puts each argv on its own line).

Recovered from a dangling stash (cdb1e0a0 "fix/c-arg-quoting WIP") that
had been authored locally but never committed; rebuilds lost the patch.
@steel-code-agent steel-code-agent merged commit 61a7f45 into master May 14, 2026
@steel-code-agent steel-code-agent deleted the agent/c-arg-junit-fix-20260514 branch May 14, 2026 10:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants