Files
ToastyFS/scripts/README.md
T
Claude 7e63c211d3 Add cluster demo script for easy cluster management
This script provides a convenient way to spawn and manage a ToastyFS cluster
for demo and testing purposes. Features include:

- Start a cluster with configurable number of chunk servers
- Automatic building if binary is not present
- Process management with PID tracking
- Status checking for all cluster nodes
- Easy cleanup of all cluster processes
- Separate log files for each server component
- Colorized output for better readability

Usage:
  ./scripts/cluster_demo.sh start [num_servers]  - Start cluster
  ./scripts/cluster_demo.sh stop                 - Stop cluster
  ./scripts/cluster_demo.sh status               - Show status
  ./scripts/cluster_demo.sh clean                - Clean data/logs
2025-11-22 23:16:50 +00:00

2.0 KiB

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

# 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:

sudo apt-get install lcov

Usage

Quick text summary (5 second simulation)

make coverage-report

HTML report with branch details (5 second simulation)

make coverage-html

Custom duration

./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