#!/bin/sh # Создаёт почти полный HDD для реальной ошибки записи ENOSPC. set -eu PROJECT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd) DEFAULT_IMAGE="$PROJECT_DIR/build/hdd/p5_enospc.chd" IMAGE=${1:-$DEFAULT_IMAGE} EXECUTABLE=${2:-$PROJECT_DIR/build/sprcmd.exe} TEMP_DIR=$(mktemp -d "${TMPDIR:-/tmp}/sprcmd-enospc.XXXXXX") FIXTURE_ROOT="$TEMP_DIR/ENOSPC" cleanup() { rm -rf -- "$TEMP_DIR" } trap cleanup EXIT HUP INT TERM mkdir -p "$(dirname -- "$IMAGE")" python3 "$PROJECT_DIR/tests/p5_enospc_fixture.py" create "$FIXTURE_ROOT" python3 "$PROJECT_DIR/tests/p5_enospc_fixture.py" verify-initial "$FIXTURE_ROOT" "$PROJECT_DIR/../../toolchain/make_hdd.sh" "$IMAGE" \ "$EXECUTABLE" "$FIXTURE_ROOT/SOURCE" "$FIXTURE_ROOT/TARGET" \ "$FIXTURE_ROOT/FILLER.BIN" echo "P5 ENOSPC HDD ready: $IMAGE"