17dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Copyright (c) 2013 The Chromium Authors. All rights reserved. 27dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 37dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// found in the LICENSE file. 47dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 57dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "gtest/gtest.h" 67dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 77dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochTEST(TestCase, SimpleTest) { 87dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch EXPECT_EQ(4, 2*2); 97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 117dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochTEST(TestCase, AnotherTest) { 127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch EXPECT_EQ(4, sizeof(void*)); 137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#if defined(SEL_LDR) 167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochint main(int argc, char* argv[]) { 187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch ::testing::InitGoogleTest(&argc, argv); 197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return RUN_ALL_TESTS(); 207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#else 237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "ppapi/cpp/instance.h" 257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "ppapi/cpp/var.h" 267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "ppapi_simple/ps_main.h" 277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#if defined(WIN32) 297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include <Windows.h> 307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#undef PostMessage 317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif 327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass GTestEventListener : public ::testing::EmptyTestEventListener { 347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch public: 357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // TestEventListener overrides. 367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual void OnTestStart(const ::testing::TestInfo& test_info) { 377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch std::stringstream msg; 387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch msg << "start:" << test_info.test_case_name() << "." << test_info.name(); 397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch pp::Instance(PSGetInstanceId()).PostMessage(msg.str()); 407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual void OnTestPartResult( 437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const ::testing::TestPartResult& test_part_result) { 447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch if (test_part_result.failed()) { 457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch std::stringstream msg; 467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch msg << "fail:" << test_part_result.file_name() << "," 477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch << test_part_result.line_number() << "," 487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch << test_part_result.summary(); 497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch pp::Instance(PSGetInstanceId()).PostMessage(msg.str()); 507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual void OnTestEnd(const ::testing::TestInfo& test_info) { 547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch std::stringstream msg; 557dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch msg << "end:" << test_info.test_case_name() << "." << test_info.name() 567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch << "," << (test_info.result()->Failed() ? "failed" : "ok"); 577dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch pp::Instance(PSGetInstanceId()).PostMessage(msg.str()); 587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 597dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}; 607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 617dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochint example_main(int argc, char* argv[]) { 627dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch ::testing::InitGoogleTest(&argc, argv); 637dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch ::testing::UnitTest::GetInstance()->listeners() 647dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch .Append(new GTestEventListener()); 657dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return RUN_ALL_TESTS(); 667dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 677dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 687dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Register the function to call once the Instance Object is initialized. 697dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// see: pappi_simple/ps_main.h 707dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochPPAPI_SIMPLE_REGISTER_MAIN(example_main); 717dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 727dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif 73