gtest_main.cpp revision b1a885b014540a2f7798b5a35ea0f0ec150d93ee
1323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui/* 2323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui * Copyright (C) 2015 The Android Open Source Project 3323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui * 4323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui * Licensed under the Apache License, Version 2.0 (the "License"); 5323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui * you may not use this file except in compliance with the License. 6323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui * You may obtain a copy of the License at 7323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui * 8323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui * http://www.apache.org/licenses/LICENSE-2.0 9323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui * 10323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui * Unless required by applicable law or agreed to in writing, software 11323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui * distributed under the License is distributed on an "AS IS" BASIS, 12323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui * See the License for the specific language governing permissions and 14323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui * limitations under the License. 15323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui */ 16323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui 17323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui#include <gtest/gtest.h> 18323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui 1966dd09e8e2407082ce93bf0784de641298131912Elliott Hughes#include <android-base/logging.h> 20323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui 21569f64afd3db2b43003978765b833669f99477d2Yabin Cui#include "get_test_data.h" 22569f64afd3db2b43003978765b833669f99477d2Yabin Cui#include "utils.h" 23569f64afd3db2b43003978765b833669f99477d2Yabin Cui 24569f64afd3db2b43003978765b833669f99477d2Yabin Cuistatic std::string testdata_dir; 25569f64afd3db2b43003978765b833669f99477d2Yabin Cui 26323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cuiint main(int argc, char** argv) { 27323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui InitLogging(argv, android::base::StderrLogger); 28323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui testing::InitGoogleTest(&argc, argv); 29569f64afd3db2b43003978765b833669f99477d2Yabin Cui for (int i = 1; i < argc; ++i) { 30569f64afd3db2b43003978765b833669f99477d2Yabin Cui if (strcmp(argv[i], "-t") == 0 && i + 1 < argc) { 31569f64afd3db2b43003978765b833669f99477d2Yabin Cui testdata_dir = argv[i + 1]; 32569f64afd3db2b43003978765b833669f99477d2Yabin Cui break; 33569f64afd3db2b43003978765b833669f99477d2Yabin Cui } 34569f64afd3db2b43003978765b833669f99477d2Yabin Cui } 35569f64afd3db2b43003978765b833669f99477d2Yabin Cui if (testdata_dir.empty()) { 36569f64afd3db2b43003978765b833669f99477d2Yabin Cui printf("Usage: simpleperf_unit_test -t <testdata_dir>\n"); 37569f64afd3db2b43003978765b833669f99477d2Yabin Cui return 1; 38569f64afd3db2b43003978765b833669f99477d2Yabin Cui } 39569f64afd3db2b43003978765b833669f99477d2Yabin Cui if (testdata_dir.back() != '/') { 40569f64afd3db2b43003978765b833669f99477d2Yabin Cui testdata_dir.push_back('/'); 41569f64afd3db2b43003978765b833669f99477d2Yabin Cui } 42323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui return RUN_ALL_TESTS(); 43323e945313b190373b3fcfe578e25ee8390a76d3Yabin Cui} 44569f64afd3db2b43003978765b833669f99477d2Yabin Cui 45569f64afd3db2b43003978765b833669f99477d2Yabin Cuistd::string GetTestData(const std::string& filename) { 46569f64afd3db2b43003978765b833669f99477d2Yabin Cui return testdata_dir + filename; 47569f64afd3db2b43003978765b833669f99477d2Yabin Cui} 48b1a885b014540a2f7798b5a35ea0f0ec150d93eeYabin Cui 49b1a885b014540a2f7798b5a35ea0f0ec150d93eeYabin Cuiconst std::string& GetTestDataDir() { 50b1a885b014540a2f7798b5a35ea0f0ec150d93eeYabin Cui return testdata_dir; 51b1a885b014540a2f7798b5a35ea0f0ec150d93eeYabin Cui} 52