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