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#include "ppapi/cpp/instance.h" 77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "ppapi/cpp/var.h" 87dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "ppapi_simple/ps_main.h" 97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#if defined(WIN32) 117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include <Windows.h> 127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#undef PostMessage 137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif 147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciTEST(TestCase, SimpleTest) { 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(4, 2*2); 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciTEST(TestCase, AnotherTest) { 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(1, sizeof(char)); 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass GTestEventListener : public ::testing::EmptyTestEventListener { 247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch public: 257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // TestEventListener overrides. 267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual void OnTestStart(const ::testing::TestInfo& test_info) { 277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch std::stringstream msg; 287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch msg << "start:" << test_info.test_case_name() << "." << test_info.name(); 297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch pp::Instance(PSGetInstanceId()).PostMessage(msg.str()); 307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual void OnTestPartResult( 337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const ::testing::TestPartResult& test_part_result) { 347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch if (test_part_result.failed()) { 357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch std::stringstream msg; 367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch msg << "fail:" << test_part_result.file_name() << "," 377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch << test_part_result.line_number() << "," 387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch << test_part_result.summary(); 397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch pp::Instance(PSGetInstanceId()).PostMessage(msg.str()); 407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual void OnTestEnd(const ::testing::TestInfo& test_info) { 447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch std::stringstream msg; 457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch msg << "end:" << test_info.test_case_name() << "." << test_info.name() 467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch << "," << (test_info.result()->Failed() ? "failed" : "ok"); 477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch pp::Instance(PSGetInstanceId()).PostMessage(msg.str()); 487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}; 507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochint example_main(int argc, char* argv[]) { 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci setenv("TERM", "xterm-256color", 0); 537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch ::testing::InitGoogleTest(&argc, argv); 541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (PSGetInstanceId() != 0) { 551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ::testing::UnitTest::GetInstance()->listeners() 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci .Append(new GTestEventListener()); 571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return RUN_ALL_TESTS(); 597dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 617dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Register the function to call once the Instance Object is initialized. 627dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// see: pappi_simple/ps_main.h 637dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochPPAPI_SIMPLE_REGISTER_MAIN(example_main); 64