chromium/components/exo/wayland/compatibility_test/client_compatibility_test_server.cc

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "base/functional/bind.h"
#include "base/task/single_thread_task_runner.h"
#include "components/exo/wayland/clients/test/wayland_client_test_server.h"
#include "components/exo/wayland/compatibility_test/client_compatibility_test.h"

namespace exo {
namespace wayland {
namespace compatibility {
namespace test {
namespace {

class CompatibilityTestSuiteServer : public WaylandClientTestSuiteServer {
 public:
  using WaylandClientTestSuiteServer::WaylandClientTestSuiteServer;

  CompatibilityTestSuiteServer(const CompatibilityTestSuiteServer&) = delete;
  CompatibilityTestSuiteServer& operator=(const CompatibilityTestSuiteServer&) =
      delete;

  void SetClientTestUIThreadTaskRunner(
      scoped_refptr<base::SingleThreadTaskRunner> ui_thread_task_runner)
      override {
    ClientCompatibilityTest::SetUIThreadTaskRunner(
        std::move(ui_thread_task_runner));
  }
};

std::unique_ptr<WaylandClientTestSuiteServer> MakeServer(int argc,
                                                         char** argv) {
  return std::make_unique<CompatibilityTestSuiteServer>(argc, argv);
}

}  // namespace
}  // namespace test
}  // namespace compatibility
}  // namespace wayland
}  // namespace exo

int main(int argc, char** argv) {
  return exo::WaylandClientTestSuiteServer::TestMain(
      argc, argv,
      base::BindOnce(&exo::wayland::compatibility::test::MakeServer));
}