Home | History | Annotate | Download | only in nacl_io_test
      1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include <string>
      6 
      7 #include "gtest/gtest.h"
      8 #include "ppapi/cpp/instance.h"
      9 #include "ppapi/cpp/var.h"
     10 #include "ppapi_simple/ps_main.h"
     11 
     12 #if defined(WIN32)
     13 #include <Windows.h>
     14 #undef PostMessage
     15 #endif
     16 
     17 class GTestEventListener : public ::testing::EmptyTestEventListener {
     18  public:
     19   // TestEventListener overrides.
     20   virtual void OnTestStart(const ::testing::TestInfo& test_info) {
     21     std::stringstream msg;
     22     msg << "start:" << test_info.test_case_name() << "." << test_info.name();
     23     pp::Instance(PSGetInstanceId()).PostMessage(msg.str());
     24   }
     25 
     26   virtual void OnTestPartResult(
     27       const ::testing::TestPartResult& test_part_result) {
     28     if (test_part_result.failed()) {
     29       std::stringstream msg;
     30       msg << "fail:" << test_part_result.file_name() << ","
     31           << test_part_result.line_number() << ","
     32           << test_part_result.summary();
     33       pp::Instance(PSGetInstanceId()).PostMessage(msg.str());
     34     }
     35   }
     36 
     37   virtual void OnTestEnd(const ::testing::TestInfo& test_info) {
     38     std::stringstream msg;
     39     msg << "end:" << test_info.test_case_name() << "." << test_info.name()
     40         << "," << (test_info.result()->Failed() ? "failed" : "ok");
     41     pp::Instance(PSGetInstanceId()).PostMessage(msg.str());
     42   }
     43 };
     44 
     45 int example_main(int argc, char* argv[]) {
     46   setenv("TERM", "xterm-256color", 0);
     47   ::testing::InitGoogleTest(&argc, argv);
     48   if (PSGetInstanceId() != 0) {
     49     ::testing::UnitTest::GetInstance()->listeners()
     50         .Append(new GTestEventListener());
     51   }
     52   return RUN_ALL_TESTS();
     53 }
     54 
     55 // Register the function to call once the Instance Object is initialized.
     56 // see: pappi_simple/ps_main.h
     57 PPAPI_SIMPLE_REGISTER_MAIN(example_main);
     58