testrunner.cc revision 0b4a6ffb20e83aea7e5616be07bebb2f09ac85da
1// Copyright (c) 2012 The Chromium OS 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// based on pam_google_testrunner.cc
6
7#include <base/at_exit.h>
8#include <base/command_line.h>
9#include <dbus/dbus-glib.h>
10#include <dbus/dbus-glib-bindings.h>
11#include <dbus/dbus-glib-lowlevel.h>
12#include <glib.h>
13#include <glib-object.h>
14#include <gtest/gtest.h>
15
16#include "update_engine/subprocess.h"
17#include "update_engine/terminator.h"
18
19int main(int argc, char **argv) {
20  ::g_type_init();
21  g_thread_init(NULL);
22  dbus_g_thread_init();
23  base::AtExitManager exit_manager;
24  // TODO(garnold) temporarily cause the unittest binary to exit with status
25  // code 2 upon catching a SIGTERM. This will help diagnose why the unittest
26  // binary is perceived as failing by the buildbot.  We should revert it to use
27  // the default exit status of 1.  Corresponding reverts are necessary in
28  // terminator_unittest.cc.
29  chromeos_update_engine::Terminator::Init(2);
30  chromeos_update_engine::Subprocess::Init();
31  CommandLine::Init(argc, argv);
32  ::testing::InitGoogleTest(&argc, argv);
33  int test_result = RUN_ALL_TESTS();
34  LOG(INFO) << "unittest return value: " << test_result;
35  return test_result;
36}
37