Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(115)

Unified Diff: test/inspector-protocol/inspector-protocol.cc

Issue 2358943002: [inspector] added inspector protocol test runner (Closed)
Patch Set: a Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: test/inspector-protocol/inspector-protocol.cc
diff --git a/test/inspector-protocol/inspector-protocol.cc b/test/inspector-protocol/inspector-protocol.cc
new file mode 100644
index 0000000000000000000000000000000000000000..bca88e9781924b8c2a67943d4d028bb0e00e1fa1
--- /dev/null
+++ b/test/inspector-protocol/inspector-protocol.cc
@@ -0,0 +1,84 @@
+// 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.
+
+#include "include/libplatform/libplatform.h"
+#include "include/v8.h"
+
+#include "src/base/platform/platform.h"
+#include "src/flags.h"
+#include "src/inspector/string-util.h"
+
+#include "test/inspector-protocol/channel-impl.h"
+#include "test/inspector-protocol/inspector-client-impl.h"
+#include "test/inspector-protocol/inspector-extension.h"
+#include "test/inspector-protocol/load-extension.h"
+#include "test/inspector-protocol/set-timeout-extension.h"
+#include "test/inspector-protocol/task-queue.h"
+#include "test/inspector-protocol/task-runner.h"
+#include "test/inspector-protocol/task.h"
+#include "test/inspector-protocol/utils-extension.h"
+
+int main(int argc, char* argv[]) {
+ using namespace v8_inspector;
+
+ v8::V8::InitializeICUDefaultLocation(argv[0]);
+ v8::Platform* platform = v8::platform::CreateDefaultPlatform();
+ v8::V8::InitializePlatform(platform);
+ v8::internal::FlagList::SetFlagsFromCommandLine(&argc, argv, true);
+ v8::V8::InitializeExternalStartupData(argv[0]);
+ v8::V8::Initialize();
+
+ SetTimeoutExtension set_timeout_extension;
+ v8::RegisterExtension(&set_timeout_extension);
+ LoadExtension load_extension;
+ v8::RegisterExtension(&load_extension);
+ UtilsExtension utils_extension;
+ v8::RegisterExtension(&utils_extension);
+ BackendExtension backend_extension;
+ v8::RegisterExtension(&backend_extension);
+ FrontendExtension frontend_extension;
+ v8::RegisterExtension(&frontend_extension);
+
+ TaskQueue backend_queue;
+ FrontendExtension::set_backend_task_queue(&backend_queue);
+
+ TaskQueue frontend_queue;
+ BackendExtension::set_frontend_task_queue(&frontend_queue);
+
+ v8::base::Semaphore in_semaphore_(0);
+ TaskRunner backend_task_runner(&backend_queue);
+
+ const char* backend_extensions[] = {"v8_inspector/setTimeout",
+ "v8_inspector/backend"};
+ v8::ExtensionConfiguration backend_configuration(
+ arraysize(backend_extensions), backend_extensions);
+ backend_queue.Append(
+ new InitTask(&backend_configuration, &backend_task_runner, nullptr));
+ V8InspectorClientImpl inspector_client;
+ ChannelImpl channel(&frontend_queue);
+ backend_queue.Append(
+ new ConnectTask(&inspector_client, &channel, &in_semaphore_));
+ in_semaphore_.Wait();
+
+ TaskRunner frontend_task_runner(&frontend_queue);
+ const char* frontend_extensions[] = {
+ "v8_inspector/utils", "v8_inspector/load", "v8_inspector/frontend"};
+ v8::ExtensionConfiguration frontend_configuration(
+ arraysize(frontend_extensions), frontend_extensions);
+ frontend_queue.Append(new InitTask(&frontend_configuration,
+ &frontend_task_runner, &in_semaphore_));
+ in_semaphore_.Wait();
+
+ for (int i = 1; i < argc; ++i) {
+ if (argv[i][0] == '-') break;
+ const size_t kBufferSize = 1024;
+ char buffer[kBufferSize];
+ int written =
+ v8::base::OS::SNPrintF(buffer, kBufferSize, "load(\"%s\")", argv[i]);
+ CHECK(written != -1);
+ String16 source(buffer);
+ frontend_queue.Append(new ExecuteStringTask(toStringView(source)));
+ }
+ return 0;
+}

Powered by Google App Engine
This is Rietveld 408576698