Files
wehub-resource-sync 1b8708893a
Security Scan / tests (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:12:26 +08:00

75 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
set -e
CURDIR=$(dirname "$(realpath $0)")
echo "Running vibevoice-cpp backend tests..."
# Required env-vars (set automatically when missing):
# VIBEVOICE_MODEL_DIR : directory containing the gguf bundle.
# VIBEVOICE_BINARY : path to the built backend (default ./vibevoice-cpp)
#
# Tests skip when the model bundle is absent and the auto-download
# fails (e.g. no network on the runner) so local devs without HF access
# still get green compile output.
cd "$CURDIR"
if [ -z "$VIBEVOICE_MODEL_DIR" ]; then
export VIBEVOICE_MODEL_DIR="./vibevoice-models"
if [ ! -d "$VIBEVOICE_MODEL_DIR" ]; then
echo "Creating vibevoice-models directory for tests..."
mkdir -p "$VIBEVOICE_MODEL_DIR"
REPO_ID="mudler/vibevoice.cpp-models"
echo "Repository: ${REPO_ID}"
# Q4_K instead of Q8_0 for the ASR model: smaller download
# (10 GB vs 14 GB), fits on ubuntu-latest's free disk after the
# runner image is loaded. The unit/closed-loop test only needs
# decode quality, not Q8_0 precision.
FILES=(
"vibevoice-realtime-0.5B-q8_0.gguf"
"vibevoice-asr-q4_k.gguf"
"tokenizer.gguf"
"voice-en-Carter_man.gguf"
)
BASE_URL="https://huggingface.co/${REPO_ID}/resolve/main"
download_ok=1
for file in "${FILES[@]}"; do
dest="${VIBEVOICE_MODEL_DIR}/${file}"
if [ -f "${dest}" ]; then
echo " [skip] ${file} (already exists)"
else
echo " [download] ${file}..."
if ! curl -fL -o "${dest}" "${BASE_URL}/${file}" --progress-bar; then
echo " [warn] failed to download ${file} - network or HF unavailable"
rm -f "${dest}"
download_ok=0
break
fi
echo " [done] ${file}"
fi
done
if [ "$download_ok" != "1" ]; then
echo "vibevoice-cpp: model bundle unavailable - tests will skip model-dependent cases."
unset VIBEVOICE_MODEL_DIR
fi
fi
fi
# Ensure the per-variant .so the binary will dlopen actually exists -
# without one, every test will hit a Dlopen panic during server start.
if [ ! -f "${CURDIR}/libgovibevoicecpp-fallback.so" ]; then
echo "vibevoice-cpp: libgovibevoicecpp-fallback.so missing - run \`make\` first."
exit 1
fi
go test -v -timeout 900s .
echo "All vibevoice-cpp tests passed."