v8/test/cctest
jgruber f86365dc73 [builtins] Properly handle cctest heap creation in embedded builds
Some cctests force fresh creation of heap constants, even though the
cctest binary itself is an embedded snapshot build (i.e.: a snapshot
blob exists, and a binary-embedded blob exists). This breaks a few
assumptions, for example that off-heap builtins have a single,
canonical off-heap code range.

Unfortunately this isn't that easy to fix. I see a few alternatives:

1. In builtins setup, if an embedded blob exists, regenerate the
builtins for their metadata (things like the safepoint table offset),
and then replace them by off-heap trampolines.

2. As above, but deserialize the trampolines from the snapshot blob.

3. As above, but pack required metadata into the embedded blob and
create trampolines from there.

4. Act as if the embedded blob does not exist.

Alternative 1 does not work because the generated code can be slightly
different at at runtime vs. mksnapshot-time. Alternative 2 is out
because we do not have access to the snapshot blob in TestIsolate
setup. Alternative 3 is probably the preferred option but would be a
more involved change.

This CL takes path 4. It's not an optimal solution, but it can be
replace by alternative 3 later.

TBR=ulan@chromium.org

Bug: v8:7718, v8:7751
Change-Id: I36c024cb0179615011c886ed3978bc95f0d197ac
Reviewed-on: https://chromium-review.googlesource.com/1098924
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53886}
2018-06-20 13:38:52 +00:00
..
compiler [GetIsolate] Remove GetIsolate from src/objects/* 2018-06-20 12:46:22 +00:00
heap Reland "[runtime][gc] Drop AllocationSite::weak_next field for sub-literals" 2018-06-20 11:00:59 +00:00
interpreter [GetIsolate] Remove GetIsolate from src/objects/* 2018-06-20 12:46:22 +00:00
libplatform [tracing] Custom tag for the traceEvents array 2018-05-07 16:54:59 +00:00
libsampler Include only stuff you need, part 6: Fix cctest.h. 2016-09-01 12:02:16 +00:00
parsing [GetIsolate] Remove GetIsolate in simple cases 2018-06-11 11:02:59 +00:00
torque [torque] add hex literals 2018-06-05 11:48:53 +00:00
wasm [wasm] Move the NativeModule to the WasmModuleObject 2018-06-20 08:13:59 +00:00
assembler-helper-arm.cc Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
assembler-helper-arm.h Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
BUILD.gn [intl] Port getAvailableLocales to C++ 2018-06-19 19:52:38 +00:00
cctest.cc [wasm] Add new API for enabling trap handler 2018-03-20 18:06:38 +00:00
cctest.h [V8Platform] Remove deprecated Background threads APIs and make new APIs pure virtual. 2018-05-16 23:27:02 +00:00
cctest.status [builtins] Properly handle cctest heap creation in embedded builds 2018-06-20 13:38:52 +00:00
DEPS [torque]: Add the ability to test Torque functionality with cctest 2018-05-13 10:58:56 +00:00
expression-type-collector-macros.h [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
gay-fixed.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-fixed.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
gay-precision.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-precision.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
gay-shortest.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-shortest.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
log-eq-of-logging-and-traversal.js Reland "[logging] Use OFStream for log events" 2017-10-20 22:47:01 +00:00
OWNERS [MIPS] Add Sreten Kovacevic as owner of MIPS files 2018-02-09 15:35:49 +00:00
print-extension.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
print-extension.h [iwyu] More iwyu fixes (date, execution etc.) 2018-02-26 08:59:59 +00:00
profiler-extension.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
profiler-extension.h Introduce v8::CpuProfiler::New and v8::CpuProfiler::Dispose API. 2016-07-08 15:01:10 +00:00
scope-test-helper.h Fix a Jumbo breakage 2018-05-29 14:36:48 +00:00
setup-isolate-for-tests.cc [heap] remove heap init from shipping binary. 2017-09-07 05:24:49 +00:00
setup-isolate-for-tests.h [heap] remove heap init from shipping binary. 2017-09-07 05:24:49 +00:00
test-access-checks.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
test-accessor-assembler.cc [in-place weak refs] Replace WeakCells in StubCache. 2018-05-23 14:53:26 +00:00
test-accessors.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-allocation.cc Fix [Memory] Add OnCriticalMemoryPressure overload to v8::Platform. 2017-12-26 10:55:07 +00:00
test-api-accessors.cc [debug] expose SideEffectType when setting template accessors 2018-04-24 22:52:48 +00:00
test-api-interceptors.cc [debug] expose SideEffectType for whitelisting embedder callbacks 2018-04-04 20:08:00 +00:00
test-api.cc [cctest] Bump max old space size for isolate creation 2018-06-19 08:01:07 +00:00
test-api.h Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-array-list.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-assembler-arm64.cc [arm64] Use direct calls where possible. 2018-04-30 15:02:27 +00:00
test-assembler-arm.cc Reland "Introduce StdoutStream which prints to Android log or stdout" 2018-06-14 13:29:01 +00:00
test-assembler-ia32.cc Reland "Introduce StdoutStream which prints to Android log or stdout" 2018-06-14 13:29:01 +00:00
test-assembler-mips64.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-assembler-mips.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-assembler-ppc.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-assembler-s390.cc s390: Optimize branches by brxh/brxhg 2018-06-15 17:56:23 +00:00
test-assembler-x64.cc Reland "Introduce StdoutStream which prints to Android log or stdout" 2018-06-14 13:29:01 +00:00
test-atomicops.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-bignum-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-bignum.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-bit-vector.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-circular-queue.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-code-layout.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-code-stub-assembler.cc [explicit isolates] Remove GetIsolates from Map 2018-06-19 09:59:58 +00:00
test-code-stubs-arm64.cc [arm64] Use direct calls where possible. 2018-04-30 15:02:27 +00:00
test-code-stubs-arm.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-code-stubs-ia32.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-code-stubs-mips64.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-code-stubs-mips.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-code-stubs-x64.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-code-stubs.cc [ubsan] Fix many static_cast<int32_t> with undefined behavior 2018-04-17 02:02:18 +00:00
test-code-stubs.h [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-compiler.cc [reland] [in-place weak refs] Replace WeakCells in FeedbackVector. 2018-05-23 07:43:27 +00:00
test-constantpool.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-conversions.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-cpu-profiler.cc [cpu-profiler] Add a new profiling mode with a more detailed call tree. 2018-05-23 09:23:40 +00:00
test-date.cc Reland "Implement a new spec for timezone offset calculation" 2018-04-04 22:42:30 +00:00
test-debug.cc Don't expose GetFunction on the scope iterator. Simply take it into account for GetFunctionDebugName 2018-06-18 12:03:59 +00:00
test-decls.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-deoptimization.cc Pass Isolate pointer to String::Utf8Value/Value constructors 2017-08-28 18:17:08 +00:00
test-dictionary.cc [iwyu] objects-inl.h iwyu 2018-05-17 15:14:02 +00:00
test-disasm-arm64.cc [arm64] Support CSDB instruction 2018-02-21 10:33:32 +00:00
test-disasm-arm.cc [arm] Fix SplitAddImmediate test on Armv6. 2018-04-23 17:00:36 +00:00
test-disasm-ia32.cc Reland "Introduce StdoutStream which prints to Android log or stdout" 2018-06-14 13:29:01 +00:00
test-disasm-mips64.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-disasm-mips.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-disasm-ppc.cc [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-disasm-s390.cc s390: assembler-s390 instruction format cleanup 2018-06-07 18:23:01 +00:00
test-disasm-x64.cc Reland "Introduce StdoutStream which prints to Android log or stdout" 2018-06-14 13:29:01 +00:00
test-diy-fp.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-double.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-elements-kind.cc [GetIsolate] Remove GetIsolate from src/objects/* 2018-06-20 12:46:22 +00:00
test-experimental-extra.js Add experimental, non-snapshotted V8 extras 2015-08-20 00:01:14 +00:00
test-extra.js [turbofan] Properly optimize calls to promise extras. 2018-02-16 19:46:30 +00:00
test-fast-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-feedback-vector.cc [reland] [in-place weak refs] Replace WeakCells in FeedbackVector. 2018-05-23 07:43:27 +00:00
test-feedback-vector.h [objects] Merge SFI outer_scope_info and feedback_metadata 2018-04-06 15:06:04 +00:00
test-field-type-tracking.cc [explicit isolates] Remove GetIsolates from Map 2018-06-19 09:59:58 +00:00
test-fixed-dtoa.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-flags.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-func-name-inference.cc [cctest] Add FuncNameInferrer coverage for arrow functions 2017-12-14 21:34:39 +00:00
test-fuzz-arm64.cc [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-global-handles.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-global-object.cc Revert "[infra] Add gc_stats variant to Linux64 debug bot" 2018-05-29 06:13:07 +00:00
test-hashcode.cc [GetIsolate] Remove GetIsolate from src/objects/* 2018-06-20 12:46:22 +00:00
test-hashmap.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-heap-profiler.cc Drop parameter names from ScopeInfo 2018-06-19 13:26:09 +00:00
test-identity-map.cc Change IdentityMap::Delete signature 2018-04-20 11:27:59 +00:00
test-inobject-slack-tracking.cc Reland "[bigint] Add BigInt64Array, BigUint64Array" 2018-02-19 10:23:18 +00:00
test-inspector.cc [inspector] postpone API interrupts during creation of injected script 2018-06-05 18:04:44 +00:00
test-intl.cc [intl] Port getAvailableLocales to C++ 2018-06-19 19:52:38 +00:00
test-isolate-independent-builtins.cc [builtins] Disallow internal references in embedded builtins 2018-06-11 07:41:58 +00:00
test-javascript-arm64.cc [jumbo] arm64 cctest fixes 2017-09-30 17:17:23 +00:00
test-js-arm64-variables.cc [jumbo] arm64 cctest fixes 2017-09-30 17:17:23 +00:00
test-liveedit.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-lockers.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-log-stack-tracer.cc [ptr-compr] Support 31-bit Smis in lower half-word on 64-bit architectures. 2018-06-05 11:37:35 +00:00
test-log.cc [log] fix boolean logic on LogCodeObject 2018-06-18 08:12:38 +00:00
test-macro-assembler-arm.cc Reland "Introduce StdoutStream which prints to Android log or stdout" 2018-06-14 13:29:01 +00:00
test-macro-assembler-mips64.cc Reland "Introduce StdoutStream which prints to Android log or stdout" 2018-06-14 13:29:01 +00:00
test-macro-assembler-mips.cc Reland "Introduce StdoutStream which prints to Android log or stdout" 2018-06-14 13:29:01 +00:00
test-macro-assembler-x64.cc [ptr-compr] Support 31-bit Smis in lower half-word on 64-bit architectures. 2018-06-05 11:37:35 +00:00
test-managed.cc Add size estimate to Managed<T> 2018-05-30 10:26:21 +00:00
test-mementos.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-modules.cc [api,modules] Allow GetModuleNamespace on unevaluated modules. 2018-01-08 09:01:25 +00:00
test-object.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-orderedhashtable.cc [GetIsolate] Remove GetIsolate from src/objects/* 2018-06-20 12:46:22 +00:00
test-parsing.cc Reland "[debugger] Rewrite the ScopeIterator/DebugEvaluate to use Scope rather than ScopeInfo for inner scopes." 2018-06-18 09:25:29 +00:00
test-platform.cc [Memory] Create memory management API in v8::internal. 2017-12-15 18:49:47 +00:00
test-profile-generator.cc [cpu-profiler] Add a new profiling mode with a more detailed call tree. 2018-05-23 09:23:40 +00:00
test-random-number-generator.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-regexp.cc Remove always-true --harmony-regexp-named-captures runtime flag 2018-06-05 08:27:08 +00:00
test-representation.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-sampler-api.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-serialize.cc [builtins] Properly handle cctest heap creation in embedded builds 2018-06-20 13:38:52 +00:00
test-strings.cc Reland "[heap] Mark RO_SPACE as read-only after deserialization" 2018-05-09 08:31:49 +00:00
test-strtod.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-symbols.cc Reland "Introduce StdoutStream which prints to Android log or stdout" 2018-06-14 13:29:01 +00:00
test-sync-primitives-arm64.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-sync-primitives-arm.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-thread-termination.cc Reland "[inspector] added timeout for Debugger.evaluateOnCallFrame method" 2018-04-26 15:08:52 +00:00
test-threads.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-trace-event.cc [tracing] add INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP 2018-05-02 17:44:54 +00:00
test-traced-value.cc Avoid octal escape sequences 2017-12-01 15:08:14 +00:00
test-transitions.cc [explicit isolates] Remove GetIsolates from Map 2018-06-19 09:59:58 +00:00
test-transitions.h [explicit isolates] Eliminate GetIsolate from transitions.cc 2018-06-05 11:00:43 +00:00
test-typedarrays.cc Reland "[builtins] Separate species protectors for Array, TypedArray, Promise" 2018-04-23 17:52:50 +00:00
test-types.cc [turbofan] Remove unused Type::Of. 2018-05-28 08:11:38 +00:00
test-unbound-queue.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-unboxed-doubles.cc [explicit isolates] Remove GetIsolates from Map 2018-06-19 09:59:58 +00:00
test-unscopables-hidden-prototype.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-usecounters.cc [parser] Remove incorrect UseCounter code for LabeledExpressionStatement 2018-01-06 00:17:43 +00:00
test-utils-arm64.cc [arm64] Remove remaining instances of csp 2018-01-18 18:07:18 +00:00
test-utils-arm64.h [arm64] Remove remaining instances of csp 2018-01-18 18:07:18 +00:00
test-utils.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
test-version.cc [build] Introduce an embedder version string 2017-10-05 07:17:45 +00:00
test-weakmaps.cc Use EphemeronHashTable as backing store for JSWeakCollection 2018-06-07 09:04:37 +00:00
test-weaksets.cc Use EphemeronHashTable as backing store for JSWeakCollection 2018-06-07 09:04:37 +00:00
testcfg.py [test] Remove context usage from test processors 2018-02-01 10:35:02 +00:00
trace-extension.cc [ptr-compr] Support 31-bit Smis in lower half-word on 64-bit architectures. 2018-06-05 11:37:35 +00:00
trace-extension.h [iwyu] More iwyu fixes (date, execution etc.) 2018-02-26 08:59:59 +00:00
types-fuzz.h [turbofan] Introduce JS heap broker. 2018-06-07 07:45:16 +00:00
unicode-helpers.h Implement DFA Unicode Decoder 2017-12-11 21:36:13 +00:00