# Scripts This directory contains utility scripts for ToastyFS development and testing. ## Cluster Demo Script The `cluster_demo.sh` script allows you to easily spawn and manage a ToastyFS cluster for demo and testing purposes. ### Usage ```bash # Start a cluster with 3 chunk servers (default) ./scripts/cluster_demo.sh start # Start a cluster with a custom number of chunk servers ./scripts/cluster_demo.sh start 5 # Check cluster status ./scripts/cluster_demo.sh status # Stop the cluster ./scripts/cluster_demo.sh stop # Clean all cluster data and logs ./scripts/cluster_demo.sh clean ``` ### What it does The script: - Builds ToastyFS if needed - Starts one metadata server (leader) on port 8080 - Starts the specified number of chunk servers on ports 8081, 8082, etc. - Stores all process IDs for easy management - Captures logs to `cluster_logs/` directory - Stores data in `cluster_data/` directory All servers run in the background, making it easy to test the cluster with client applications. ## Branch Coverage Measurement ### Prerequisites The HTML report generation requires `lcov`: ```bash sudo apt-get install lcov ``` ## Usage ### Quick text summary (5 second simulation) ```bash make coverage-report ``` ### HTML report with branch details (5 second simulation) ```bash make coverage-html ``` ### Custom duration ```bash ./scripts/measure_coverage.sh 10 # 10 second run, text output ./scripts/measure_coverage.sh 10 --html # 10 second run, HTML output ``` ## What gets measured The coverage tool: - Builds the test binary with coverage instrumentation (`--coverage` flag) - Runs the random simulation for the specified duration - Generates reports showing which branches were executed ## Output **Text report**: Shows per-file and total branch coverage percentages **HTML report**: Interactive report generated by lcov/genhtml showing: - Overall coverage summary - Per-file coverage breakdown - Source code with execution counts - Branch coverage details The HTML report is generated in `coverage_report/index.html`