kythe.io@v0.0.68-0.20240422202219-7225dbc01741/kythe/cxx/extractor/CommandLineUtilsTest.cc (about)

     1  /*
     2   * Copyright 2014 The Kythe Authors. All rights reserved.
     3   *
     4   * Licensed under the Apache License, Version 2.0 (the "License");
     5   * you may not use this file except in compliance with the License.
     6   * You may obtain a copy of the License at
     7   *
     8   *   http://www.apache.org/licenses/LICENSE-2.0
     9   *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   */
    16  
    17  // This file uses the Clang style conventions.
    18  
    19  #include "CommandLineUtils.h"
    20  #include "gtest/gtest.h"
    21  
    22  namespace {
    23  
    24  using ::kythe::common::HasCxxInputInCommandLineOrArgs;
    25  
    26  TEST(HasCxxInputInCommandLineOrArgs, GoodInputs) {
    27    EXPECT_TRUE(HasCxxInputInCommandLineOrArgs({"-c", "a.c"}));
    28    EXPECT_TRUE(HasCxxInputInCommandLineOrArgs({"-c", "a.c", "b", "c"}));
    29    EXPECT_TRUE(HasCxxInputInCommandLineOrArgs({"-c", "a", "b.c", "c"}));
    30    EXPECT_TRUE(HasCxxInputInCommandLineOrArgs({"-c", "a", "b", "c.c"}));
    31  
    32    EXPECT_TRUE(HasCxxInputInCommandLineOrArgs({"-c", "a", "b.C", "c"}));
    33    EXPECT_TRUE(HasCxxInputInCommandLineOrArgs({"-c", "a", "b.c++", "c"}));
    34    EXPECT_TRUE(HasCxxInputInCommandLineOrArgs({"-c", "a", "b.cc", "c"}));
    35    EXPECT_TRUE(HasCxxInputInCommandLineOrArgs({"-c", "a", "b.cp", "c"}));
    36    EXPECT_TRUE(HasCxxInputInCommandLineOrArgs({"-c", "a", "b.cpp", "c"}));
    37    EXPECT_TRUE(HasCxxInputInCommandLineOrArgs({"-c", "a", "b.cxx", "c"}));
    38    EXPECT_TRUE(HasCxxInputInCommandLineOrArgs({"-c", "a", "b.i", "c"}));
    39    EXPECT_TRUE(HasCxxInputInCommandLineOrArgs({"-c", "a", "b.ii", "c"}));
    40  
    41    EXPECT_TRUE(HasCxxInputInCommandLineOrArgs({"-c", "base/timestamp.cc"}));
    42  }
    43  
    44  TEST(HasCxxInputInCommandLineOrArgs, BadInputs) {
    45    EXPECT_FALSE(HasCxxInputInCommandLineOrArgs({}));
    46    EXPECT_FALSE(HasCxxInputInCommandLineOrArgs({"", "", ""}));
    47    EXPECT_FALSE(HasCxxInputInCommandLineOrArgs({"a"}));
    48    EXPECT_FALSE(HasCxxInputInCommandLineOrArgs({"a", "b", "c"}));
    49    EXPECT_FALSE(HasCxxInputInCommandLineOrArgs({"a", "b.o", "c"}));
    50    EXPECT_FALSE(HasCxxInputInCommandLineOrArgs({"a", "b.a", "c"}));
    51    EXPECT_FALSE(HasCxxInputInCommandLineOrArgs({"a", "b", "c."}));
    52    EXPECT_FALSE(HasCxxInputInCommandLineOrArgs({"a", "b.ccc", "c"}));
    53    EXPECT_FALSE(HasCxxInputInCommandLineOrArgs({"a", "b.ccc.ccc"}));
    54    EXPECT_FALSE(HasCxxInputInCommandLineOrArgs({"a", "b.ccc+", "c"}));
    55    EXPECT_FALSE(HasCxxInputInCommandLineOrArgs({"a", "b.cppp", "c"}));
    56    EXPECT_FALSE(HasCxxInputInCommandLineOrArgs({"a", "b.CC", "c"}));
    57    EXPECT_FALSE(HasCxxInputInCommandLineOrArgs({"a", "b.xx", "c"}));
    58    EXPECT_FALSE(
    59        HasCxxInputInCommandLineOrArgs({"-Wl,@foo", "base/timestamp.cc"}));
    60    EXPECT_FALSE(
    61        HasCxxInputInCommandLineOrArgs({"base/timestamp.cc", "-Wl,@foo"}));
    62  }
    63  
    64  // TODO(zarko): Port additional tests.
    65  
    66  }  // namespace
    67  
    68  int main(int argc, char** argv) {
    69    ::testing::InitGoogleTest(&argc, argv);
    70    int result = RUN_ALL_TESTS();
    71    return result;
    72  }