#!/bin/sh # Создаёт отдельный HDD для EXEC/restore-теста P4.2. set -eu : "${SPRINTER_ROOT:?задайте SPRINTER_ROOT для упаковки HDD}" PROJECT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd) DEFAULT_IMAGE="$PROJECT_DIR/build/hdd/p4_exec.chd" IMAGE=${1:-$DEFAULT_IMAGE} COMMANDER=${2:-$PROJECT_DIR/build/sprcmd.exe} CHILD=${3:-$PROJECT_DIR/tests/p4_exec_child/p4child.exe} TEMP_DIR=$(mktemp -d "${TMPDIR:-/tmp}/sprcmd-exec.XXXXXX") FIXTURE_ROOT="$TEMP_DIR/P4EXEC" cleanup() { rm -rf -- "$TEMP_DIR" } trap cleanup EXIT HUP INT TERM mkdir -p "$(dirname -- "$IMAGE")" mkdir -p "$FIXTURE_ROOT/EXECLEFT" "$FIXTURE_ROOT/EXECRGHT" cp "$CHILD" "$FIXTURE_ROOT/EXECLEFT/P4CHILD.EXE" cp "$PROJECT_DIR/tests/p3_data/P3ROOT.TXT" \ "$FIXTURE_ROOT/EXECLEFT/BROKEN.EXE" cp "$PROJECT_DIR/tests/p3_data/INNER.TXT" \ "$FIXTURE_ROOT/EXECLEFT/NOTE.TXT" "$SPRINTER_ROOT/toolchain/make_hdd.sh" "$IMAGE" \ "$COMMANDER" "$FIXTURE_ROOT/EXECLEFT" "$FIXTURE_ROOT/EXECRGHT" echo "P4 EXEC HDD ready: $IMAGE (D:, child: EXECLEFT/P4CHILD.EXE)"