test(xray-proxy): добавлена полная проверка Python 3.8

- Зачем:
  - требовалось подтвердить нижнюю версию Python и исключить переполнение /tmp тестовыми данными.
- Что:
  - добавлен полный прогон под системным Python и CPython 3.8 через uv.
  - исправлены переносимость тестового Xray, уборка временных файлов и документация задачи 05.
  - добавлен список локальных навыков, исключаемых из Git.
- Проверка:
  - bash tests/test_xray_proxy_full.sh.
This commit is contained in:
ddadmin committed 2026-07-21 07:52:58 -04:00
1 parent 92cf3397da
commit fd8210db71
10 files changed
+234 -127

No files matched your search

+16 -16
View File
@@ -3,6 +3,11 @@ set -euo pipefail
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
# Один корневой временный каталог на прогон: тестовые деревья копируют заметную
# часть репозитория и без уборки переполняют /tmp за несколько прогонов.
TEST_TMP_ROOT="$(mktemp -d /tmp/dotfiles-install-test.XXXXXX)"
trap 'rm -rf "$TEST_TMP_ROOT"' EXIT
fail() {
echo "FAIL: $*" >&2
exit 1
@@ -21,26 +26,21 @@ assert_not_exists() {
setup_fixture() {
local fixture_root repo_root bin_dir
fixture_root="$(mktemp -d /tmp/dotfiles-install-test.XXXXXX)"
fixture_root="$(mktemp -d "$TEST_TMP_ROOT/fixture.XXXXXX")"
repo_root="$fixture_root/repo"
bin_dir="$fixture_root/bin"
mkdir -p "$repo_root" "$bin_dir"
cp -a \
"$REPO_ROOT/install.sh" \
"$REPO_ROOT/bash" \
"$REPO_ROOT/tmux" \
"$REPO_ROOT/vim" \
"$REPO_ROOT/zed" \
"$REPO_ROOT/vscode" \
"$REPO_ROOT/agents" \
"$REPO_ROOT/opencode" \
"$REPO_ROOT/codex" \
"$REPO_ROOT/gemini" \
"$REPO_ROOT/claude" \
"$REPO_ROOT/xray-proxy" \
"$REPO_ROOT/scripts" \
"$repo_root/"
# Список файлов соответствует свежему клону: только отслеживаемые Git-файлы
# (новые файлы видны после git add). Содержимое берётся из текущего рабочего
# дерева. Локальные данные инструментов внутри пакетов (vscode/.vscode-server,
# zed/.config/opencode и т.п.) весят гигабайты, переполняют /tmp и ломают
# stow конфликтами, поэтому в тестовое дерево не попадает.
git -C "$REPO_ROOT" ls-files -z --cached -- \
install.sh bash tmux vim zed vscode agents opencode codex gemini \
claude xray-proxy scripts \
| tar -C "$REPO_ROOT" --null -T - -cf - \
| tar -xf - -C "$repo_root"
cat > "$bin_dir/fake-git" <<'EOF'
#!/usr/bin/env bash