@ECHO OFF REM Copyright (c) 2011 The Chromium Authors. All rights reserved. REM Use of this source code is governed by a BSD-style license that can be REM found in the LICENSE file. REM REM Purpose of this file: If you have IE9 on your machine, not all of REM the Chrome Frame tests will currently pass. To run the tests on REM a VM or separate machine, you need to copy a bunch of things over REM (the tests run slowly or flakily over a network drive). REM REM To facilitate running the tests on a separate machine, Run this REM batch file on a VM or a separate machine, that has a drive mapped REM to your dev machine (so that it can access your dev workspace). REM REM Before running this file, you need to build all the chrome_frame REM targets plus chrome.dll and chrome.exe on your dev machine. Run REM the copy of this file that exists in the same workspace that you REM want to test. REM REM NOTE: I've seen cases where a Vista VM under Virtual PC will fail REM to copy all of the files from the dev machine, and doing e.g. REM [ dir j:\src\chrome\src\chrome\debug ] (assuming j:\src\chrome\src REM is your workspace on the dev machine) shows an empty filing listing REM when run from the VM, whereas your workspace actually just built REM a ton of stuff in that directory. Just be aware of it, and check REM what files you actually have in the local copy on the VM after REM running this script. If you encounter this issue, a reboot of the REM VM seems to help. setlocal REM Get the path to the build tree's src directory. CALL :_canonicalize "%~dp0..\.." SET FROM=%RET% REM Read OUTPUT and/or BUILDTYPE from command line. FOR %%a IN (%1 %2) do ( IF "%%a"=="out" SET OUTPUT=out IF "%%a"=="build" SET OUTPUT=build IF "%%a"=="Debug" SET BUILDTYPE=Debug IF "%%a"=="Release" SET BUILDTYPE=Release ) CALL :_find_build IF "%OUTPUT%%BUILDTYPE%"=="" ( ECHO No build found to copy. EXIT 1 ) set CLIENT_ROOT=%FROM% SET INSTALL_ROOT=\trybot @ECHO ON IF NOT EXIST "%INSTALL_ROOT%" mkdir "%INSTALL_ROOT%" cd %INSTALL_ROOT% rmdir /s /q base rmdir /s /q %OUTPUT%\%BUILDTYPE% rmdir /s /q chrome_frame mkdir base mkdir %OUTPUT%\%BUILDTYPE% mkdir chrome_frame\test\data mkdir chrome_frame\test\html_util_test_data mkdir net\data mkdir net\tools\testserver mkdir third_party\pyftpdlib mkdir third_party\pylib mkdir third_party\python_26 mkdir third_party\pywebsocket mkdir third_party\tlslite copy %CLIENT_ROOT%\base\base_paths_win.cc base\base_paths_win.cc xcopy %CLIENT_ROOT%\%OUTPUT%\%BUILDTYPE% %OUTPUT%\%BUILDTYPE% /E /EXCLUDE:%CLIENT_ROOT%\chrome_frame\test\poor_mans_trybot_xcopy_filter.txt xcopy %CLIENT_ROOT%\chrome_frame\test\data chrome_frame\test\data /E xcopy %CLIENT_ROOT%\net\data net\data /E xcopy %CLIENT_ROOT%\net\tools\testserver net\tools\testserver /E xcopy %CLIENT_ROOT%\third_party\pyftpdlib third_party\pyftpdlib /E xcopy %CLIENT_ROOT%\third_party\pylib third_party\pylib /E xcopy %CLIENT_ROOT%\third_party\python_26 third_party\python_26 /E xcopy %CLIENT_ROOT%\third_party\pywebsocket third_party\pywebsocket /E xcopy %CLIENT_ROOT%\third_party\tlslite third_party\tlslite /E xcopy %CLIENT_ROOT%\chrome_frame\test\html_util_test_data chrome_frame\test\html_util_test_data /E copy %CLIENT_ROOT%\chrome_frame\CFInstance.js chrome_frame\CFInstance.js copy %CLIENT_ROOT%\chrome_frame\CFInstall.js chrome_frame\CFInstall.js @ECHO OFF echo ************************************ echo DO THE FOLLOWING IN AN ADMIN PROMPT: echo ********************************* echo %INSTALL_ROOT%\%OUTPUT%\%BUILDTYPE%\chrome_frame_unittests.exe echo %INSTALL_ROOT%\%OUTPUT%\%BUILDTYPE%\chrome_frame_tests.exe echo %INSTALL_ROOT%\%OUTPUT%\%BUILDTYPE%\chrome_frame_net_tests.exe goto end :usage echo "Usage: poor_mans_trybot.bat [out|build] [Debug|Release]" :end GOTO :EOF REM All labels henceforth are subroutines intended to be invoked by CALL. REM Canonicalize the first argument, returning it in RET. :_canonicalize SET RET=%~f1 GOTO :EOF REM Search for a npchrome_frame.dll in the candidate build outputs. :_find_build IF "%OUTPUT%"=="" ( SET OUTPUTS=out build ) ELSE ( SET OUTPUTS=%OUTPUT% SET OUTPUT= ) IF "%BUILDTYPE%"=="" ( SET BUILDTYPES=Debug Release ) ELSE ( SET BUILDTYPES=%BUILDTYPE% SET BUILDTYPE= ) FOR %%o IN (%OUTPUTS%) DO ( FOR %%f IN (%BUILDTYPES%) DO ( IF EXIST "%FROM%\%%o\%%f\npchrome_frame.dll" ( SET OUTPUT=%%o SET BUILDTYPE=%%f GOTO :EOF ) ) ) GOTO :EOF