gpu: Add "main" file for Dawn perf tests target
Bug: dawn:208
Change-Id: I1cea34b19ac99f9bda6e916148075103cc7dcc60
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1764527
Reviewed-by: Kenneth Russell <[email protected]>
Commit-Queue: Austin Eng <[email protected]>
Cr-Commit-Position: refs/heads/master@{#689288}
diff --git a/gpu/dawn_perf_tests_main.cc b/gpu/dawn_perf_tests_main.cc
new file mode 100644
index 0000000..e24193c
--- /dev/null
+++ b/gpu/dawn_perf_tests_main.cc
@@ -0,0 +1,33 @@
+// Copyright 2019 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 "base/bind.h"
+#include "base/command_line.h"
+#include "base/message_loop/message_pump_type.h"
+#include "base/task/single_thread_task_executor.h"
+#include "base/test/launcher/unit_test_launcher.h"
+#include "base/test/test_suite.h"
+
+namespace {
+
+int RunHelper(base::TestSuite* test_suite) {
+ base::SingleThreadTaskExecutor io_task_executor(base::MessagePumpType::IO);
+ return test_suite->Run();
+}
+
+} // namespace
+
+// Definition located in third_party/dawn/src/tests/perf_tests/DawnPerfTest.h
+// Forward declared here to avoid pulling in the Dawn headers.
+void InitDawnPerfTestEnvironment(int argc, char** argv);
+
+int main(int argc, char** argv) {
+ base::CommandLine::Init(argc, argv);
+ InitDawnPerfTestEnvironment(argc, argv);
+
+ base::TestSuite test_suite(argc, argv);
+ int rt = base::LaunchUnitTestsSerially(
+ argc, argv, base::BindOnce(&RunHelper, base::Unretained(&test_suite)));
+ return rt;
+}