Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 722bf5c7 authored by Christopher Wiley's avatar Christopher Wiley Committed by Gerrit Code Review
Browse files

Merge "aidl: Separate aidl logic into its own static library"

parents 267cb88f a25d3510
Loading
Loading
Loading
Loading
+24 −5
Original line number Diff line number Diff line
@@ -6,7 +6,10 @@
ifeq ($(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK)),)

LOCAL_PATH:= $(call my-dir)

# Logic shared between aidl and its unittests
include $(CLEAR_VARS)
LOCAL_MODULE := libaidl-common

LOCAL_CLANG_CFLAGS := -Wall -Werror
# Tragically, the code is riddled with unused parameters.
@@ -29,21 +32,37 @@ LOCAL_SRC_FILES := \
    generate_java.cpp \
    generate_java_binder.cpp \
    generate_java_rpc.cpp \
    main.cpp \
    options.cpp \
    search_path.cpp \

include $(BUILD_HOST_STATIC_LIBRARY)


# aidl executable
include $(CLEAR_VARS)
LOCAL_MODULE := aidl
LOCAL_MODULE_HOST_OS := darwin linux windows

LOCAL_MODULE_HOST_OS := darwin linux windows
LOCAL_CFLAGS := -Wall -Werror
LOCAL_SRC_FILES := main.cpp
LOCAL_STATIC_LIBRARIES := libaidl-common
include $(BUILD_HOST_EXECUTABLE)


# Unit tests
include $(CLEAR_VARS)
LOCAL_MODULE := aidl_unittests
LOCAL_CFLAGS := -g -DUNIT_TEST
LOCAL_SRC_FILES := tests/test.cpp
LOCAL_STATIC_LIBRARIES := libgmock_host libgtest_host libBionicGtestMain

LOCAL_CFLAGS := -g -DUNIT_TEST -Wall -Werror
LOCAL_SRC_FILES := \
    options_unittest.cpp \
    tests/test.cpp \

LOCAL_STATIC_LIBRARIES := \
    libaidl-common \
    libgmock_host \
    libgtest_host \
    libBionicGtestMain
LOCAL_LDLIBS := -lrt
include $(BUILD_HOST_NATIVE_TEST)

+0 −4
Original line number Diff line number Diff line
@@ -48,10 +48,6 @@ parse_options(int argc, const char* const* argv, Options *options)
        return 0;
    }

    options->task = COMPILE_AIDL;
    options->failOnParcelable = false;
    options->autoDepFile = false;

    // OPTIONS
    while (i < argc) {
        const char* s = argv[i];
+3 −3
Original line number Diff line number Diff line
@@ -16,15 +16,15 @@ enum {
// This struct is the parsed version of the command line options
struct Options
{
    int task;
    bool failOnParcelable;
    int task{COMPILE_AIDL};
    bool failOnParcelable{false};
    vector<string> importPaths;
    vector<string> preprocessedFiles;
    string inputFileName;
    string outputFileName;
    string outputBaseFolder;
    string depFileName;
    bool autoDepFile;
    bool autoDepFile{false};

    vector<string> filesToPreprocess;
};
+54 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2015, The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include <string>
#include <vector>

#include <gtest/gtest.h>

#include "options.h"

using std::vector;
using std::string;

const char kPreprocessCommandOutputFile[] = "output_file_name";
const char kPreprocessCommandInput1[] = "input1";
const char kPreprocessCommandInput2[] = "input2";
const char kPreprocessCommandInput3[] = "input3";
const char* kPreprocessCommand[] = {
    "aidl", "--preprocess",
    kPreprocessCommandOutputFile,
    kPreprocessCommandInput1,
    kPreprocessCommandInput2,
    kPreprocessCommandInput3,
};

TEST(OptionsTests, ParsesPreprocess) {
  Options options;
  const int argc = sizeof(kPreprocessCommand) / sizeof(*kPreprocessCommand);
  EXPECT_EQ(parse_options(argc, kPreprocessCommand, &options), 0);
  EXPECT_EQ(options.task, PREPROCESS_AIDL);
  EXPECT_EQ(options.failOnParcelable, false);
  EXPECT_EQ(options.importPaths.size(), 0u);
  EXPECT_EQ(options.preprocessedFiles.size(), 0u);
  EXPECT_EQ(options.inputFileName, string{""});
  EXPECT_EQ(options.outputFileName, string{kPreprocessCommandOutputFile});
  EXPECT_EQ(options.autoDepFile, false);
  const vector<string> expected_input{kPreprocessCommandInput1,
                                      kPreprocessCommandInput2,
                                      kPreprocessCommandInput3};
  EXPECT_EQ(options.filesToPreprocess, expected_input);
}