Files
arcs/third_party/AI2T_LingXinEngine/switch_to_test_mode.sh
2026-08-13 16:50:52 +08:00

91 lines
4.0 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# 切换到测试模式的脚本
# 功能:
# 1. lingxin_chat_api_inner.h文件中打开LINGXIN_TEST宏
# 2. 在lingxin_test_runner.c文件中修改TEST_WS_IP宏的IP值
# 3. 询问是否需要走自动化压测,是则进行音量修改和请求路径修改
set -e # 遇到错误立即退出
echo "开始切换到测试模式..."
CHAT_API_H_FILE="./src/inc/lingxin_chat_api_inner.h"
LINGXIN_TEST_RUNNER_C_FILE="./tests/lingxin_test_runner.c"
LINGXIN_COMMON_H_FILE="./src/inc/lingxin_common.h"
# 步骤1在lingxin_chat_api_inner.h文件中打开LINGXIN_TEST宏
echo "步骤1在lingxin_chat_api_inner.h文件中打开LINGXIN_TEST宏"
# 检查lingxin_chat_api_inner.h文件中是否已存在LINGXIN_TEST宏定义
if grep -q "^#define LINGXIN_TEST" "$CHAT_API_H_FILE"; then
echo "✓ LINGXIN_TEST宏已经打开"
else
# 查找有无注释掉的宏
if grep -q "// #define LINGXIN_TEST" "$CHAT_API_H_FILE"; then
# 使用perl命令替换注释掉的宏
perl -i -pe 's|// #define LINGXIN_TEST|#define LINGXIN_TEST|g' "$CHAT_API_H_FILE"
echo "✓ LINGXIN_TEST宏打开成功"
else
echo "✗ 在lingxin_chat_api_inner.h文件中找不到可打开的LINGXIN_TEST宏定义"
fi
fi
# 步骤2在lingxin_test_runner.c文件中修改TEST_WS_IP宏的IP值
echo "步骤2在lingxin_test_runner.c文件中修改TEST_WS_IP宏的IP值"
# 询问用户是否要更改测试WebSocket IP地址
read -p "请输入测试服务器IP地址默认为公网IP 8.154.30.254 " test_ws_ip
if [[ -z "$test_ws_ip" ]]; then
test_ws_ip="8.154.30.254"
fi
# 使用perl命令替换现有的IP地址
perl -i -pe "s/#define TEST_WS_IP \\\"[0-9.]+\\\"/#define TEST_WS_IP \\\"$test_ws_ip\\\"/" "$LINGXIN_TEST_RUNNER_C_FILE"
echo "✓ 已更新TEST_WS_IP宏定义为: $test_ws_ip"
# 步骤3询问是否需要走自动化压测是则进行音量修改和请求路径修改
echo "步骤3询问是否需要走自动化压测是则进行音量修改和请求路径修改"
# 询问用户是否要进行自动化压测配置
read -p "是否要进行自动化压测配置?(y/n): " enable_stress_test
if [[ $enable_stress_test == "y" || $enable_stress_test == "Y" ]]; then
# 3.1 修改音量设置
echo "正在修改音量设置..."
if grep -q "set_volume(40)" "$LINGXIN_TEST_RUNNER_C_FILE"; then
perl -i -pe 's/set_volume\(40\)/set_volume(1)/' "$LINGXIN_TEST_RUNNER_C_FILE"
echo "✓ 已将音量从40修改为1"
else
echo "✗ 未找到set_volume(40),跳过音量修改"
fi
# 3.2 修改REQUEST_URL
echo "正在修改REQUEST_URL..."
if grep -q '#define REQUEST_URL "eagent.edu-aliyun.com"' "$LINGXIN_COMMON_H_FILE"; then
perl -i -pe "s/#define REQUEST_URL \\\"eagent.edu-aliyun.com\\\"/#define REQUEST_URL \\\"$test_ws_ip\\\"/" "$LINGXIN_COMMON_H_FILE"
echo "✓ 已将REQUEST_URL修改为: $test_ws_ip"
else
echo "✗ 未找到REQUEST_URL定义跳过修改"
fi
# 3.3 修改WEBSOCKET_CHAT_PATH
echo "正在修改WEBSOCKET_CHAT_PATH..."
if grep -q '#define WEBSOCKET_CHAT_PATH "gw/ws/open/api/v1/unifiedAccess"' "$LINGXIN_COMMON_H_FILE"; then
perl -i -pe 's/#define WEBSOCKET_CHAT_PATH "gw\/ws\/open\/api\/v1\/unifiedAccess"/#define WEBSOCKET_CHAT_PATH ""/' "$LINGXIN_COMMON_H_FILE"
echo "✓ 已将WEBSOCKET_CHAT_PATH修改为空字符串"
else
echo "✗ 未找到WEBSOCKET_CHAT_PATH定义跳过修改"
fi
echo "✓ 自动化压测配置完成!"
else
echo "跳过自动化压测配置"
fi
echo "✓ 测试模式切换完成!"
echo ""
echo "注意事项:"
echo "- 脚本已自动在lingxin_chat_api_inner.h文件中打开LINGXIN_TEST宏"
echo "- 脚本已自动在lingxin_test_runner.c文件中修改TEST_WS_IP宏的IP值"
if [[ $enable_stress_test == "y" || $enable_stress_test == "Y" ]]; then
echo "- 脚本已自动进行自动化压测配置,已修改音量设置和请求路径"
fi
echo "- 请重新编译项目以使更改生效"
echo "- 要切换回普通模式可以运行switch_to_normal_mode.sh脚本"