165 lines
5.8 KiB
Batchfile
165 lines
5.8 KiB
Batchfile
@echo off
|
||
REM ================================================================================================
|
||
REM Audio Backend - 测试环境准备脚本 (Windows)
|
||
REM ================================================================================================
|
||
REM 描述: 准备测试环境,包括创建必要的目录、准备测试资源等
|
||
REM ================================================================================================
|
||
|
||
setlocal EnableDelayedExpansion
|
||
|
||
REM 设置颜色输出
|
||
set "GREEN=[92m"
|
||
set "RED=[91m"
|
||
set "YELLOW=[93m"
|
||
set "BLUE=[94m"
|
||
set "NC=[0m"
|
||
|
||
REM 脚本所在的目录路径
|
||
set "SCRIPT_DIR=%~dp0"
|
||
REM 项目根目录
|
||
for %%i in ("%SCRIPT_DIR%\..\..\..\") do set "ROOT_DIR=%%~fi"
|
||
REM 测试结果目录
|
||
set "TEST_RESULTS_DIR=%ROOT_DIR%\test-results"
|
||
REM 测试资源目录
|
||
set "TEST_RESOURCES_DIR=%ROOT_DIR%\tests\integration\resources"
|
||
REM 测试临时目录
|
||
set "TEST_TEMP_DIR=%ROOT_DIR%\tests\integration\temp"
|
||
|
||
REM 打印脚本信息
|
||
echo %BLUE%=========================================================%NC%
|
||
echo %BLUE% 音频后端测试环境准备脚本 %NC%
|
||
echo %BLUE%=========================================================%NC%
|
||
echo %YELLOW%项目根目录: %ROOT_DIR%%NC%
|
||
echo.
|
||
|
||
REM 创建测试结果目录
|
||
echo 创建测试结果目录...
|
||
if not exist "%TEST_RESULTS_DIR%" mkdir "%TEST_RESULTS_DIR%"
|
||
if not exist "%TEST_RESULTS_DIR%\unit" mkdir "%TEST_RESULTS_DIR%\unit"
|
||
if not exist "%TEST_RESULTS_DIR%\integration" mkdir "%TEST_RESULTS_DIR%\integration"
|
||
if not exist "%TEST_RESULTS_DIR%\performance" mkdir "%TEST_RESULTS_DIR%\performance"
|
||
if not exist "%TEST_RESULTS_DIR%\coverage" mkdir "%TEST_RESULTS_DIR%\coverage"
|
||
|
||
REM 创建测试资源目录
|
||
echo 创建测试资源目录...
|
||
if not exist "%TEST_RESOURCES_DIR%" mkdir "%TEST_RESOURCES_DIR%"
|
||
if not exist "%TEST_RESOURCES_DIR%\plugins" mkdir "%TEST_RESOURCES_DIR%\plugins"
|
||
if not exist "%TEST_RESOURCES_DIR%\config" mkdir "%TEST_RESOURCES_DIR%\config"
|
||
if not exist "%TEST_RESOURCES_DIR%\audio" mkdir "%TEST_RESOURCES_DIR%\audio"
|
||
|
||
REM 创建测试临时目录
|
||
echo 创建测试临时目录...
|
||
if not exist "%TEST_TEMP_DIR%" mkdir "%TEST_TEMP_DIR%"
|
||
|
||
REM 清理旧的测试临时文件
|
||
echo 清理旧的测试临时文件...
|
||
REM 使用forfiles删除7天前的文件
|
||
if exist "%TEST_TEMP_DIR%" (
|
||
forfiles /p "%TEST_TEMP_DIR%" /d -7 /c "cmd /c del @path" 2>nul
|
||
if %ERRORLEVEL% neq 0 (
|
||
echo %YELLOW%警告: 无法清理旧临时文件。可能没有足够旧的文件或forfiles命令不可用。%NC%
|
||
)
|
||
)
|
||
|
||
REM 准备测试配置文件
|
||
echo 准备测试配置文件...
|
||
set "CONFIG_FILE=%TEST_RESOURCES_DIR%\config\system_config.json"
|
||
|
||
if not exist "%CONFIG_FILE%" (
|
||
echo 创建默认系统配置文件...
|
||
(
|
||
echo {
|
||
echo "sample_rate": 48000,
|
||
echo "channels": 2,
|
||
echo "buffer_size": 512,
|
||
echo "enable_simd": true,
|
||
echo "plugin_paths": ["%TEST_RESOURCES_DIR:\=\\%\\plugins"],
|
||
echo "log_level": "debug",
|
||
echo "engine_endpoint": "tcp://127.0.0.1:5557",
|
||
echo "enable_auto_reconnect": true
|
||
echo }
|
||
) > "%CONFIG_FILE%"
|
||
)
|
||
|
||
REM 准备测试音频文件
|
||
echo 准备测试音频文件...
|
||
set "TEST_AUDIO_FILE=%TEST_RESOURCES_DIR%\audio\test_tone.wav"
|
||
|
||
if not exist "%TEST_AUDIO_FILE%" (
|
||
echo 无测试音频文件,尝试生成...
|
||
|
||
REM 检查是否有sox用于生成测试音频
|
||
where sox.exe >nul 2>&1
|
||
if %ERRORLEVEL% equ 0 (
|
||
echo 使用sox生成测试音频文件...
|
||
sox -n -r 48000 -c 2 "%TEST_AUDIO_FILE%" synth 5.0 sine 440 vol 0.5
|
||
echo 生成测试音频文件: %TEST_AUDIO_FILE%
|
||
) else (
|
||
echo %YELLOW%警告: 未安装sox,无法生成测试音频文件。%NC%
|
||
echo %YELLOW%请手动准备试音频文件或安装sox: https://sourceforge.net/projects/sox/files/sox/ %NC%
|
||
|
||
REM 创建空文件作为占位符
|
||
type nul > "%TEST_AUDIO_FILE%"
|
||
)
|
||
)
|
||
|
||
REM 准备测试插件
|
||
echo 准备测试插件目录...
|
||
REM 注意:实际的测试插件需要单独构建或预先准备
|
||
|
||
REM 检查系统依赖
|
||
echo 检查系统依赖...
|
||
|
||
REM 检查是否安装了必要的测试工具
|
||
where cmake.exe >nul 2>&1
|
||
if %ERRORLEVEL% neq 0 (
|
||
echo %YELLOW%警告: 未找到CMake。请确CMake已安装并添加到PATH中。%NC%
|
||
)
|
||
|
||
where cl.exe >nul 2>&1
|
||
if %ERRORLEVEL% neq 0 (
|
||
echo %YELLOW%警告: 找到MSVC编译器。请确保Visual Studio已安装或开发者命令提示符已配置。%NC%
|
||
)
|
||
|
||
where vswhere.exe >nul 2>&1
|
||
if %ERRORLEVEL% neq 0 (
|
||
echo %YELLOW%警告: 未找到Visual Studio安装路径工具vswhere.exe。%NC%
|
||
) else (
|
||
for /f "usebackq tokens=*" %%i in (`vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do (
|
||
set "VS_INSTALL_PATH=%%i"
|
||
)
|
||
if not defined VS_INSTALL_PATH (
|
||
echo %YELLOW%警告: 未找到Visual Studio安装路径。%NC%
|
||
) else (
|
||
echo 找到Visual Studio安装路径: !VS_INSTALL_PATH!
|
||
)
|
||
)
|
||
|
||
REM 设置环境变量
|
||
echo 设置测试环境变量...
|
||
|
||
REM 将测试目录添加到PATH(如果需要的话)
|
||
set "PATH=%ROOT_DIR%\build\bin;%PATH%"
|
||
|
||
REM 设置测试临时目录环境变量
|
||
set "TEMP_TEST_DIR=%TEST_TEMP_DIR%"
|
||
set "TEST_RESOURCES=%TEST_RESOURCES_DIR%"
|
||
|
||
REM 保存环境变量到临时文件,以便其他脚本使用
|
||
set "ENV_FILE=%TEST_TEMP_DIR%\test_env.bat"
|
||
(
|
||
echo @echo off
|
||
echo REM 测试环境变量
|
||
echo set "PATH=%ROOT_DIR%\build\bin;%%PATH%%"
|
||
echo set "TEMP_TEST_DIR=%TEST_TEMP_DIR%"
|
||
echo set "TEST_RESOURCES=%TEST_RESOURCES_DIR%"
|
||
) > "%ENV_FILE%"
|
||
|
||
echo %GREEN%测试环境准完成!%NC%
|
||
echo 环境变量已保存: %ENV_FILE%
|
||
echo 测试资源目录: %TEST_RESOURCES_DIR%
|
||
echo 测试临时目录: %TEST_TEMP_DIR%
|
||
echo 测试结果目录: %TEST_RESULTS_DIR%
|
||
echo.
|
||
|
||
exit /b 0 |