v8/tools
Tamer Tas 8c30a2ccc0 [testrunner] migrate testsuites to lazy loading
V8 test suites return tests by loading them into memory up-front. Up-front
loading has memory and loading-time overhead for the testrunner.

This CL converts the test-suites to load tests during the test run in parallel.

After CL, most test suites start running immediately and all test suites start
running after 3 seconds on a modern SSD.

This CL eliminates the 200 MiB memory spikes that causes memory problems in mac
minis.

Overhead of running test262 before CL:
Line #    Mem usage     Increment   Line Contents
=================================================
   264  225.760 MiB 195.8.000 MiB         tests = self._load_testsuite_generators(args, options)
-------------------------------------------------
Overhead of running test262 after CL:
Line #    Mem usage    Increment   Line Contents
================================================
   264   28.840 MiB    0.000 MiB         tests = self._load_testsuite_generators(args, options)
-------------------------------------------------

R=machenbach@chromium.org
CC=​​​yangguo@chromium.org,sergiyb@chromium.org

Bug: v8:8174, v8:8552, v8:8728
Change-Id: Iab540b9410239b05dc80b4a5228db25d8b8fb3b9
Reviewed-on: https://chromium-review.googlesource.com/c/1454478
Commit-Queue: Tamer Tas <tmrts@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59408}
2019-02-06 14:18:24 +00:00
..
blink_tests [test] Remove obsolete blink test skips 2019-01-18 12:30:23 +00:00
cfi [CFI] Expand blacklisted entries 2018-04-11 09:00:31 +00:00
clusterfuzz [foozzie] Remove obsolete asm comparison 2019-02-04 12:05:13 +00:00
dev [gm.py] Improve mksnapshot failure detection 2019-01-11 11:06:33 +00:00
gcmole Revert GC scheduling for external backing stores 2018-08-30 14:24:38 +00:00
generate_shim_headers Add dependency to ICU 4.6 2013-07-01 08:32:41 +00:00
heap-stats [heap-object-stats] Account PreparseData and scope_data together 2019-01-11 13:05:38 +00:00
ignition [Interpreter] Replace --ignition flag with a --stress-fullcodegen 2017-07-13 13:05:00 +00:00
jsfunfuzz [test] update the jsfunfuzz archive in Google Storage 2018-12-18 15:00:35 +00:00
link_clicker.extension [tools] Add link_click chrome extension 2017-05-09 15:25:21 +00:00
mb Fixed typos 2019-01-08 07:31:02 +00:00
memory [build] Fix win-asan compilation 2017-10-16 08:37:15 +00:00
msan [gn] Add missing dep and blacklist for msan 2016-07-29 09:01:24 +00:00
ninja [ycm] The YouCompleteMe configuration is not VIM specific. 2015-02-12 07:21:13 +00:00
node Revert "[node] accept multiple --extra-gn-args" 2019-02-04 17:02:10 +00:00
perf [tools] Refactor patch/no-patch terminology in run_perf.py 2017-11-22 07:19:50 +00:00
profview [profview] Use requestAnimationFrame to schedule a render 2019-01-15 13:08:46 +00:00
profviz [log] Improve log parsing 2018-06-20 13:40:22 +00:00
release Revert "[release] Temporarily remove two gpu bots from V8 auto-roller" 2019-01-29 09:54:48 +00:00
sanitizers Drop the two ICU entries from Tsan suppresion list 2018-11-04 06:11:51 +00:00
snapshot [Builtins] Infrastructure for source positions in stubs/builtins 2019-01-22 19:09:36 +00:00
sodium Add tool to visualize machine code/lithium. 2013-10-21 13:35:48 +00:00
testrunner [testrunner] migrate testsuites to lazy loading 2019-02-06 14:18:24 +00:00
toolchain [build] Add support for the other MIPS architectures 2018-03-19 10:43:07 +00:00
torque [torque] improve VSCode syntax highlighting more 2019-02-04 13:25:58 +00:00
turbolizer [turbolizer] Refactor View/PhaseView interfaces 2019-01-15 09:14:32 +00:00
ubsan [ubsan] Blacklist reports for *CallbackInfo 2019-01-25 02:24:53 +00:00
unittests Reland "Reland "[test] refactor testsuite configuration"" 2019-02-06 09:02:09 +00:00
v8.xcodeproj Add support for building Xcode project files from GYP files 2011-06-09 09:07:17 +00:00
valgrind/asan [build] Add testrunner data deps 2018-03-26 12:17:08 +00:00
vim [ycm] The YouCompleteMe configuration is not VIM specific. 2015-02-12 07:21:13 +00:00
visual_studio Remove the Visual Studio project files 2011-05-02 13:43:13 +00:00
wasm [wasm/tools] Add import profiler 2018-11-22 15:36:21 +00:00
__init__.py [test] make python recognize tools and tools/unittests as packages 2018-12-17 12:12:43 +00:00
adb-d8.py [tools] Various small adb-d8.py enhancements 2017-08-24 14:20:55 +00:00
android-build.sh Rewrite Makefile rules for Android to allow parallel execution 2012-07-27 11:14:44 +00:00
android-ll-prof.sh Change default ARCH version in android low-level profiler script to 4.6 2012-10-08 11:11:30 +00:00
android-run.py Bug fix: android-run.py 2016-07-18 09:45:23 +00:00
android-sync.sh [tools] Move common arguments processing into separate file 2017-10-24 00:25:04 +00:00
arguments.js [tools] Move common arguments processing into separate file 2017-10-24 00:25:04 +00:00
avg.py [tools] Improve avg.py script 2019-01-23 13:47:27 +00:00
bash-completion.sh [tools] Fix tools/bash-completion.sh for bool flags and harmony features 2015-12-10 10:01:39 +00:00
bigint-tester.py Remove always-true --harmony-bigint runtime flag 2018-10-01 11:31:13 +00:00
BUILD.gn [test] Fix predictable builder after swarming switch 2018-10-23 13:24:53 +00:00
callstats.html [tools] Clean up HTML for tools 2019-01-06 14:20:33 +00:00
callstats.py [tools] Always set --data-path for content_shell 2018-10-22 14:19:35 +00:00
callstats.py.vpython [tools] Fix platform specification for scipi 2018-08-17 18:49:49 +00:00
check-inline-includes.sh [iwyu] Extend inline include checking to tests. 2017-09-08 09:31:32 +00:00
check-static-initializers.sh Reland^3 r22105 "Remove static initializer from isolate" 2014-07-07 10:56:36 +00:00
check-unused-bailouts.sh [tools] Speed-up check-unused-bailouts.sh 2017-08-02 11:11:19 +00:00
check-unused-symbols.sh [cleanup] Remove unused heap-symbols and add tool. 2018-11-08 17:57:05 +00:00
codemap.js [builtins] Add kind specific flag for off-heap trampolines 2018-06-22 09:43:25 +00:00
collect_deprecation_stats.sh [objects] Deprecate GetIsolate/Heap behind a flag 2018-06-01 15:19:21 +00:00
compare-table-gen.js Add more exhaustive tests for Math.min and Math.max. 2015-04-10 12:35:16 +00:00
concatenate-files.py Fix common misspellings 2017-08-02 09:35:28 +00:00
consarray.js Make sure files end with exactly one new line and police this in presubmit. 2013-11-22 13:50:39 +00:00
cpu.sh [tools] Allow specifying cores for cpu.sh script. 2015-11-18 10:53:30 +00:00
cross_build_gcc.sh Fix tools/cross_build_gcc.sh. 2014-02-20 16:37:40 +00:00
csvparser.js Escape backslashes when logging. 2018-08-10 09:09:19 +00:00
deprecation_stats.py Introduce script to collect deprecation statistics 2018-11-28 15:02:24 +00:00
DEPS Add DEPS files and run checkdeps in presubmit check 2014-06-03 13:39:42 +00:00
detect-builtins.js [tools] Fix detect-builtins.js 2016-06-09 10:17:32 +00:00
disasm.py [grokdump] Include -z flag to make objdump disassemble all-zero sections 2017-04-21 13:35:37 +00:00
draw_instruction_graph.sh Rename A64 port to ARM64 port 2014-03-21 09:28:26 +00:00
dump-cpp.py [tools] Move common arguments processing into separate file 2017-10-24 00:25:04 +00:00
dumpcpp-driver.js [prof] Add slide offset in dumpcpp script 2016-05-30 08:56:59 +00:00
dumpcpp.js [log] Improve log parsing 2018-06-20 13:40:22 +00:00
eval_gc_nvp.py [tools] Compute percentiles for GC NVP 2016-04-08 12:05:59 +00:00
eval_gc_time.sh [in-place weak refs] Remove WeakCell 2018-08-14 08:05:05 +00:00
find_depot_tools.py Prototype for a client-side performance trybot script. 2014-11-18 14:40:00 +00:00
find-commit-for-patch.py Add tools/find-commit-for-patch.py 2014-12-16 14:25:00 +00:00
freebsd-tick-processor * Fix build errors on FreeBSD 8.2 2011-03-16 11:15:43 +00:00
fuzz-harness.sh [compiler] Make --debug-code the default in debug builds. 2016-12-02 11:36:55 +00:00
gc_nvp_common.py Clean up mark-compact phases and GC counter names. 2015-12-11 11:26:21 +00:00
gc-nvp-to-csv.py [tools] Add gc-nvp-to-csv.py script. 2015-06-19 10:40:47 +00:00
gc-nvp-trace-processor.py [tools] Add gc-nvp-to-csv.py script. 2015-06-19 10:40:47 +00:00
gdb-v8-support.py [tools] Add redirect gdb helper 2017-11-24 16:55:16 +00:00
gdbinit [gdb] Limit stack search when looking for DCHECK 2019-01-08 10:46:34 +00:00
gen-inlining-tests.py [turbofan] Remove --turbo shorthand for --turbo-filter. 2017-06-23 11:19:19 +00:00
gen-keywords-gen-h.py [parser] Remove #line directives from keywords-gen.h 2018-11-28 15:22:05 +00:00
gen-postmortem-metadata.py Update postmortem metadata generation script 2019-02-04 12:17:28 +00:00
generate-builtins-tests.py Add a script that can generate simple test cases for user-exposed JS builtins 2014-09-11 09:58:58 +00:00
generate-header-include-checks.py [wasm] Implement trap handler on Windows 2018-10-30 10:25:37 +00:00
generate-ten-powers.scm Fast double-to-ascii conversion. 2010-03-11 14:49:35 +00:00
get_landmines.py [build] Prepare removal of gyp-defines from landmine 2018-02-16 23:28:14 +00:00
grokdump.py Rename ShortExternalString to UncachedExternalString. 2018-08-27 16:54:03 +00:00
ic-explorer.html [tools] Clean up HTML for tools 2019-01-06 14:20:33 +00:00
ic-processor [tools] Move common arguments processing into separate file 2017-10-24 00:25:04 +00:00
ic-processor-driver.js [tools] Fix IC-Explorer drilldown and format file 2017-10-30 11:17:43 +00:00
ic-processor.js [tools] Make ic-processor print global loads/stores. 2019-01-18 12:35:43 +00:00
js2c.py [js] Remove macros.py and simplify js2c.py 2019-01-08 13:26:02 +00:00
linux-tick-processor [tools] Make tick processor report error to stderr. 2018-11-06 14:25:55 +00:00
ll_prof.py Fix annotated disassembly in ll_prof.py 2016-04-06 12:38:44 +00:00
lldb_commands.py Reland "Fix and extend lldbinit" 2018-07-13 07:40:19 +00:00
locs.py [tools] Also count input bytes in tools/locs.py 2019-02-04 09:34:28 +00:00
logreader.js [log] Improve log parsing 2018-06-20 13:40:22 +00:00
mac-nm [profiler] Graphical front-end for tick processor. 2017-03-04 13:04:58 +00:00
mac-tick-processor Implement shared libraries logging on Mac OS X, added required support in Tick Processor. 2009-07-14 05:01:06 +00:00
Makefile.tags [Makefile] Move tags generation to standalone Makefile 2018-01-26 12:03:32 +00:00
map-processor tick processor: fix arguments and comments 2018-10-29 09:48:23 +00:00
map-processor-driver.js [tools] All new shiny maptracer.html 2017-12-18 12:48:00 +00:00
map-processor.html [tools] Clean up HTML for tools 2019-01-06 14:20:33 +00:00
map-processor.js [tools] Add file positions to map-explorer 2018-11-29 11:42:25 +00:00
mips_toolchain.tar.gz.sha1 [build] Enable downloading mips toolchain via runhooks 2018-01-31 14:38:43 +00:00
objdump-v8 [disasm] Make jump target printing perf friendly 2017-03-20 14:47:04 +00:00
OWNERS Add initial set of sub directory OWNERS file 2015-04-02 08:46:24 +00:00
parse-processor tick processor: fix arguments and comments 2018-10-29 09:48:23 +00:00
parse-processor-driver.js [tools] New parse processor tool 2017-12-20 13:07:17 +00:00
parse-processor.html [tools] Clean up HTML for tools 2019-01-06 14:20:33 +00:00
parse-processor.js [tools] Improve function event logging and parse processor 2018-07-16 14:05:14 +00:00
perf-compare.py Reland "Reland "[test] Creating command before execution phase."" 2017-12-04 13:40:29 +00:00
plot-timer-events tick processor: fix arguments and comments 2018-10-29 09:48:23 +00:00
predictable_wrapper.py [tools] Add -d/--device options to all test launchers 2019-02-06 09:10:09 +00:00
PRESUBMIT.py [tools] Clean up presubmit and run all unittests 2019-02-01 10:27:29 +00:00
profile_view.js Tick processor: improved [Summary] section 2014-08-04 08:31:49 +00:00
profile.js [profview] Avoid treating embedded builtins as CPP code. 2018-09-27 12:14:15 +00:00
run_perf.py [tools] Add -d/--device options to all test launchers 2019-02-06 09:10:09 +00:00
run-clang-tidy.py [clang-tidy] Suppress compiler flag 2018-10-26 13:44:19 +00:00
run-llprof.sh Fix tools/run-llprof.sh to work with newer perf. 2014-10-09 06:01:41 +00:00
run-num-fuzzer.py [test] Implement gc fuzzer with test processors 2018-01-19 16:58:49 +00:00
run-perf.sh [tools] run-perf: ensure command line arguments are prepended 2016-10-05 15:15:38 +00:00
run-tests.py TestRunner initial refactor 2017-10-13 08:52:28 +00:00
run.py First cut at run_mksnapshot action for gn 2014-06-03 06:50:46 +00:00
shell-utils.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
SourceMap.js Add source map support to tick processor. 2013-08-23 17:20:54 +00:00
splaytree.js Remove support for logging into a memory buffer. 2011-07-13 11:31:22 +00:00
stats-viewer.py Fix common misspellings 2017-08-02 09:35:28 +00:00
test262-results-parser.js test262 roll 2018-08-28 21:18:23 +00:00
tick-processor.html [tools] Clean up HTML for tools 2019-01-06 14:20:33 +00:00
tickprocessor-driver.js [d8] pass --no-arguments to omit top-level arguments 2018-10-31 07:42:22 +00:00
tickprocessor.js Delete dead/debug code in (tick|ic|map)processor.js. 2018-08-16 12:31:02 +00:00
trace-maps-processor.py Add FLAG_trace_maps 2014-11-07 16:03:44 +00:00
try_perf.py [tools] Add new swarming bots and remove support for Buildbot perf trybots 2019-01-16 11:35:49 +00:00
turbolizer-perf.py [turbolizer] Fixed naming of turbolizer perf script. 2016-07-28 12:38:00 +00:00
update-object-macros-undef.py Add script to auto-generate object-macros-undef.h 2018-11-22 11:32:36 +00:00
v8_presubmit.py [testrunner] remove recursive result calls in chain processors 2019-01-30 13:04:07 +00:00
v8heapconst.py Reland "[serializer] share class positions tuple across contexts" 2019-02-06 10:43:59 +00:00
whitespace.txt Whitespace change to trigger bots 2019-02-01 14:25:02 +00:00
windows-tick-processor.bat [tools] Move common arguments processing into separate file 2017-10-24 00:25:04 +00:00