testrunner.cc revision 46bf5c8663bd0b7be0809d3d5ea6a844f4c6219f
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 LOG(INFO) << "started"; 21 ::g_type_init(); 22 dbus_threads_init_default(); 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 LOG(INFO) << "parsing command line arguments"; 32 CommandLine::Init(argc, argv); 33 LOG(INFO) << "initializing gtest"; 34 ::testing::InitGoogleTest(&argc, argv); 35 LOG(INFO) << "running unit tests"; 36 int test_result = RUN_ALL_TESTS(); 37 LOG(INFO) << "unittest return value: " << test_result; 38 return test_result; 39} 40