Download scripts/test-zsh-utils.sh from SaylorTwift/forgecode: direct link, hf CLI and curl.
- Browser
- Download file 6.45 kB
-
https://huggingface.co/SaylorTwift/forgecode/resolve/main/scripts/test-zsh-utils.sh
- Command line
-
hf download hf://SaylorTwift/forgecode/scripts/test-zsh-utils.sh
-
curl -L -o test-zsh-utils.sh https://huggingface.co/SaylorTwift/forgecode/resolve/main/scripts/test-zsh-utils.sh
6.45 kB
| # Correctness and performance tests for `forge zsh format` which wraps bare | |
| # file paths in @[...] syntax. All parsing logic now lives in Rust; these | |
| # tests exercise the CLI subcommand end-to-end. | |
| # | |
| # Usage: zsh scripts/test-zsh-utils.sh | |
| set -euo pipefail | |
| zmodload zsh/datetime | |
| # Colors | |
| BOLD='\033[1m' | |
| DIM='\033[2m' | |
| RESET='\033[0m' | |
| GREEN='\033[32m' | |
| RED='\033[31m' | |
| CYAN='\033[36m' | |
| PASS=0 | |
| FAIL=0 | |
| # Resolve the forge binary (prefer local debug build) | |
| SCRIPT_DIR="${0:A:h}" | |
| FORGE_BIN="${FORGE_BIN:-${SCRIPT_DIR}/../target/debug/forge}" | |
| if [[ ! -x "$FORGE_BIN" ]]; then | |
| echo "${RED}forge binary not found at ${FORGE_BIN}${RESET}" | |
| echo "Run: cargo build -p forge_main" | |
| exit 1 | |
| fi | |
| # Wrapper that calls the Rust formatter | |
| function format() { | |
| "$FORGE_BIN" zsh format --buffer "$1" | |
| } | |
| # Create temporary files for testing paths with spaces | |
| TMPDIR_TEST=$(mktemp -d) | |
| mkdir -p "${TMPDIR_TEST}/my folder" | |
| touch "${TMPDIR_TEST}/my folder/test file.txt" | |
| touch "${TMPDIR_TEST}/simple.txt" | |
| # --- Test harness ----------------------------------------------------------- | |
| function assert_eq() { | |
| local test_name="$1" | |
| local actual="$2" | |
| local expected="$3" | |
| if [[ "$actual" == "$expected" ]]; then | |
| printf " ${GREEN}✓${RESET} %s\n" "$test_name" | |
| PASS=$(( PASS + 1 )) | |
| else | |
| printf " ${RED}✗${RESET} %s\n" "$test_name" | |
| printf " ${DIM}expected:${RESET} %s\n" "$expected" | |
| printf " ${DIM} actual:${RESET} %s\n" "$actual" | |
| FAIL=$(( FAIL + 1 )) | |
| fi | |
| } | |
| # --- Correctness tests ------------------------------------------------------ | |
| echo "" | |
| echo -e "${BOLD}Correctness Tests${RESET} ${DIM}— forge zsh format${RESET}" | |
| echo "" | |
| # Basic wrapping | |
| assert_eq "bare existing path" \ | |
| "$(format "/usr/bin/env")" \ | |
| "@[/usr/bin/env]" | |
| assert_eq "path in sentence" \ | |
| "$(format "look at /usr/bin/env please")" \ | |
| "look at @[/usr/bin/env] please" | |
| # Non-existent paths left untouched | |
| assert_eq "nonexistent path untouched" \ | |
| "$(format "check /nonexistent/foo.rs")" \ | |
| "check /nonexistent/foo.rs" | |
| # Already wrapped left untouched | |
| assert_eq "already wrapped @[...] untouched" \ | |
| "$(format "check @[/usr/bin/env] ok")" \ | |
| "check @[/usr/bin/env] ok" | |
| # Plain text (no paths) | |
| assert_eq "plain text no paths" \ | |
| "$(format "hello world")" \ | |
| "hello world" | |
| # Paths with spaces | |
| assert_eq "bare path with spaces" \ | |
| "$(format "${TMPDIR_TEST}/my folder/test file.txt")" \ | |
| "@[${TMPDIR_TEST}/my folder/test file.txt]" | |
| # Quoted paths with spaces | |
| assert_eq "single-quoted path with spaces" \ | |
| "$(format "'${TMPDIR_TEST}/my folder/test file.txt'")" \ | |
| "@[${TMPDIR_TEST}/my folder/test file.txt]" | |
| assert_eq "double-quoted path with spaces" \ | |
| "$(format "\"${TMPDIR_TEST}/my folder/test file.txt\"")" \ | |
| "@[${TMPDIR_TEST}/my folder/test file.txt]" | |
| assert_eq "single-quoted path with spaces in sentence" \ | |
| "$(format "check '${TMPDIR_TEST}/my folder/test file.txt' please")" \ | |
| "check @[${TMPDIR_TEST}/my folder/test file.txt] please" | |
| # Simple path (no spaces) | |
| assert_eq "simple path no spaces" \ | |
| "$(format "${TMPDIR_TEST}/simple.txt")" \ | |
| "@[${TMPDIR_TEST}/simple.txt]" | |
| # Multiple paths | |
| assert_eq "multiple existing paths" \ | |
| "$(format "compare /usr/bin/env and ${TMPDIR_TEST}/simple.txt")" \ | |
| "compare @[/usr/bin/env] and @[${TMPDIR_TEST}/simple.txt]" | |
| assert_eq "mixed existing and nonexistent" \ | |
| "$(format "check /usr/bin/env and /nonexistent/foo.rs")" \ | |
| "check @[/usr/bin/env] and /nonexistent/foo.rs" | |
| # Empty input | |
| assert_eq "empty input" \ | |
| "$(format "")" \ | |
| "" | |
| # Backslash-escaped paths (terminals like Ghostty send /path/my\ file.txt) | |
| local escaped_path="${TMPDIR_TEST}/my\ folder/test\ file.txt" | |
| assert_eq "backslash-escaped path (whole paste)" \ | |
| "$(format "$escaped_path")" \ | |
| "@[${TMPDIR_TEST}/my folder/test file.txt]" | |
| assert_eq "backslash-escaped path in sentence" \ | |
| "$(format "check $escaped_path please")" \ | |
| "check @[${TMPDIR_TEST}/my folder/test file.txt] please" | |
| local escaped_simple="${TMPDIR_TEST}/simple.txt" | |
| assert_eq "path without spaces (no escaping needed)" \ | |
| "$(format "$escaped_simple")" \ | |
| "@[${TMPDIR_TEST}/simple.txt]" | |
| assert_eq "backslash-escaped nonexistent path untouched" \ | |
| "$(format "/nonexistent/my\ folder/file.txt")" \ | |
| "/nonexistent/my\ folder/file.txt" | |
| # --- Performance tests ------------------------------------------------------- | |
| echo "" | |
| echo -e "${BOLD}Performance Tests${RESET} ${DIM}— forge zsh format${RESET}" | |
| echo "" | |
| ITERATIONS=20 | |
| # Benchmark: simple path | |
| START=$EPOCHREALTIME | |
| for i in $(seq 1 $ITERATIONS); do | |
| format "look at /usr/bin/env please" > /dev/null | |
| done | |
| END=$EPOCHREALTIME | |
| ELAPSED=$(( (END - START) * 1000 )) | |
| AVG=$(( ELAPSED / ITERATIONS )) | |
| printf " ${DIM}simple path ${RESET} ${CYAN}%.2f${RESET} ${DIM}ms avg (${ITERATIONS} iterations)${RESET}\n" $AVG | |
| # Benchmark: path with spaces | |
| START=$EPOCHREALTIME | |
| for i in $(seq 1 $ITERATIONS); do | |
| format "check '${TMPDIR_TEST}/my folder/test file.txt' please" > /dev/null | |
| done | |
| END=$EPOCHREALTIME | |
| ELAPSED=$(( (END - START) * 1000 )) | |
| AVG=$(( ELAPSED / ITERATIONS )) | |
| printf " ${DIM}quoted path spaces ${RESET} ${CYAN}%.2f${RESET} ${DIM}ms avg (${ITERATIONS} iterations)${RESET}\n" $AVG | |
| # Benchmark: plain text (no paths) | |
| START=$EPOCHREALTIME | |
| for i in $(seq 1 $ITERATIONS); do | |
| format "explain how this works in detail" > /dev/null | |
| done | |
| END=$EPOCHREALTIME | |
| ELAPSED=$(( (END - START) * 1000 )) | |
| AVG=$(( ELAPSED / ITERATIONS )) | |
| printf " ${DIM}plain text ${RESET} ${CYAN}%.2f${RESET} ${DIM}ms avg (${ITERATIONS} iterations)${RESET}\n" $AVG | |
| # Benchmark: already wrapped | |
| START=$EPOCHREALTIME | |
| for i in $(seq 1 $ITERATIONS); do | |
| format "check @[/usr/bin/env] and explain" > /dev/null | |
| done | |
| END=$EPOCHREALTIME | |
| ELAPSED=$(( (END - START) * 1000 )) | |
| AVG=$(( ELAPSED / ITERATIONS )) | |
| printf " ${DIM}already wrapped ${RESET} ${CYAN}%.2f${RESET} ${DIM}ms avg (${ITERATIONS} iterations)${RESET}\n" $AVG | |
| # --- Cleanup ----------------------------------------------------------------- | |
| rm -rf "$TMPDIR_TEST" | |
| # --- Summary ----------------------------------------------------------------- | |
| echo "" | |
| TOTAL=$(( PASS + FAIL )) | |
| if (( FAIL > 0 )); then | |
| echo -e "${RED}${BOLD}FAILED${RESET} ${PASS}/${TOTAL} passed, ${FAIL} failed" | |
| echo "" | |
| exit 1 | |
| else | |
| echo -e "${GREEN}${BOLD}ALL PASSED${RESET} ${PASS}/${TOTAL}" | |
| echo "" | |
| fi | |