summaryrefslogtreecommitdiffstats
path: root/test_prompts.sh
diff options
context:
space:
mode:
authorSadeep Madurange <sadeep@asciimx.com>2026-08-28 11:35:52 +0800
committerSadeep Madurange <sadeep@asciimx.com>2026-08-28 11:35:52 +0800
commitadaefc77ec359bec5b42711d23e7036835592e93 (patch)
tree6eb62e30d37ea768ea3c4293063dd1f145756e50 /test_prompts.sh
parent8adf3813822fc8781781cc3082f68c94ae184742 (diff)
downloadlex-adaefc77ec359bec5b42711d23e7036835592e93.tar.gz
Remove application invocation in benchmark script + 5A5V result.
Diffstat (limited to 'test_prompts.sh')
-rw-r--r--[-rwxr-xr-x]test_prompts.sh78
1 files changed, 26 insertions, 52 deletions
diff --git a/test_prompts.sh b/test_prompts.sh
index 1f86d4a..925a26b 100755..100644
--- a/test_prompts.sh
+++ b/test_prompts.sh
@@ -1,34 +1,33 @@
#!/bin/sh
-# Usage: ./test_prompts.sh <model_path> [prompt_file]
+# Usage: ./test_prompts.sh [-i prompt_file] [-o result_file]
SOCK_PATH="/var/run/lexd/sock"
-EXECUTABLE="lexd"
-# Mandatory Model Argument
-MODEL_PATH="$1"
+# Defaults
+PROMPT_FILE="test_prompts.txt"
+RESULT_FILE="results.txt"
-if [ -z "$MODEL_PATH" ]; then
- echo "Usage: $0 <model_path> [prompt_file]" >&2
- exit 1
-fi
+# Parse -i and -o flags
+while getopts "i:o:" opt; do
+ case "$opt" in
+ i) PROMPT_FILE="$OPTARG" ;;
+ o) RESULT_FILE="$OPTARG" ;;
+ *) echo "Usage: $0 [-i prompt_file] [-o result_file]" >&2; exit 1 ;;
+ esac
+done
-if [ ! -f "$MODEL_PATH" ]; then
- echo "Error: Model file '$MODEL_PATH' not found." >&2
+# Ensure socket exists (daemon must already be running)
+if [ ! -S "$SOCK_PATH" ]; then
+ echo "Error: Socket '$SOCK_PATH' not found. Is lexd running?" >&2
exit 1
fi
-# Derive base model name and output result filename
-MODEL_NAME=$(basename "$MODEL_PATH")
-RESULT_FILE="results_${MODEL_NAME}.txt"
-
-# Default prompt filename (optional 2nd argument)
-PROMPT_FILE="${2:-test_prompts.txt}"
+# Retrieve running daemon PID
+DAEMON_PID=$(pgrep -f "lexd" | head -n 1)
-# Ensure executable exists
-if [ ! -x "$EXECUTABLE" ]; then
- echo "Error: Executable '$EXECUTABLE' not found or not executable." >&2
- exit 1
+if [ -z "$DAEMON_PID" ]; then
+ echo "Warning: Could not detect DAEMON_PID. RSS metrics may be unavailable." >&2
fi
# Ensure prompt file exists
@@ -38,15 +37,12 @@ if [ ! -f "$PROMPT_FILE" ]; then
fi
# Helper function to get current swap occupancy in MB by parsing swapctl -l
-# OpenBSD swapctl -l outputs 512-byte block counts by default
get_swap_occupancy_mb() {
swapctl -l | awk '
NR > 1 {
- # Column 3 is Used blocks (512-byte blocks)
used_blocks += $3
}
END {
- # Convert 512-byte blocks to MB (blocks * 512 / 1024 / 1024)
printf "%.2f", used_blocks * 512 / 1048576
}'
}
@@ -70,34 +66,14 @@ while [ $i -lt 72 ]; do
i=$((i + 1))
done
-# --- Start daemon ---
-
-echo "Starting daemon with model: '$MODEL_PATH'"
-"$EXECUTABLE" -m "$MODEL_PATH" &
-DAEMON_PID=$!
+# Temporary file to capture time / rusage output
+TIME_LOG=$(mktemp /tmp/lex_time.XXXXXX)
cleanup() {
- kill "$DAEMON_PID" 2>/dev/null
- wait "$DAEMON_PID" 2>/dev/null
rm -f "$TIME_LOG"
}
trap cleanup EXIT INT TERM
-waited=0
-while [ ! -S "$SOCK_PATH" ]; do
- if ! kill -0 "$DAEMON_PID" 2>/dev/null; then
- echo "Error: daemon exited during startup (bad model path?)" >&2
- exit 1
- fi
- sleep 1
- waited=$((waited + 1))
- if [ "$waited" -ge 120 ]; then
- echo "Error: timed out waiting for daemon socket at $SOCK_PATH" >&2
- exit 1
- fi
-done
-
-echo "Daemon ready (pid $DAEMON_PID) after ${waited}s"
echo "Evaluating $total_prompts prompt(s) from '$PROMPT_FILE'"
echo "Writing results to: '$RESULT_FILE'"
echo "---------------------------------------------------"
@@ -105,9 +81,6 @@ echo "---------------------------------------------------"
current=0
first=1
-# Temporary file to capture time / rusage output
-TIME_LOG=$(mktemp /tmp/lex_time.XXXXXX)
-
# Process each prompt
while IFS= read -r prompt || [ -n "$prompt" ]; do
case "$prompt" in
@@ -125,12 +98,14 @@ while IFS= read -r prompt || [ -n "$prompt" ]; do
printf "PROMPT: %s\n\n" "$prompt" >> "$RESULT_FILE"
# Sample daemon RSS prior to request
- daemon_rss_kb=$(ps -o rss= -p "$DAEMON_PID" 2>/dev/null | tr -d ' ')
+ if [ -n "$DAEMON_PID" ]; then
+ daemon_rss_kb=$(ps -o rss= -p "$DAEMON_PID" 2>/dev/null | tr -d ' ')
+ fi
# Capture baseline swap occupancy before sending the prompt
swap_start_mb=$(get_swap_occupancy_mb)
- # Send prompt to daemon over socket
+ # Send prompt to daemon over socket (exact original invocation)
/usr/bin/time -lp sh -c "printf '%s\n' \"\$1\" | nc -U \"\$2\"" _ "$prompt" "$SOCK_PATH" \
>> "$RESULT_FILE" 2> "$TIME_LOG"
@@ -162,5 +137,4 @@ while IFS= read -r prompt || [ -n "$prompt" ]; do
done < "$PROMPT_FILE"
echo "---------------------------------------------------"
-echo "Done! Processed $total_prompts prompt(s)."
-
+echo "Done! Processed $total_prompts prompt(s)." \ No newline at end of file