@joebigelow / wix / commits / d2582c7b

Added some more modifications to the Sandbox. It will now prompt for configuring the Remote Debugger if it can find it on the host when doing the setup. And will prompt within the Sandbox to run the Debugger at startup if found It will also show the host-local IP address to connect to the debugger.

Added some more modifications to the Sandbox. It will now prompt for configuring the Remote Debugger if it can find it on the host when doing the setup. And will prompt within the Sandbox to run the Debugger at startup if found It will also show the host-local IP address to connect to the debugger. In addition, it will display a small menu to allow for simple selection of a particular runtests.cmd version to execute. I still haven't found a good way to get a debugger attached into the msiexec environment without already having a coded breakpoint in, however. Also added this sandbox folder to .gitignore, so that artifacts from here aren't committed into the repo Signed-off-by: Bevan Weiss <bevan.weiss@gmail.com>

Bevan Weiss committed Jun 22, 2024 at 03:37 UTC d2582c7bdbb09513849b36a49b5f992c2bc58e78
4 files changed +80 -6
.gitignore
+3
@@ -409,3 +409,6 @@ src/test/burn/TestData/Manual/BundleB/PackagePayloads
409 # Allow the projects that end in ".Cab"
410 !src/dtf/test/WixToolset.Dtf.Compression.Cab
411 !src/dtf/test/WixToolsetTests.Dtf.Compression.Cab
412 +
413 +#ignore the Sandbox
414 +src/test/sandbox/
src/test/sandbox/runtest_menu.bat new
+51
@@ -0,0 +1,51 @@
1 +@setlocal EnableDelayedExpansion
2 +@echo off
3 +
4 +for /f "tokens=2 delims=[]" %%a in ('ping -n 1 -4 ""') do set IPAddr=%%a
5 +@if %PROCESSOR_ARCHITECTURE%=="ARM64" (
6 + @if exist C:\sandbox\Debugger\ARM64\msvsmon.exe (
7 + set MsVsMonPath=C:\sandbox\Debugger\ARM64\msvsmon.exe
8 + )
9 +) else (
10 + @if exist C:\sandbox\Debugger\x64\msvsmon.exe (
11 + set MsVsMonPath=C:\sandbox\Debugger\x64\msvsmon.exe
12 + )
13 +)
14 +
15 +:TestSelect
16 +cls
17 +REM Show the test select menu
18 +set index=0
19 +if not "%MsVsMonPath%"=="" (
20 + echo [!index!] Run Remote Debugger SandboxIP=%IPAddr%
21 + set "option[!index!]=%MsVsMonPath%"
22 +)
23 +
24 +for /f %%i in ('where /R c:\build runtests.cmd') do (
25 + set /A "index+=1"
26 + echo [!index!] %%i
27 + set "option[!index!]=%%i!"
28 +)
29 +echo [q] Quit
30 +
31 +set /P "SelectTest=Please Choose The Test You Want To Execute: "
32 +if "%SelectTest%"=="q" Goto End
33 +if defined option[%SelectTest%] Goto TestSet
34 +
35 +:TestError
36 +cls
37 +Echo ERROR: Invalid Test Selected!!
38 +pause
39 +goto TestSelect
40 +
41 +:TestSet
42 +set "TestIs=!option[%SelectTest%]!"
43 +for %%a in (%TestIs%) do set FileDir=%%~dpa
44 +for %%a in (%TestIs%) do set FileName=%%~nxa
45 +start /D %FileDir% %FileName%
46 +if %SelectTest%==0 (
47 +goto TestSelect
48 +)
49 +
50 +:End
51 +@endlocal
\ No newline at end of file
src/test/sandbox/setup_sandbox.bat
+25 -5
@@ -1,16 +1,36 @@
1 @setlocal
2 -@SET DOTNET_VERSION=8.0
2 +@echo off
3 +SET DOTNET_VERSION=8.0
4
4 -@if not exist AMD64 (mkdir AMD64)
5 -@if not exist ARM64 (mkdir ARM64)
6 -@REM if not exist VSTest (mkdir VSTest)
5 +if not exist AMD64 (mkdir AMD64)
6 +if not exist ARM64 (mkdir ARM64)
7 +REM if not exist VSTest (mkdir VSTest)
8
9 +@echo on
10 curl -L0 https://aka.ms/dotnet/%DOTNET_VERSION%/dotnet-runtime-win-x64.zip --output ".\AMD64\dotnet-runtime.zip"
11 curl -L0 https://aka.ms/dotnet/%DOTNET_VERSION%/dotnet-sdk-win-x64.zip --output ".\AMD64\dotnet-sdk.zip"
12 curl -L0 https://aka.ms/dotnet/%DOTNET_VERSION%/dotnet-runtime-win-arm64.zip --output ".\ARM64\dotnet-runtime.zip"
13 curl -L0 https://aka.ms/dotnet/%DOTNET_VERSION%/dotnet-sdk-win-arm64.zip --output ".\ARM64\dotnet-sdk.zip"
14 +@echo off
15
13 -REM "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -prerelease
16 +REM curl -L0 https://aka.ms/vs/17/release/RemoteTools.amd64ret.enu.exe --output ".\AMD64\RemoteTools.exe"
17 +REM curl -L0 https://aka.ms/vs/17/release/RemoteTools.arm64ret.enu.exe --output ".\ARM64\RemoteTools.exe"
18
19 +for /f "usebackq tokens=*" %%i in (`"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -requires Microsoft.VisualStudio.Debugger.Remote -property installationPath`) do (
20 + set VsInstallDir=%%i
21 +)
22 +if "!VsInstallDir!"=="" (
23 + for /f "usebackq tokens=*" %%i in (`"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -prerelease -latest -requires Microsoft.VisualStudio.Debugger.Remote -property installationPath`) do (
24 + set VsInstallDir=%%i
25 + )
26 +)
27 +if "!VsInstallDir!"=="" (
28 + set /P "Confirm=Have found VisualStudio Debugger at '%VsInstallDir%', Do you wish to copy it for use by the Sandbox? (Y / N):"
29 + if "%Confirm%"=="Y" (
30 + XCOPY "%VsInstallDir%\Common7\IDE\Remote Debugger\*" ".\Debugger\" /E
31 + )
32 +)
33
34 +
35 +pause
36 @endlocal
src/test/sandbox/startup.bat
+1 -1
@@ -45,4 +45,4 @@ dotnet help
45
46 @popd
47 cd c:\build
48 -start cmd
48 +start cmd /c C:\sandbox\runtest_menu.bat