Test & performance scripts

August 20, 2026 · View on GitHub

Helper scripts for local development, load generation, and performance measurement. None of them are required to build or run ScorpioFS, and none use developer-local paths (test data is created under /tmp).

ScriptPurposeRun
mktestdirs.shCreate empty scratch dirs for overlay/FUSE experiments.script/mktestdirs.sh
run.shGenerate a small deep directory tree (10 × 1 MB files) under /tmp.script/run.sh
run_1000_files.shGenerate a larger tree (~1000 files) under /tmp.script/run_1000_files.sh
test_installer.shExercise installer input and safety validation without system changes.script/test_installer.sh
test_installer_systemd.shVerify generated mount cleanup and upgrade restart using mocked systemd commands.sudo script/test_installer_systemd.sh <version> <release-url> <test-root>
fuse_test.pyPython FUSE throughput/latency benchmark with plots.python3 script/fuse_test.py --help
log_analysis.pyExtract abnormal/unmatched request IDs from a ScorpioFS log (writes output.txt).python3 script/log_analysis.py

Read benchmark (integrated as a cargo example)

The former script/run.rs is now a first-class cargo target at examples/fs_read_perf.rs. It walks a directory and reports directory-load, stat, and read timings — run it against a native path and against a ScorpioFS/FUSE mount to compare:

# 1. generate a test tree
script/run.sh                       # creates /tmp/test_<timestamp>/...

# 2. measure (native, then via a mount)
cargo run --release --example fs_read_perf -- /tmp/test_<timestamp>

The Python scripts need matplotlib, seaborn, and numpy (pip install matplotlib seaborn numpy).