55 lines
1.7 KiB
Bash
Executable File
55 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
# Создаёт отдельный FAT16 HDD для интеграционных тестов Commander.
|
|
# Аргументы: [образ [исполняемый файл]]; по умолчанию — локальный build/HDD.
|
|
|
|
set -eu
|
|
: "${SPRINTER_ROOT:?задайте SPRINTER_ROOT для упаковки HDD}"
|
|
|
|
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"
|
|
|
|
"$SPRINTER_ROOT/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)"
|