restart-test-validator.sh 965 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/env bash
  2. here="$(dirname "$0")"
  3. src_root="$(readlink -f "${here}/..")"
  4. cd "${src_root}"
  5. ARGS=(
  6. -r
  7. -q
  8. --bpf-program TokenHookExampLe8smaVNrxTBezWTRbEwxwb1Zykrb ./target/deploy/spl_transfer_hook_example.so
  9. )
  10. PORT=8899
  11. PID=$(lsof -t -i:$PORT)
  12. if [ -n "$PID" ]; then
  13. echo "Detected test validator running on PID $PID. Restarting..."
  14. kill "$PID"
  15. sleep 1
  16. fi
  17. echo "Starting Solana test validator..."
  18. solana-test-validator "${ARGS[@]}" &
  19. VALIDATOR_PID=$!
  20. # Wait for test validator to move past slot 0.
  21. echo -n "Waiting for validator to stabilize"
  22. for i in {1..8}; do
  23. if ! kill -0 "$VALIDATOR_PID" 2>/dev/null; then
  24. echo -e "\nTest validator exited early."
  25. exit 1
  26. fi
  27. SLOT=$(solana slot -ul 2>/dev/null)
  28. if [[ "$SLOT" =~ ^[0-9]+$ ]] && [ "$SLOT" -gt 0 ]; then
  29. echo -e "\nTest validator is ready. Slot: $SLOT"
  30. exit 0
  31. fi
  32. echo -n "."
  33. sleep 1
  34. done
  35. echo -e "\nTimed out waiting for test validator to stabilize."
  36. exit 1