Files
Sprinter-SDCC/applications/Volkov/tests/make_p19_overwrite_hdd.sh
T

32 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
# Создаёт HDD для target-пробы транзакционного overwrite.
set -eu
: "${SPRINTER_ROOT:?задайте SPRINTER_ROOT для упаковки HDD}"
PROJECT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
IMAGE=${1:-$PROJECT_DIR/build/hdd/p19_overwrite.chd}
PROBE=${2:-$PROJECT_DIR/build/tests/p19/delrt.exe}
TEMP_DIR=$(mktemp -d "${TMPDIR:-/tmp}/sprcmd-p19.XXXXXX")
BASE_CHD="$TEMP_DIR/base.chd"
RAW="$TEMP_DIR/p19.raw"
MTC="$TEMP_DIR/mtools.conf"
cleanup()
{
rm -rf -- "$TEMP_DIR"
}
trap cleanup EXIT HUP INT TERM
python3 "$PROJECT_DIR/tests/p19_overwrite_fixture.py" create "$TEMP_DIR"
"$SPRINTER_ROOT/toolchain/make_hdd.sh" "$BASE_CHD" \
"$PROBE" "$TEMP_DIR/SOURCE" "$TEMP_DIR/TARGET"
chdman extractraw -i "$BASE_CHD" -o "$RAW" -f >/dev/null
printf 'drive z: file="%s" partition=1\n' "$RAW" > "$MTC"
export MTOOLSRC="$MTC" MTOOLS_SKIP_CHECK=1
mattrib +r z:/TARGET/READONLY.BIN
mkdir -p "$(dirname -- "$IMAGE")"
chdman createhd -i "$RAW" -o "$IMAGE" -c none \
-chs 128,16,32 -ss 512 -f
printf 'P19 overwrite HDD ready: %s\n' "$IMAGE"