summaryrefslogtreecommitdiffstats
path: root/tools/valgrind/chrome_tests.bat
diff options
context:
space:
mode:
authortimurrrr@chromium.org <timurrrr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-26 14:28:19 +0000
committertimurrrr@chromium.org <timurrrr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-26 14:28:19 +0000
commit27710550ae77868337c2dff48211b52801e2c659 (patch)
tree9f5cc1e2a26af9bea4d19d4aeee1ef9011a2ba26 /tools/valgrind/chrome_tests.bat
parentf24d6ad5a912621a651c7134c74a8ad9897011af (diff)
downloadchromium_src-27710550ae77868337c2dff48211b52801e2c659.zip
chromium_src-27710550ae77868337c2dff48211b52801e2c659.tar.gz
chromium_src-27710550ae77868337c2dff48211b52801e2c659.tar.bz2
Modify tools/valgrind/chrome_tests.bat to support Dr. Memory from deps/third_party
Review URL: http://codereview.chromium.org/3119050 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57518 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/valgrind/chrome_tests.bat')
-rwxr-xr-xtools/valgrind/chrome_tests.bat60
1 files changed, 55 insertions, 5 deletions
diff --git a/tools/valgrind/chrome_tests.bat b/tools/valgrind/chrome_tests.bat
index d48b99b..4d2e78c 100755
--- a/tools/valgrind/chrome_tests.bat
+++ b/tools/valgrind/chrome_tests.bat
@@ -3,17 +3,67 @@
:: Use of this source code is governed by a BSD-style license that can be
:: found in the LICENSE file.
-set TSAN_PATH=%~dp0..\..\third_party\tsan
+set THISDIR=%~dp0
+set TOOL_NAME="unknown"
+
+:: Get the tool name and put it into TOOL_NAME {{{1
+:: NB: SHIFT command doesn't modify %*
+:PARSE_ARGS_LOOP
+ if %1 == () GOTO:TOOLNAME_NOT_FOUND
+ if %1 == --tool GOTO:TOOLNAME_FOUND
+ SHIFT
+ goto :PARSE_ARGS_LOOP
+
+:TOOLNAME_NOT_FOUND
+echo "Please specify a tool (tsan or drmemory) by using --tool flag"
+set %ERRORLEVEL% 1
+goto :EOF
+
+:TOOLNAME_FOUND
+SHIFT
+set TOOL_NAME=%1
+:: }}}
+if %TOOL_NAME% == drmemory GOTO :SETUP_DRMEMORY
+if %TOOL_NAME% == tsan GOTO :SETUP_TSAN
+echo "Unknown tool: %TOOL_NAME%! Only tsan and drmemory are supported right now"
+set %ERRORLEVEL% 1
+goto :EOF
+
+:SETUP_DRMEMORY
+:: Set up DRMEMORY_COMMAND to invoke Dr. Memory {{{1
+set DRMEMORY_PATH=%THISDIR%..\..\third_party\drmemory
+set DRMEMORY_SFX=%DRMEMORY_PATH%\drmemory-windows-sfx.exe
+if EXIST %DRMEMORY_SFX% GOTO DRMEMORY_BINARY_OK
+echo "Can't find Dr. Memory executables."
+echo "See http://www.chromium.org/developers/how-tos/using-valgrind/dr-memory"
+echo "for the instructions on how to get them."
+set %ERRORLEVEL% 1
+goto :EOF
+
+:DRMEMORY_BINARY_OK
+%DRMEMORY_SFX% -o%DRMEMORY_PATH%\unpacked -y
+set DRMEMORY_COMMAND=%DRMEMORY_PATH%\unpacked\exports32\bin\drmemory.exe -dr %DRMEMORY_PATH%\unpacked\exports
+:: }}}
+goto :RUN_TESTS
+
+:SETUP_TSAN
+:: Set up PIN_COMMAND to invoke TSan {{{1
+set TSAN_PATH=%THISDIR%..\..\third_party\tsan
set TSAN_SFX=%TSAN_PATH%\tsan-x86-windows-sfx.exe
-if EXIST %TSAN_SFX% GOTO BINARY_OK
+if EXIST %TSAN_SFX% GOTO TSAN_BINARY_OK
echo "Can't find ThreadSanitizer executables."
echo "See http://www.chromium.org/developers/how-tos/using-valgrind/threadsanitizer/threadsanitizer-on-windows"
echo "for the instructions on how to get them."
set %ERRORLEVEL% 1
goto :EOF
-:BINARY_OK
+:TSAN_BINARY_OK
%TSAN_SFX% -o%TSAN_PATH%\unpacked -y
set PIN_COMMAND=%TSAN_PATH%\unpacked\tsan-x86-windows\tsan.bat
-set PYTHONPATH=%~dp0../python/google
-python %~dp0/chrome_tests.py %*
+:: }}}
+goto :RUN_TESTS
+
+:RUN_TESTS
+set PYTHONPATH=%THISDIR%../python/google
+set RUNNING_ON_VALGRIND=yes
+python %THISDIR%/chrome_tests.py %*