Files
Sprinter-SDCC/applications/Volkov/tests/make_p3_stress_hdd.sh
T
snark13 8e389c03f8 Volkov: добавить Sprinter Commander
Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места.

Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
2026-09-10 10:45:30 +03:00

54 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
# Создаёт отдельный FAT16 HDD для интеграционных тестов Commander.
# Аргументы: [образ [исполняемый файл]]; по умолчанию — локальный build/HDD.
set -eu
PROJECT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
DEFAULT_IMAGE="$PROJECT_DIR/build/hdd/p3_stress.chd"
IMAGE=${1:-$DEFAULT_IMAGE}
EXECUTABLE=${2:-$PROJECT_DIR/build/sprcmd.exe}
TEMP_DIR=$(mktemp -d "${TMPDIR:-/tmp}/sprcmd-hdd.XXXXXX")
FIXTURE_ROOT="$TEMP_DIR/P3DATA"
cleanup()
{
rm -rf -- "$TEMP_DIR"
}
trap cleanup EXIT HUP INT TERM
mkdir -p "$(dirname -- "$IMAGE")"
mkdir "$FIXTURE_ROOT"
mkdir "$FIXTURE_ROOT/EMPTY" "$FIXTURE_ROOT/TESTDIR" \
"$FIXTURE_ROOT/MANY" "$FIXTURE_ROOT/BIGDIR"
cp "$PROJECT_DIR/tests/p3_data/INNER.TXT" \
"$FIXTURE_ROOT/TESTDIR/INNER.TXT"
i=0
while [ "$i" -lt 40 ]; do
name=$(printf 'M%07d.TXT' "$i")
cp "$PROJECT_DIR/tests/p3_data/P3ROOT.TXT" \
"$FIXTURE_ROOT/MANY/$name"
i=$((i + 1))
done
i=0
while [ "$i" -lt 680 ]; do
name=$(printf 'B%07d.DAT' "$i")
cp "$PROJECT_DIR/tests/p3_data/P3ROOT.TXT" \
"$FIXTURE_ROOT/BIGDIR/$name"
i=$((i + 1))
done
cp "$PROJECT_DIR/tests/p3_data/P3ROOT.TXT" "$FIXTURE_ROOT/P3ROOT.TXT"
cp "$PROJECT_DIR/tests/p3_data/ZETA.BIN" "$FIXTURE_ROOT/ZETA.BIN"
"$PROJECT_DIR/../../toolchain/make_hdd.sh" "$IMAGE" \
"$EXECUTABLE" \
"$FIXTURE_ROOT/EMPTY" "$FIXTURE_ROOT/TESTDIR" \
"$FIXTURE_ROOT/MANY" "$FIXTURE_ROOT/BIGDIR" \
"$FIXTURE_ROOT/P3ROOT.TXT" "$FIXTURE_ROOT/ZETA.BIN"
echo "P3 stress HDD ready: $IMAGE (D:, executable: SPRCMD.EXE)"