gomog/test_quick.sh

77 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
echo "=== 快速测试:服务器重启后数据加载 ==="
# 清理
rm -f gomog_test.db
# 创建配置
cat > config_test.yaml <<EOF
server:
http_addr: ":8081"
tcp_addr: ""
database:
type: "sqlite"
dsn: "gomog_test.db"
log:
level: "info"
EOF
echo "1. 启动服务器并插入 2 条数据..."
./bin/gomog -config config_test.yaml &
PID1=$!
sleep 3
curl -s -X POST http://localhost:8081/api/v1/testdb/users/insert \
-H "Content-Type: application/json" \
-d '{"documents": [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]}' | jq -s '.[0]'
sleep 1
echo ""
echo "2. 查询数据(应该有 2 条)..."
curl -s -X POST http://localhost:8081/api/v1/testdb/users/find \
-H "Content-Type: application/json" \
-d '{"filter": {}}' | jq -s '.[0].cursor.firstBatch | length'
echo ""
echo "3. 停止服务器..."
kill $PID1
sleep 2
echo ""
echo "4. 重启服务器..."
./bin/gomog -config config_test.yaml &
PID2=$!
sleep 3
echo ""
echo "5. 查询数据(重启后,应该仍有 2 条)..."
COUNT=$(curl -s -X POST http://localhost:8081/api/v1/testdb/users/find \
-H "Content-Type: application/json" \
-d '{"filter": {}}' | jq -s '.[0].cursor.firstBatch | length')
echo "查询到的数据条数:$COUNT"
if [ "$COUNT" -eq 2 ]; then
echo ""
echo "✅ 成功!服务器重启后正确加载了数据库中的数据"
RESULT="SUCCESS"
else
echo ""
echo "❌ 失败!期望 2 条数据,实际 $COUNT"
RESULT="FAILED"
fi
echo ""
echo "6. 查看数据库实际内容..."
sqlite3 gomog_test.db "SELECT json_extract(data, '$.name') as name FROM users;"
echo ""
echo "7. 清理..."
kill $PID2
rm -f config_test.yaml
echo ""
echo "=== 测试结果:$RESULT ==="