0
Files
src/gin/shell_runner_unittest.cc
Ulan Degenbaev 51945ab84f Make IsolateHolder aware of the isolate type.
This introduces four isolate types (main, worker, utility, test) and
stores the isolate type in IsolateHolder.

V8's memory dump provider will group memory dumps by the isolate type,
which is necessary for UMA/UKM reporting of V8's memory metrics.

Bug: chromium:852415
Change-Id: Id9a31404e6bc62562545518aaa4e35cae00a97d6
Reviewed-on: https://chromium-review.googlesource.com/1183194
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585480}
2018-08-23 14:12:58 +00:00

56 lines
1.6 KiB
C++

// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "gin/shell_runner.h"
#include "base/compiler_specific.h"
#include "base/test/scoped_task_environment.h"
#include "base/threading/thread_task_runner_handle.h"
#include "gin/array_buffer.h"
#include "gin/converter.h"
#include "gin/public/isolate_holder.h"
#include "gin/v8_initializer.h"
#include "testing/gtest/include/gtest/gtest.h"
#ifdef V8_USE_EXTERNAL_STARTUP_DATA
#include "gin/public/isolate_holder.h"
#endif
using v8::Isolate;
using v8::Object;
using v8::Script;
using v8::String;
namespace gin {
TEST(RunnerTest, Run) {
base::test::ScopedTaskEnvironment scoped_task_environment;
std::string source = "this.result = 'PASS';\n";
#ifdef V8_USE_EXTERNAL_STARTUP_DATA
gin::V8Initializer::LoadV8Snapshot();
gin::V8Initializer::LoadV8Natives();
#endif
gin::IsolateHolder::Initialize(gin::IsolateHolder::kStrictMode,
gin::IsolateHolder::kStableV8Extras,
gin::ArrayBufferAllocator::SharedInstance());
gin::IsolateHolder instance(base::ThreadTaskRunnerHandle::Get(),
gin::IsolateHolder::IsolateType::kTest);
ShellRunnerDelegate delegate;
Isolate* isolate = instance.isolate();
ShellRunner runner(&delegate, isolate);
Runner::Scope scope(&runner);
runner.Run(source, "test_data.js");
std::string result;
EXPECT_TRUE(Converter<std::string>::FromV8(isolate,
runner.global()->Get(StringToV8(isolate, "result")),
&result));
EXPECT_EQ("PASS", result);
}
} // namespace gin