mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
- New chromium clang rules require explicit external destructors so system/lib added for MessagePipe, DataPipe and SharedBuffer - New chromium clang rules require override and no virtual in declarations, so many files updated. - cc_strip_video patch updated. BUG= R=jamesr@chromium.org Review URL: https://codereview.chromium.org/988693005
78 lines
2.2 KiB
C++
78 lines
2.2 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 "sky/tools/tester/test_runner.h"
|
|
|
|
#include <iostream>
|
|
#include "base/bind.h"
|
|
#include "mojo/public/cpp/application/connect.h"
|
|
#include "mojo/services/view_manager/public/cpp/view.h"
|
|
|
|
namespace sky {
|
|
namespace tester {
|
|
|
|
TestRunnerClient::~TestRunnerClient() {
|
|
}
|
|
|
|
TestRunner::TestRunner(TestRunnerClient* client,
|
|
mojo::View* container,
|
|
const std::string& url,
|
|
bool enable_pixel_dumping)
|
|
: client_(client),
|
|
enable_pixel_dumping_(enable_pixel_dumping),
|
|
weak_ptr_factory_(this) {
|
|
CHECK(client);
|
|
|
|
mojo::ServiceProviderPtr test_harness_provider;
|
|
test_harness_provider_impl_.AddService(this);
|
|
test_harness_provider_impl_.Bind(GetProxy(&test_harness_provider));
|
|
|
|
container->Embed(url, nullptr, test_harness_provider.Pass());
|
|
}
|
|
|
|
TestRunner::~TestRunner() {
|
|
}
|
|
|
|
base::WeakPtr<TestRunner> TestRunner::GetWeakPtr() {
|
|
return weak_ptr_factory_.GetWeakPtr();
|
|
}
|
|
|
|
void TestRunner::OnTestStart() {
|
|
std::cout << "#BEGIN\n";
|
|
std::cout.flush();
|
|
}
|
|
|
|
void TestRunner::OnTestComplete(const std::string& test_result,
|
|
const mojo::Array<uint8_t>& pixels) {
|
|
std::cout << "Content-Type: text/plain\n";
|
|
std::cout << test_result << "\n";
|
|
std::cout << "#EOF\n";
|
|
|
|
// TODO(ojan): Don't generate the pixels if enable_pixel_dumping_ is false.
|
|
if (enable_pixel_dumping_) {
|
|
// TODO(ojan): Add real hashes here once we want to do pixel tests.
|
|
std::cout << "\nActualHash: FAKEHASHSTUB\n";
|
|
std::cout << "Content-Type: image/png\n";
|
|
std::cout << "Content-Length: " << pixels.size() << "\n";
|
|
CHECK(pixels.size()) << "Could not dump pixels. Did you call notifyTestComplete before the first paint?";
|
|
std::cout.write(
|
|
reinterpret_cast<const char*>(&pixels[0]), pixels.size());
|
|
}
|
|
|
|
std::cout << "#EOF\n";
|
|
std::cout.flush();
|
|
std::cerr << "#EOF\n";
|
|
std::cerr.flush();
|
|
|
|
client_->OnTestComplete();
|
|
}
|
|
|
|
void TestRunner::Create(mojo::ApplicationConnection* app,
|
|
mojo::InterfaceRequest<TestHarness> request) {
|
|
new TestHarnessImpl(this, request.Pass());
|
|
}
|
|
|
|
} // namespace tester
|
|
} // namespace sky
|