am 722bf5c7: Merge "aidl: Separate aidl logic into its own static library"
* commit '722bf5c7dec37265021c17d35b0b078776699f97': aidl: Separate aidl logic into its own static library
This commit is contained in:
@@ -6,7 +6,10 @@
|
|||||||
ifeq ($(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK)),)
|
ifeq ($(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK)),)
|
||||||
|
|
||||||
LOCAL_PATH:= $(call my-dir)
|
LOCAL_PATH:= $(call my-dir)
|
||||||
|
|
||||||
|
# Logic shared between aidl and its unittests
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := libaidl-common
|
||||||
|
|
||||||
LOCAL_CLANG_CFLAGS := -Wall -Werror
|
LOCAL_CLANG_CFLAGS := -Wall -Werror
|
||||||
# Tragically, the code is riddled with unused parameters.
|
# Tragically, the code is riddled with unused parameters.
|
||||||
@@ -29,21 +32,37 @@ LOCAL_SRC_FILES := \
|
|||||||
generate_java.cpp \
|
generate_java.cpp \
|
||||||
generate_java_binder.cpp \
|
generate_java_binder.cpp \
|
||||||
generate_java_rpc.cpp \
|
generate_java_rpc.cpp \
|
||||||
main.cpp \
|
|
||||||
options.cpp \
|
options.cpp \
|
||||||
search_path.cpp \
|
search_path.cpp \
|
||||||
|
|
||||||
LOCAL_MODULE := aidl
|
include $(BUILD_HOST_STATIC_LIBRARY)
|
||||||
LOCAL_MODULE_HOST_OS := darwin linux windows
|
|
||||||
|
|
||||||
|
|
||||||
|
# aidl executable
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := aidl
|
||||||
|
|
||||||
|
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)
|
include $(BUILD_HOST_EXECUTABLE)
|
||||||
|
|
||||||
|
|
||||||
# Unit tests
|
# Unit tests
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_MODULE := aidl_unittests
|
LOCAL_MODULE := aidl_unittests
|
||||||
LOCAL_CFLAGS := -g -DUNIT_TEST
|
|
||||||
LOCAL_SRC_FILES := tests/test.cpp
|
LOCAL_CFLAGS := -g -DUNIT_TEST -Wall -Werror
|
||||||
LOCAL_STATIC_LIBRARIES := libgmock_host libgtest_host libBionicGtestMain
|
LOCAL_SRC_FILES := \
|
||||||
|
options_unittest.cpp \
|
||||||
|
tests/test.cpp \
|
||||||
|
|
||||||
|
LOCAL_STATIC_LIBRARIES := \
|
||||||
|
libaidl-common \
|
||||||
|
libgmock_host \
|
||||||
|
libgtest_host \
|
||||||
|
libBionicGtestMain
|
||||||
LOCAL_LDLIBS := -lrt
|
LOCAL_LDLIBS := -lrt
|
||||||
include $(BUILD_HOST_NATIVE_TEST)
|
include $(BUILD_HOST_NATIVE_TEST)
|
||||||
|
|
||||||
|
|||||||
@@ -48,10 +48,6 @@ parse_options(int argc, const char* const* argv, Options *options)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
options->task = COMPILE_AIDL;
|
|
||||||
options->failOnParcelable = false;
|
|
||||||
options->autoDepFile = false;
|
|
||||||
|
|
||||||
// OPTIONS
|
// OPTIONS
|
||||||
while (i < argc) {
|
while (i < argc) {
|
||||||
const char* s = argv[i];
|
const char* s = argv[i];
|
||||||
|
|||||||
@@ -15,15 +15,15 @@ enum {
|
|||||||
// This struct is the parsed version of the command line options
|
// This struct is the parsed version of the command line options
|
||||||
struct Options
|
struct Options
|
||||||
{
|
{
|
||||||
int task;
|
int task{COMPILE_AIDL};
|
||||||
bool failOnParcelable;
|
bool failOnParcelable{false};
|
||||||
vector<string> importPaths;
|
vector<string> importPaths;
|
||||||
vector<string> preprocessedFiles;
|
vector<string> preprocessedFiles;
|
||||||
string inputFileName;
|
string inputFileName;
|
||||||
string outputFileName;
|
string outputFileName;
|
||||||
string outputBaseFolder;
|
string outputBaseFolder;
|
||||||
string depFileName;
|
string depFileName;
|
||||||
bool autoDepFile;
|
bool autoDepFile{false};
|
||||||
|
|
||||||
vector<string> filesToPreprocess;
|
vector<string> filesToPreprocess;
|
||||||
};
|
};
|
||||||
|
|||||||
54
tools/aidl/options_unittest.cpp
Normal file
54
tools/aidl/options_unittest.cpp
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* 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);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user