@echo off
setlocal enabledelayedexpansion

REM Find Visual Studio installation and initialize the development environment
if exist "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" (
    call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
) else if exist "C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat" (
    call "C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat" x64
) else if exist "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" (
    call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
) else if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" (
    call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
) else if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat" (
    call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat" x64
) else if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" (
    call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
) else (
    echo Error: Could not find Visual Studio installation.
    echo Please make sure Visual Studio with C++ development tools is installed.
    exit /b 1
)

echo ===== Running Sauna Driver Integration Tests =====

echo.
echo Building integration tests...
cl /EHsc /std:c++17 /I"../../../headers" /Fe"integration_tests.exe" integration_test.cpp ../lighthouse_driver_wrapper.cpp ../imu_data_provider.cpp ../sauna_device_driver.cpp test_utils.cpp

if %ERRORLEVEL% neq 0 (
    echo Failed to build integration tests.
    exit /b %ERRORLEVEL%
)

echo.
echo Running integration tests...
echo Note: These tests require manual intervention and SteamVR to be installed but not running.
echo Please follow the instructions on screen.
echo.
integration_tests.exe

echo.
echo Integration tests completed.
pause