| # Copyright 2016 The V8 project authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("../../gni/v8.gni") |
| |
| v8_executable("cctest") { |
| testonly = true |
| |
| sources = [ |
| "cctest.cc", |
| ] |
| |
| deps = [ |
| ":cctest_sources", |
| ] |
| |
| data_deps = [ |
| "../../tools:v8_testrunner", |
| ] |
| |
| data = [ |
| "testcfg.py", |
| "cctest.status", |
| "interpreter/bytecode_expectations/", |
| ] |
| |
| configs = [ |
| "../..:external_config", |
| "../..:internal_config_base", |
| ] |
| |
| ldflags = [] |
| |
| if (v8_use_perfetto) { |
| deps += [ "//third_party/perfetto/include/perfetto/tracing" ] |
| } |
| |
| # TODO(machenbach): Translate from gyp. |
| #["OS=="aix"", { |
| # "ldflags": [ "-Wl,-bbigtoc" ], |
| #}], |
| } |
| |
| v8_header_set("cctest_headers") { |
| testonly = true |
| |
| configs = [ |
| "../..:external_config", |
| "../..:internal_config_base", |
| ] |
| |
| sources = [ |
| "cctest.h", |
| ] |
| } |
| |
| v8_source_set("cctest_sources") { |
| testonly = true |
| |
| sources = [ |
| ### gcmole(all) ### |
| "../common/assembler-tester.h", |
| "../common/wasm/flag-utils.h", |
| "../common/wasm/test-signatures.h", |
| "../common/wasm/wasm-macro-gen.h", |
| "collector.h", |
| "compiler/c-signature.h", |
| "compiler/call-tester.h", |
| "compiler/code-assembler-tester.h", |
| "compiler/codegen-tester.cc", |
| "compiler/codegen-tester.h", |
| "compiler/function-tester.cc", |
| "compiler/function-tester.h", |
| "compiler/graph-builder-tester.h", |
| "compiler/serializer-tester.cc", |
| "compiler/serializer-tester.h", |
| "compiler/test-basic-block-profiler.cc", |
| "compiler/test-branch-combine.cc", |
| "compiler/test-code-assembler.cc", |
| "compiler/test-code-generator.cc", |
| "compiler/test-gap-resolver.cc", |
| "compiler/test-graph-visualizer.cc", |
| "compiler/test-instruction-scheduler.cc", |
| "compiler/test-instruction.cc", |
| "compiler/test-js-constant-cache.cc", |
| "compiler/test-js-context-specialization.cc", |
| "compiler/test-js-typed-lowering.cc", |
| "compiler/test-jump-threading.cc", |
| "compiler/test-linkage.cc", |
| "compiler/test-loop-analysis.cc", |
| "compiler/test-machine-operator-reducer.cc", |
| "compiler/test-multiple-return.cc", |
| "compiler/test-node.cc", |
| "compiler/test-operator.cc", |
| "compiler/test-representation-change.cc", |
| "compiler/test-run-bytecode-graph-builder.cc", |
| "compiler/test-run-calls-to-external-references.cc", |
| "compiler/test-run-deopt.cc", |
| "compiler/test-run-intrinsics.cc", |
| "compiler/test-run-jsbranches.cc", |
| "compiler/test-run-jscalls.cc", |
| "compiler/test-run-jsexceptions.cc", |
| "compiler/test-run-jsobjects.cc", |
| "compiler/test-run-jsops.cc", |
| "compiler/test-run-load-store.cc", |
| "compiler/test-run-machops.cc", |
| "compiler/test-run-native-calls.cc", |
| "compiler/test-run-retpoline.cc", |
| "compiler/test-run-stackcheck.cc", |
| "compiler/test-run-tail-calls.cc", |
| "compiler/test-run-unwinding-info.cc", |
| "compiler/test-run-variables.cc", |
| "compiler/value-helper.cc", |
| "compiler/value-helper.h", |
| "disasm-regex-helper.cc", |
| "disasm-regex-helper.h", |
| "expression-type-collector-macros.h", |
| "gay-fixed.cc", |
| "gay-fixed.h", |
| "gay-precision.cc", |
| "gay-precision.h", |
| "gay-shortest.cc", |
| "gay-shortest.h", |
| "heap/heap-tester.h", |
| "heap/heap-utils.cc", |
| "heap/heap-utils.h", |
| "heap/test-alloc.cc", |
| "heap/test-array-buffer-tracker.cc", |
| "heap/test-compaction.cc", |
| "heap/test-concurrent-marking.cc", |
| "heap/test-embedder-tracing.cc", |
| "heap/test-external-string-tracker.cc", |
| "heap/test-heap.cc", |
| "heap/test-incremental-marking.cc", |
| "heap/test-invalidated-slots.cc", |
| "heap/test-iterators.cc", |
| "heap/test-lab.cc", |
| "heap/test-mark-compact.cc", |
| "heap/test-page-promotion.cc", |
| "heap/test-spaces.cc", |
| "heap/test-unmapper.cc", |
| "heap/test-weak-references.cc", |
| "interpreter/bytecode-expectations-printer.cc", |
| "interpreter/bytecode-expectations-printer.h", |
| "interpreter/interpreter-tester.cc", |
| "interpreter/interpreter-tester.h", |
| "interpreter/source-position-matcher.cc", |
| "interpreter/source-position-matcher.h", |
| "interpreter/test-bytecode-generator.cc", |
| "interpreter/test-interpreter-intrinsics.cc", |
| "interpreter/test-interpreter.cc", |
| "interpreter/test-source-positions.cc", |
| "libplatform/test-tracing.cc", |
| "libsampler/test-sampler.cc", |
| "parsing/test-parse-decision.cc", |
| "parsing/test-preparser.cc", |
| "parsing/test-scanner-streams.cc", |
| "parsing/test-scanner.cc", |
| "print-extension.cc", |
| "print-extension.h", |
| "profiler-extension.cc", |
| "profiler-extension.h", |
| "scope-test-helper.h", |
| "setup-isolate-for-tests.cc", |
| "setup-isolate-for-tests.h", |
| "test-access-checks.cc", |
| "test-accessor-assembler.cc", |
| "test-accessors.cc", |
| "test-allocation.cc", |
| "test-api-accessors.cc", |
| "test-api-array-buffer.cc", |
| "test-api-interceptors.cc", |
| "test-api-stack-traces.cc", |
| "test-api-typed-array.cc", |
| "test-api.cc", |
| "test-api.h", |
| "test-array-list.cc", |
| "test-atomicops.cc", |
| "test-bignum-dtoa.cc", |
| "test-bignum.cc", |
| "test-bit-vector.cc", |
| "test-circular-queue.cc", |
| "test-code-layout.cc", |
| "test-code-stub-assembler.cc", |
| "test-compiler.cc", |
| "test-constantpool.cc", |
| "test-conversions.cc", |
| "test-cpu-profiler.cc", |
| "test-date.cc", |
| "test-debug.cc", |
| "test-decls.cc", |
| "test-deoptimization.cc", |
| "test-dictionary.cc", |
| "test-diy-fp.cc", |
| "test-double.cc", |
| "test-dtoa.cc", |
| "test-elements-kind.cc", |
| "test-factory.cc", |
| "test-fast-dtoa.cc", |
| "test-feedback-vector.cc", |
| "test-feedback-vector.h", |
| "test-field-type-tracking.cc", |
| "test-fixed-dtoa.cc", |
| "test-flags.cc", |
| "test-func-name-inference.cc", |
| "test-global-handles.cc", |
| "test-global-object.cc", |
| "test-hashcode.cc", |
| "test-hashmap.cc", |
| "test-heap-profiler.cc", |
| "test-icache.cc", |
| "test-identity-map.cc", |
| "test-inobject-slack-tracking.cc", |
| "test-inspector.cc", |
| "test-intl.cc", |
| "test-js-weak-refs.cc", |
| "test-liveedit.cc", |
| "test-lockers.cc", |
| "test-log.cc", |
| "test-managed.cc", |
| "test-mementos.cc", |
| "test-modules.cc", |
| "test-object.cc", |
| "test-orderedhashtable.cc", |
| "test-parsing.cc", |
| "test-platform.cc", |
| "test-profile-generator.cc", |
| "test-random-number-generator.cc", |
| "test-regexp.cc", |
| "test-representation.cc", |
| "test-roots.cc", |
| "test-sampler-api.cc", |
| "test-serialize.cc", |
| "test-smi-lexicographic-compare.cc", |
| "test-strings.cc", |
| "test-strtod.cc", |
| "test-symbols.cc", |
| "test-thread-termination.cc", |
| "test-threads.cc", |
| "test-trace-event.cc", |
| "test-traced-value.cc", |
| "test-transitions.cc", |
| "test-transitions.h", |
| "test-typedarrays.cc", |
| "test-types.cc", |
| "test-unboxed-doubles.cc", |
| "test-unscopables-hidden-prototype.cc", |
| "test-unwinder.cc", |
| "test-usecounters.cc", |
| "test-utils.cc", |
| "test-version.cc", |
| "test-weakmaps.cc", |
| "test-weaksets.cc", |
| "torque/test-torque.cc", |
| "trace-extension.cc", |
| "trace-extension.h", |
| "unicode-helpers.cc", |
| "unicode-helpers.h", |
| "wasm/test-c-wasm-entry.cc", |
| "wasm/test-jump-table-assembler.cc", |
| "wasm/test-run-wasm-64.cc", |
| "wasm/test-run-wasm-asmjs.cc", |
| "wasm/test-run-wasm-atomics.cc", |
| "wasm/test-run-wasm-atomics64.cc", |
| "wasm/test-run-wasm-bulk-memory.cc", |
| "wasm/test-run-wasm-exceptions.cc", |
| "wasm/test-run-wasm-interpreter.cc", |
| "wasm/test-run-wasm-js.cc", |
| "wasm/test-run-wasm-module.cc", |
| "wasm/test-run-wasm-sign-extension.cc", |
| "wasm/test-run-wasm-simd.cc", |
| "wasm/test-run-wasm.cc", |
| "wasm/test-streaming-compilation.cc", |
| "wasm/test-wasm-breakpoints.cc", |
| "wasm/test-wasm-codegen.cc", |
| "wasm/test-wasm-import-wrapper-cache.cc", |
| "wasm/test-wasm-interpreter-entry.cc", |
| "wasm/test-wasm-serialization.cc", |
| "wasm/test-wasm-shared-engine.cc", |
| "wasm/test-wasm-stack.cc", |
| "wasm/test-wasm-trap-position.cc", |
| "wasm/wasm-atomics-utils.h", |
| "wasm/wasm-run-utils.cc", |
| "wasm/wasm-run-utils.h", |
| ] |
| |
| if (use_jumbo_build) { |
| jumbo_excluded_sources = [ |
| # TODO(mostynb@opera.com): figure out the jumbo issues with these source |
| # files, and include them in jumbo compilation units. |
| "interpreter/bytecode-expectations-printer.cc", |
| "interpreter/test-bytecode-generator.cc", |
| "test-api.cc", |
| ] |
| } |
| |
| if (v8_current_cpu == "arm") { |
| sources += [ ### gcmole(arch:arm) ### |
| "assembler-helper-arm.cc", |
| "assembler-helper-arm.h", |
| "test-assembler-arm.cc", |
| "test-disasm-arm.cc", |
| "test-macro-assembler-arm.cc", |
| "test-poison-disasm-arm.cc", |
| "test-sync-primitives-arm.cc", |
| ] |
| } else if (v8_current_cpu == "arm64") { |
| sources += [ ### gcmole(arch:arm64) ### |
| "test-assembler-arm64.cc", |
| "test-disasm-arm64.cc", |
| "test-fuzz-arm64.cc", |
| "test-javascript-arm64.cc", |
| "test-js-arm64-variables.cc", |
| "test-macro-assembler-arm64.cc", |
| "test-poison-disasm-arm64.cc", |
| "test-sync-primitives-arm64.cc", |
| "test-utils-arm64.cc", |
| "test-utils-arm64.h", |
| ] |
| } else if (v8_current_cpu == "x86") { |
| sources += [ ### gcmole(arch:ia32) ### |
| "test-assembler-ia32.cc", |
| "test-disasm-ia32.cc", |
| "test-log-stack-tracer.cc", |
| ] |
| } else if (v8_current_cpu == "mips") { |
| sources += [ ### gcmole(arch:mips) ### |
| "test-assembler-mips.cc", |
| "test-disasm-mips.cc", |
| "test-macro-assembler-mips.cc", |
| ] |
| } else if (v8_current_cpu == "mipsel") { |
| sources += [ ### gcmole(arch:mipsel) ### |
| "test-assembler-mips.cc", |
| "test-disasm-mips.cc", |
| "test-macro-assembler-mips.cc", |
| ] |
| } else if (v8_current_cpu == "mips64") { |
| sources += [ ### gcmole(arch:mips64) ### |
| "test-assembler-mips64.cc", |
| "test-disasm-mips64.cc", |
| "test-macro-assembler-mips64.cc", |
| ] |
| } else if (v8_current_cpu == "mips64el") { |
| sources += [ ### gcmole(arch:mips64el) ### |
| "test-assembler-mips64.cc", |
| "test-disasm-mips64.cc", |
| "test-macro-assembler-mips64.cc", |
| ] |
| } else if (v8_current_cpu == "x64") { |
| sources += [ ### gcmole(arch:x64) ### |
| "test-assembler-x64.cc", |
| "test-disasm-x64.cc", |
| "test-log-stack-tracer.cc", |
| "test-macro-assembler-x64.cc", |
| ] |
| if (is_win) { |
| sources += [ "test-stack-unwinding-x64.cc" ] |
| } |
| } else if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") { |
| sources += [ ### gcmole(arch:ppc) ### |
| "test-assembler-ppc.cc", |
| "test-disasm-ppc.cc", |
| ] |
| } else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") { |
| sources += [ ### gcmole(arch:s390) ### |
| "test-assembler-s390.cc", |
| "test-disasm-s390.cc", |
| ] |
| } |
| |
| configs = [ |
| "../..:external_config", |
| "../..:internal_config_base", |
| ] |
| |
| public_deps = [ |
| ":cctest_headers", |
| "..:common_test_headers", |
| "../..:v8_for_testing", |
| "../..:v8_libbase", |
| "../..:v8_libplatform", |
| "../..:wasm_module_runner", |
| "//build/win:default_exe_manifest", |
| ] |
| |
| defines = [] |
| deps = [ |
| "../..:run_torque", |
| ] |
| |
| if (v8_enable_i18n_support) { |
| defines += [ "V8_INTL_SUPPORT" ] |
| public_deps += [ "//third_party/icu" ] |
| } else { |
| sources -= [ "test-intl.cc" ] |
| } |
| |
| cflags = [] |
| if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64" || |
| v8_current_cpu == "arm" || v8_current_cpu == "arm64" || |
| v8_current_cpu == "s390" || v8_current_cpu == "s390x" || |
| v8_current_cpu == "mips" || v8_current_cpu == "mips64" || |
| v8_current_cpu == "mipsel" || v8_current_cpu == "mipsel64") { |
| # Disable fmadd/fmsub so that expected results match generated code in |
| # RunFloat64MulAndFloat64Add1 and friends. |
| if (!is_win) { |
| cflags += [ "-ffp-contract=off" ] |
| } |
| } |
| |
| if (is_win) { |
| # This warning is benignly triggered by the U16 and U32 macros in |
| # bytecode-utils.h. |
| # C4309: 'static_cast': truncation of constant value |
| cflags += [ "/wd4309" ] |
| |
| # MSVS wants this for gay-{precision,shortest}.cc. |
| cflags += [ "/bigobj" ] |
| } |
| |
| if (v8_use_perfetto) { |
| deps += [ |
| "//third_party/perfetto/include/perfetto/tracing", |
| "//third_party/perfetto/protos/perfetto/trace/chrome:lite", |
| "//third_party/perfetto/protos/perfetto/trace/chrome:zero", |
| ] |
| } |
| } |
| |
| v8_executable("generate-bytecode-expectations") { |
| testonly = true |
| |
| sources = [ |
| "interpreter/bytecode-expectations-printer.cc", |
| "interpreter/bytecode-expectations-printer.h", |
| "interpreter/generate-bytecode-expectations.cc", |
| ] |
| |
| configs = [ |
| "../..:external_config", |
| "../..:internal_config_base", |
| ] |
| |
| deps = [ |
| ":cctest_headers", |
| "../..:v8", |
| "../..:v8_libbase", |
| "../..:v8_libplatform", |
| "//build/win:default_exe_manifest", |
| ] |
| |
| data = [ |
| "interpreter/bytecode_expectations/", |
| ] |
| } |