build,test: run v8 tests on windows

`vcbuild.bat test-v8` : Runs unit test from v8 repo
`vcbuild.bat test-v8-intl` : Runs intl test from v8 repo
`vcbuild.bat test-v8` : Runs benchmarks from v8 repo

The runs needs
https://www.chromium.org/developers/how-tos/install-depot-tools
installed on the machine expects environment variable
`DEPOT_TOOLS_PATH` to be set to the path.

Set environment variable `DISABLE_V8_I18N` to disable i18n.

PR-URL: https://github.com/nodejs/node/pull/13992
Refs: https://github.com/nodejs/node/pull/4704
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
This commit is contained in:
Kunal Pathak 2017-06-28 15:24:52 -07:00
Родитель 77ca3cb474
Коммит 09dd6bbec6
2 изменённых файлов: 60 добавлений и 2 удалений

45
tools/test-v8.bat Normal file
Просмотреть файл

@ -0,0 +1,45 @@
if not defined DEPOT_TOOLS_PATH goto depot-tools-not-found
if "%config%"=="Debug" set test_args=%target_arch%.debug
if "%config%"=="Release" set test_args=%target_arch%.release
set savedpath=%path%
set path=%DEPOT_TOOLS_PATH%;%path%
pushd .
set ERROR_STATUS=0
echo calling: tools\make-v8.sh
sh tools\make-v8.sh
if errorlevel 1 set ERROR_STATUS=1&goto test-v8-exit
cd %~dp0
cd deps\v8
echo running 'python tools\dev\v8gen.py %test_args%'
call python tools\dev\v8gen.py %test_args%
if errorlevel 1 set ERROR_STATUS=1&goto test-v8-exit
echo running 'ninja -C out.gn/%test_args% %v8_build_options%'
call ninja -C out.gn/%test_args% %v8_build_options%
if errorlevel 1 set ERROR_STATUS=1&goto test-v8-exit
set path=%savedpath%
if not defined test_v8 goto test-v8-intl
echo running 'python tools\run-tests.py %common_v8_test_options% %v8_test_options% --junitout ./v8-tap.xml'
call python tools\run-tests.py %common_v8_test_options% %v8_test_options% --junitout ./v8-tap.xml
:test-v8-intl
if not defined test_v8_intl goto test-v8-benchmarks
echo running 'python tools\run-tests.py %common_v8_test_options% intl --junitout ./v8-intl-tap.xml'
call python tools\run-tests.py %common_v8_test_options% intl --junitout ./v8-intl-tap.xml
:test-v8-benchmarks
if not defined test_v8_benchmarks goto test-v8-exit
echo running 'python tools\run-tests.py %common_v8_test_options% benchmarks --junitout ./v8-benchmarks-tap.xml'
call python tools\run-tests.py %common_v8_test_options% benchmarks --junitout ./v8-benchmarks-tap.xml
goto test-v8-exit
:test-v8-exit
popd
if defined savedpath set path=%savedpath%
exit /b %ERROR_STATUS%
:depot-tools-not-found
echo Failed to find a suitable depot tools to test v8
exit /b 1

Просмотреть файл

@ -45,6 +45,8 @@ set build_addons_napi=
set test_node_inspect=
set test_check_deopts=
set js_test_suites=async-hooks inspector known_issues message parallel sequential
set v8_test_options=
set v8_build_options=
set "common_test_suites=%js_test_suites% doctool addons addons-napi&set build_addons=1&set build_addons_napi=1"
:next-arg
@ -83,6 +85,10 @@ if /i "%1"=="test-async-hooks" set test_args=%test_args% async-hooks&goto arg-o
if /i "%1"=="test-all" set test_args=%test_args% gc internet pummel %common_test_suites%&set build_testgc_addon=1&set cpplint=1&set jslint=1&goto arg-ok
if /i "%1"=="test-node-inspect" set test_node_inspect=1&goto arg-ok
if /i "%1"=="test-check-deopts" set test_check_deopts=1&goto arg-ok
if /i "%1"=="test-v8" set test_v8=1&set custom_v8_test=1&goto arg-ok
if /i "%1"=="test-v8-intl" set test_v8_intl=1&set custom_v8_test=1&goto arg-ok
if /i "%1"=="test-v8-benchmarks" set test_v8_benchmarks=1&set custom_v8_test=1&goto arg-ok
if /i "%1"=="test-v8-all" set test_v8=1&set test_v8_intl=1&set test_v8_benchmarks=1&set custom_v8_test=1&goto arg-ok
if /i "%1"=="jslint" set jslint=1&goto arg-ok
if /i "%1"=="jslint-ci" set jslint_ci=1&goto arg-ok
if /i "%1"=="lint" set cpplint=1&set jslint=1&goto arg-ok
@ -427,12 +433,18 @@ set USE_EMBEDDED_NODE_INSPECT=1
goto node-tests
:node-tests
if "%test_args%"=="" goto cpplint
if "%test_args%"=="" goto test-v8
if "%config%"=="Debug" set test_args=--mode=debug %test_args%
if "%config%"=="Release" set test_args=--mode=release %test_args%
echo running 'cctest %cctest_args%'
"%config%\cctest" %cctest_args%
call :run-python tools\test.py %test_args%
goto test-v8
:test-v8
if not defined custom_v8_test goto cpplint
call tools/test-v8.bat
if errorlevel 1 goto exit
goto cpplint
:cpplint
@ -503,7 +515,7 @@ echo Failed to create vc project files.
goto exit
:help
echo vcbuild.bat [debug/release] [msi] [test/test-ci/test-all/test-uv/test-inspector/test-internet/test-pummel/test-simple/test-message/test-async-hooks] [clean] [noprojgen] [small-icu/full-icu/without-intl] [nobuild] [sign] [x86/x64] [vs2015/vs2017] [download-all] [enable-vtune] [lint/lint-ci] [no-NODE-OPTIONS]
echo vcbuild.bat [debug/release] [msi] [test/test-ci/test-all/test-uv/test-inspector/test-internet/test-pummel/test-simple/test-message/test-async-hooks/test-v8/test-v8-intl/test-v8-benchmarks/test-v8-all] [clean] [noprojgen] [small-icu/full-icu/without-intl] [nobuild] [sign] [x86/x64] [vs2015/vs2017] [download-all] [enable-vtune] [lint/lint-ci] [no-NODE-OPTIONS]
echo Examples:
echo vcbuild.bat : builds release build
echo vcbuild.bat debug : builds debug build
@ -524,6 +536,7 @@ exit /b %ERRORLEVEL%
:exit
goto :EOF
rem ***************
rem Subroutines
rem ***************