8e389c03f8
Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места. Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
47 lines
1.4 KiB
Bash
47 lines
1.4 KiB
Bash
#!/bin/sh
|
|
# Создаёт стандартную FAT12-дискету для P3 stress-теста.
|
|
# Аргументы: [образ [исполняемый файл]]; по умолчанию — mc.img и Commander.
|
|
|
|
set -eu
|
|
|
|
PROJECT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
|
|
DEFAULT_IMAGE="$PROJECT_DIR/../../mame/v306/IMG/mc.img"
|
|
IMAGE=${1:-$DEFAULT_IMAGE}
|
|
EXECUTABLE=${2:-$PROJECT_DIR/build/sprcmd.exe}
|
|
TEMP_DIR=$(mktemp -d "${TMPDIR:-/tmp}/sprcmd-p3.XXXXXX")
|
|
|
|
cleanup()
|
|
{
|
|
rm -rf -- "$TEMP_DIR"
|
|
}
|
|
trap cleanup EXIT HUP INT TERM
|
|
|
|
mkdir "$TEMP_DIR/MANY" "$TEMP_DIR/BIGDIR"
|
|
|
|
i=0
|
|
while [ "$i" -lt 40 ]; do
|
|
name=$(printf 'M%07d.TXT' "$i")
|
|
cp "$PROJECT_DIR/tests/p3_data/P3ROOT.TXT" "$TEMP_DIR/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" "$TEMP_DIR/BIGDIR/$name"
|
|
i=$((i + 1))
|
|
done
|
|
|
|
mformat -C -i "$IMAGE" -f 1440 -v SPRCMD ::
|
|
mcopy -i "$IMAGE" "$EXECUTABLE" ::
|
|
mmd -i "$IMAGE" ::EMPTY
|
|
mmd -i "$IMAGE" ::TESTDIR
|
|
mcopy -i "$IMAGE" "$PROJECT_DIR/tests/p3_data/P3ROOT.TXT" ::
|
|
mcopy -i "$IMAGE" "$PROJECT_DIR/tests/p3_data/ZETA.BIN" ::
|
|
mcopy -i "$IMAGE" "$PROJECT_DIR/tests/p3_data/INNER.TXT" ::TESTDIR/
|
|
mcopy -i "$IMAGE" -s "$TEMP_DIR/MANY" ::
|
|
mcopy -i "$IMAGE" -s "$TEMP_DIR/BIGDIR" ::
|
|
|
|
mdir -i "$IMAGE" ::
|
|
echo "P3 stress floppy ready: $IMAGE (executable: $EXECUTABLE)"
|