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)),)
|
||||
|
||||
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 \
|
||||
|
||||
LOCAL_MODULE := aidl
|
||||
LOCAL_MODULE_HOST_OS := darwin linux windows
|
||||
include $(BUILD_HOST_STATIC_LIBRARY)
|
||||
|
||||
|
||||
# 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)
|
||||
|
||||
|
||||
# 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)
|
||||
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -15,15 +15,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
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