History log of /system/tools/aidl/Android.mk
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
8f8836167e42a2abee815db0dbfbfa6db0181dfe 03-Nov-2016 Dan Willemsen <dwillemsen@google.com> Convert aidl cpp tests to Soong

Soong now has aidl-cpp support.

Test: mmma -j system/tools/aidl
Test: system/tools/aidl/runtests.sh
Change-Id: I04a880fd854376263a212e2f0f13ab798a518732
/system/tools/aidl/Android.mk
8fd503f6d741344935cc3a5d70e0fa885cc353a6 05-Oct-2016 Dan Willemsen <dwillemsen@google.com> Convert to Android.bp

See build/soong/README.md for more information about Soong. The rest of
the native code will be converted when Soong supports *.aidl file builds
(which requires aidl-cpp to be built with Soong first).

Test: mmma -j system/tools/aidl
Test: out/host/linux-x86/nativetest{,64}/aidl_unittests/aidl_unittests
Change-Id: I55e096c6b8e67bd83f0148b817f64d2ec9e052da
/system/tools/aidl/Android.mk
6ff8007fc1bae1418b7ba8998cbbfa5ae8f7d289 03-Jun-2016 Christopher Wiley <wiley@google.com> Always build absolute paths the same way
am: 8decf95ffe

* commit '8decf95ffeffcc8aa14aa743ae398bc38d54b0ac':
Always build absolute paths the same way

Change-Id: I2d0397eab72e6210514a3c5c4c8d183fe05b3c9d
8decf95ffeffcc8aa14aa743ae398bc38d54b0ac 03-Jun-2016 Christopher Wiley <wiley@google.com> Always build absolute paths the same way

Fix a bug where output paths like:

C:\foo\bar

triggered bad logic to detect relative paths and turned the path into

.\C:\foo\bar

Fix this by moving absolute path detection logic into a common helper
function and calling it consistently.

Bug: 29091703
Test: unittests, angler-eng builds with this change, manual testing on
windows demonstrates issue is fixed

Change-Id: I8bc83a3e3943931d95db3e4147d4f8b1b07e907a
/system/tools/aidl/Android.mk
d6bdd8d7cfb0a96ccc826cbb005128f0f7ca3446 03-May-2016 Christopher Wiley <wiley@google.com> Parse AIDL string constants

Parse declarations of string constants as part of an interface:

interface IFoo {
const String MY_CONSTANT = "value";
}

These constants are restricted to be printable ASCII characters < 0x80.

A follow on CL will introduce the actual code generation.
While here, fix a bug where an empty interface definition generates
an empty Call enum in C++.

Bug: 28233277
Change-Id: I9a46962d601ad39d4024ad783ca3dbc8e60a15c7
Test: Introduced new end to end tests.
/system/tools/aidl/Android.mk
be03354beb79cc9738dbcf67c50a361971c4dfca 26-Apr-2016 Dan Albert <danalbert@google.com> Stop hard coding gtest paths/libs.

Bug: http://b/16574165
Change-Id: I04865018372813b5306d6c59439a6946ad99e041
/system/tools/aidl/Android.mk
1e8554a6937487d189c961aff78533fb58b1c4c1 09-Mar-2016 Christopher Wiley <wiley@google.com> Test that Java client reaction to unexpected null Binders

Native services should throw NullPointerExceptions for Java clients
that pass null Binders to functions which don't expect them.

Bug: 27156495
Change-Id: I8e73fcbd82bebce7d1d86c51ce932640165494a0
Test: integration tests pass
/system/tools/aidl/Android.mk
6bde2e9c8fd5082201a6bd1c1097017dc315078c 09-Mar-2016 Christopher Wiley <wiley@google.com> Refactor Java test components into separate files

This will help us split tests into multiple files for
ease of maintenance.

Bug: 27156495
Change-Id: Ie0198380942dbbad37bca319e90344c98467c146
Test: integration tests pass
/system/tools/aidl/Android.mk
931146c41e0c010f344777575ec6379cb1977064 04-Mar-2016 Ying Wang <wangying@google.com> Remove obsolete conditional

Now in unbundled or PDK build we use prebuilt aidl in place.
We don't need the conditional any more.
Also this expose aidl-cpp to pseudo unbundled build in the platform
source tree.

Bug: 27488208
Change-Id: I2c16700e764e2de410ea579b975e11a0d56429c2
(cherry-pick from commit 6215b9569ff2056b78893ce9a5007d419ef203f5)
/system/tools/aidl/Android.mk
6215b9569ff2056b78893ce9a5007d419ef203f5 04-Mar-2016 Ying Wang <wangying@google.com> Remove obsolete conditional

Now in unbundled or PDK build we use prebuilt aidl in place.
We don't need the conditional any more.
Also this expose aidl-cpp to pseudo unbundled build in the platform
source tree.

Bug: 27488208
Change-Id: I2c16700e764e2de410ea579b975e11a0d56429c2
/system/tools/aidl/Android.mk
19343686f062c6adc2f3a29254752da4fe47992f 01-Mar-2016 Keun-young Park <keunyoung@google.com> enable aidl build in PDK

bug: 27418566
Change-Id: I3a1d94968f2108196d90f8533f9b260c16b00b23
/system/tools/aidl/Android.mk
de42b58c95654e4fe8d9e0a5c4553fc3b98e19c4 01-Mar-2016 Keun-young Park <keunyoung@google.com> enable aidl build in PDK

bug: 27418566
Change-Id: I3a1d94968f2108196d90f8533f9b260c16b00b23
/system/tools/aidl/Android.mk
dca2ecf2883771b4c895e52a9f07e2467d603f77 29-Jan-2016 Christopher Wiley <wiley@google.com> Add integration test support for @utf8InCpp

This patch adds validation of String and String[] marked with
@utf8InCpp.

While here, move everything but main() in aidl_test_service.cpp to an
anonymous namespace.

Bug: 26729450
Test: Integration, unittests continue to pass

Change-Id: Iab79bc23ed8a34168544425952afd2e29cdbe030
/system/tools/aidl/Android.mk
c79583392abd844923ca07988754d2b9b9aefaf3 01-Feb-2016 Christopher Wiley <wiley@google.com> Pull out helpers for testing primitives

These will prove helpful when implementing utf8 string testing.

Bug: 26729450
Test: unittests, integration tests still pass

Change-Id: If2964a2bddf4b2516cc62bb7a96cacce558e8df0
/system/tools/aidl/Android.mk
13ace34a8f93706a13effee812d13610a487b572 13-Jan-2016 Samuel Tan <samueltan@google.com> Add framworks/native/aidl/binder/ to LOCAL_AIDL_INCLUDES

Now that PersistableBundle.aidl lives in
frameworks/native/aidl/binder/, add this path to the
LOCAL_AIDL_INCLUDES variable for targets that use
PersistableBundle.

BUG: None
Change-Id: Icfab654a5da138836202ca5e7b668daadd60c390
TEST: system/tools/aidl builds successfully.
/system/tools/aidl/Android.mk
3000e7576b23c0a64d47e1f88b444fa09f7a8a6d 12-Jan-2016 Ying Wang <wangying@google.com> Now the build system generates .cpp only for .ll/.yy

For .l/.y, it generates .c instead.
The generated header files are always ended with .h.

Bug: 26492989
Change-Id: Ic46cc775c2593d9740a29732f5b02c158f6070a3
/system/tools/aidl/Android.mk
88c320053c5c0f9c45a5700c89b23a9c0c745369 04-Dec-2015 Samuel Tan <samueltan@google.com> aidl: tests: add PersistableBundle integration tests

Add integration tests for PersistableBundle. Since the aidl
generator currently does not support out params for
PersistableBundles (b/25998882), we do not test for this.

Also:
- Rename ConfirmParcelables() to ConfirmSimpleParcelables().
This makes the addition of ConfirmPersistableBundles() less
confusing, since PersistableBundles are also Parcelables.
- Minor formatting changes in aidl_test_service.cpp.

BUG: 25815410
Change-Id: Ib20f6ecf47dec556929b3fe30e45aa7e410d9054
TEST: aidl builds successfully.
TEST: integration-test.py passes.
/system/tools/aidl/Android.mk
57dbe24bcb8f4509a876e8445c78d9504d7e616a 04-Dec-2015 Casey Dahlin <sadmac@google.com> Add support for @nullable annotation

Using this annotation will now cause C++ types to be wrapped in
unique_ptr, and by extension be capable of handling null values.

Support extends to all arrays, Strings, Lists, and Parcelables.

Change-Id: I148a3666279c2badcba097b8925e55f8fcecb9c2
Test: Unit tests pass
Bug: 25969194
Signed-off-by: Casey Dahlin <sadmac@google.com>
/system/tools/aidl/Android.mk
7621d4d0592fbf3fb396d0c092a8e41c3c8215cd 29-Nov-2015 Christopher Wiley <wiley@google.com> Integration test for application specific exceptions

Bug: 25800533
Test: Integration tests pass

Change-Id: Iaf742a29509b1280c5db7c7231a4fac538a07574
/system/tools/aidl/Android.mk
546d27d8776c91d0769202b82d9d81405e8ab5d7 04-Dec-2015 Samuel Tan <samueltan@google.com> aidl: tests: split up aidl_test_client.cpp

Split aidl_test_client functions up into separate files that
share functions in the android::aidl::tests::client namespace.
Functions testing primitives go to aidl_test_client_primitives.cpp,
functions that test parcelables go to aidl_test_client_parcelables.cpp,
and functions that test file descriptors go to
aidl_test_client_file_descriptors.cpp.

BUG: 26009326
Change-Id: I3f811340aeefec091802c544aaaecad135413b4b
TEST: aidl builds successfully
TEST: system/tools/aidl/tests/integration-test.py passes
/system/tools/aidl/Android.mk
c46cc0135cb0744a64e6a5eda140d81d58306a4a 03-Dec-2015 Christopher Wiley <wiley@google.com> Re-enable jack build

The jack team does not suspect jack is a significant contributor to
build latency.

Bug: 25991824

Change-Id: I291d2ea353e568fe4778d95dfa7a992d4b8ba95f
/system/tools/aidl/Android.mk
996775af841578ead235540eb383f114b4e0eb00 19-Nov-2015 Christopher Wiley <wiley@google.com> Add SimpleParcelable in C++ and Java

These two classes should have equivalent wire format.

Bug: 23600712
Test: Compiles

Change-Id: I2b777565c6c5faa5ec752179af86e28ffcb5a362
/system/tools/aidl/Android.mk
e392ed7a905e9edca63f571b566a4252059faf14 20-Nov-2015 Christopher Wiley <wiley@google.com> Do not attempt to build aidl on windows for brillo

We don't include the windows build tools in BDK checkouts.

Bug: 25291070
Change-Id: I37151b5b13167b09ea41eecdfe8e4cbcde7b1c84
Test: building for edison-eng succeeds
/system/tools/aidl/Android.mk
d0724f63eb53af7f23e91b0f90222c2829cf91dc 19-Nov-2015 Christopher Wiley <wiley@google.com> Refactor .aidl files into common shared library

This both simplifies the integration test build and validates that
developers can retrieve the location of generated header files from the
build system.

Bug: 25779424
Test: compiles, integration tests still pass

Change-Id: I7e742f9e30dfcda9506396791b443394d2da846e
/system/tools/aidl/Android.mk
f047e02a27c5734e8079df6cd4e91d6a9e2070cb 13-Nov-2015 Christopher Wiley <wiley@google.com> Compile unittests on mac as well

Now that we no longer use libchrome, our unittests should compile all over.

Bug: None
Test: None

Change-Id: Icac24bde45fe425de80d804f15d99b2e420e7680
/system/tools/aidl/Android.mk
c5442de40df22a763804648f5ee1d16ec28a7cd2 13-Nov-2015 Christopher Wiley <wiley@google.com> Remove aidl_unittest dependency on libchrome

This allows us to build on branches that don't include libchrome.

Bug: 25691685
Test: Compiles, unittests pass

Change-Id: I768a14722661c07929ded0e672c7d36cd689c419
/system/tools/aidl/Android.mk
34bbc7b2fb0b7e54aeda658233cc52619555a627 09-Nov-2015 Christopher Wiley <wiley@google.com> Turn off Java build optimizations

This speeds up test iteration time by turning off any optimizations that
might slow down the build of Java test logic. Right now, Jack is
painfully slow. We can always revert this in the future if this is no
longer the case.

Bug: None
Test: rebuilds of APK seem faster

Change-Id: I01a2fdb95188c0e10adb61e54bcd0427c72bb9fc
/system/tools/aidl/Android.mk
ef1409302aa97b1807e55c63588ac0a428f41a06 03-Nov-2015 Christopher Wiley <wiley@google.com> Allow mocking of preprocessed file read

Bug: 17415692
Test: Clean build of AOSP succeeds.

Change-Id: I723031e9847b589909825736f1094e6bba039f7a
/system/tools/aidl/Android.mk
389781f56bb6b4363e9eb03acf915ba297f607d5 22-Oct-2015 Casey Dahlin <sadmac@google.com> Add support for passing binders in C++

Change-Id: I6f7003b4c320897bada8f225943a50825d6c26e7
Test: Unit tests (several new), Integration tests (several new)
Bug: 23600713
Signed-off-by: Casey Dahlin <sadmac@google.com>
/system/tools/aidl/Android.mk
2971cf31b2e94d003908b6c974234fdf90c14cbc 23-Oct-2015 Christopher Wiley <wiley@google.com> Add aidl_test_sentinel_searcher

We'll use this simple little program to test that our Java intent
dumps test success/failure to a file on disk.

Bug: 25159441
Test: integration test uses this successfully

Change-Id: I9b324133df7f69d4757b47e54bbd208892bf6217
/system/tools/aidl/Android.mk
c5a9e289f1542a377af9a30f06d24fb184553cdf 23-Oct-2015 Christopher Wiley <wiley@google.com> Consolidate CFLAGS into shared variable

It's too easy to forget a flag here and there.

While here, remove two include paths that made sense before we
generated the headers that replaced replaced the hand-written
equivalents.

Bug: None
Test: Compiles, unittests pass

Change-Id: I652a97c2a1b22f791405a138b757d589a6625cf9
/system/tools/aidl/Android.mk
521bb618fa16d0b88ae88b8dcd98b72e579f1ed4 22-Oct-2015 Christopher Wiley <wiley@google.com> android.os.IPingResponder -> android.aidl.tests.ITestService

Rename the aidl file and all references in the code to reflect that this
is the interface we're using in integration tests to validate our
runtime behavior.

Bug: 25159441
Test: Compiles, unittests pass

Change-Id: Ib31d33d87486fcc38b0812e772c6723d7f750cd6
/system/tools/aidl/Android.mk
e1182ffa87814eb238d9ec4b8284b6703493fa75 22-Oct-2015 Christopher Wiley <wiley@google.com> APK build fixes

These came up in code review.

Bug: None
Test: Still compiles

Change-Id: I97724a5d1184a30467951c5acc8fc298d5e0d7bb
/system/tools/aidl/Android.mk
33ad81e306649cb769e02d10ccf77520b68c7742 21-Oct-2015 Christopher Wiley <wiley@google.com> Rename helloc and hellod to aidl_test_{client,server}

We'll use these binaries to confirm that generated code works correctly
on real Android devices.

Bug: 25159441
Test: script that runs these binaries confirms correctness

Change-Id: Ic9389ddb5bed42644021b77f1c43e4c04b75acab
/system/tools/aidl/Android.mk
130e6860394575ea183f25c41097aae56c2c575f 19-Oct-2015 Christopher Wiley <wiley@google.com> Add Java client for PingResponder service

You can verify this by starting hellod and running the activity in this
APK. Steps to do this are listed in tests/java_app/README.

Bug: 25078040
Test: Compiles, steps in README validate functionality.

Change-Id: If9a5af5820125c66b76f0b9fb4e1fcbade7c589e
/system/tools/aidl/Android.mk
90be4e3fe6d16ea8e8263b80989ef2ab4e6ef9c6 20-Oct-2015 Christopher Wiley <wiley@google.com> Fix segfault on missing package declaration

Add unittests to enforce this doesn't happen again. While here
add unittests for out params in oneway methods and make
ownership of AidlInterface pointers more explicit.

Also fix a bug where we would disallow returning void from functions
in C++ generation.

Bug: 24862770
Test: Unittests pass

Change-Id: I4fa67489ad1fff0d4453d38689e54b9f5ad08c43
/system/tools/aidl/Android.mk
b5e698c8bf4efc7bcbe5fd24685968db10e62735 17-Oct-2015 Christopher Wiley <wiley@google.com> Add ping_responder demo application

This allows us to easily track whether generated code will continue to
compile as we make changes (improvements) to aidl.

Bug: 25035409
Test: This code compiles

Change-Id: Ida69074c4f28e30dfd918792c282e18b8a2677f8
/system/tools/aidl/Android.mk
af2d510018c546961e502b61682eaf8a019cc974 18-Oct-2015 Christopher Wiley <wiley@google.com> Add end to end test for C++ generation

Bug: None
Test: Unit tests pass

Change-Id: If3e49a6053d9945f6a6da2a9832e9120d6be5b03
/system/tools/aidl/Android.mk
db6c711c4c96a606da86f1384dba2e919062614e 18-Oct-2015 Christopher Wiley <wiley@google.com> Rename test_main.cpp to tests/main.cpp

This fixes tab completion for the increasingly important tests/
directory.

Bug: None
Test: unittests pass

Change-Id: I24244712acafd0e97bc09e1154aed0c341b4aeab
/system/tools/aidl/Android.mk
98a544b567e20f6c8492e1d4eb8869e759ae74d9 14-Oct-2015 Casey Dahlin <sadmac@google.com> Remove parse_helpers.cpp/h/unit tests

This test was very silly, and the contents of this file are better off
elsewhere.

Bug: 24948220
Change-Id: I800c9035806ba42038dab8a681755d0ce581a530
Test: Unit tests
Signed-off-by: Casey Dahlin <sadmac@google.com>
/system/tools/aidl/Android.mk
ea6e382143e4a8df894d47db3a6cb79a38ad4530 07-Oct-2015 Christopher Wiley <wiley@google.com> Mock file system dependencies in end to end tests

Use FakeIoDelegate in end to end tests to abstract file I/O.

Bug: 24703046
Test: Unittests pass

Change-Id: I1496d6e8d120a193262c2f90b2dec646a5c939c5
/system/tools/aidl/Android.mk
72877acd3b57462fcd452bff4a9d7ff936936a8e 06-Oct-2015 Christopher Wiley <wiley@google.com> Add ImportResolver class

This class delegates to an IoDelegate for file I/O.
This replaces the search_path.* files.

Bug: 24703046
Test: Unittests pass

Change-Id: I261f6066cef514926b45174988863b745a37e87c
/system/tools/aidl/Android.mk
4a2884b0e9414ed9dfee4e141e8bd462c07b442b 07-Oct-2015 Christopher Wiley <wiley@google.com> Read all files through IoDelegate

This allows us to easily fake out file IO in tests.

Bug: 24703046
Change-Id: I33a59c8e43489b03f27f99fb2949e58cc0311eb1
Test: unittests still pass, clean build of android passes
/system/tools/aidl/Android.mk
a8a2dc0ad258c1390c5d55b302774df357450caf 29-Sep-2015 Christopher Wiley <wiley@google.com> Add C++ TypeNamespace and basic primtive types

Bug: 24472672
Test: Unittests pass

Change-Id: I863bb4c5b37865d9ee57c91b28e563c68d113458
/system/tools/aidl/Android.mk
fb4b22dfbe0f87aaad492dc8a25201179c235bae 26-Sep-2015 Christopher Wiley <wiley@google.com> Explicitly create container types

Now we explicitly give ourselves a change to create each
container type before attempting to resolve a type name
to an instance of Type. In the process we finally remove
all knowledge of specific types from aidl.cpp by moving
logic into the TypeNamespace itself.

Bug: 24303749
Test: Compiles, unittests, clean build of aosp_arm passes.

Change-Id: Ie5e1b29020618863dac9417e0a60730ddb0dfc02
/system/tools/aidl/Android.mk
a834dd4650b3196893440ee49c7ff6b303b45a92 23-Sep-2015 Casey Dahlin <sadmac@google.com> Generate client-side headers

Test: Ran aidl-cpp
Bug: 23599760
Change-Id: I31ca5be9dd1274ba81ea6a7110e9f2005f86855d
Signed-off-by: Casey Dahlin <sadmac@google.com>
/system/tools/aidl/Android.mk
4582ecb1e8799b062265915282edd567295d2ee6 25-Sep-2015 Christopher Wiley <wiley@google.com> Make creating container types more explicit

Calling TypeNamespace::Search() has the side effect of actually
creating an instance of a container type (e.g. List<Bar>) if
the conatiner type doesn't exist. Make this more explicit,
in preparation for just creating container types explicitly and
fixing these misleading semantics.

Bug: 24303749
Test: unittests, clean build of Android passes

Change-Id: Ic7f6e42167fda5d4d462570c8e1ec3a24fd153ec
/system/tools/aidl/Android.mk
775fa1f7db4626b85e5185149b054821fc605c2b 23-Sep-2015 Christopher Wiley <wiley@google.com> Rename Type.* to type_java.*

We'll soon have type_cpp variations on these files, and a more
generic type.h

Bug: 24303749
Test: Compiles, unittests

Change-Id: I64f45efa3553f1a46d2d16d6652eedd6b324b2e4
/system/tools/aidl/Android.mk
eb1acc1cf7dbf578d8ab2e596982c4c635aa9865 16-Sep-2015 Christopher Wiley <wiley@google.com> Refactor compile_aidl flow to support compiling C++

Bug: 23599760
Test: unittests

Change-Id: Id6cbe6ea8161be6ebf449e47b3934993e6b6ad13
/system/tools/aidl/Android.mk
f690be5044a56fdf75bb0bcae640074ec97023cd 15-Sep-2015 Christopher Wiley <wiley@google.com> Minor cleanup of aidl.cpp

1) Move some helper functions to parse_helpers.cpp
2) Refactor some helper functions to take advantage of C++ built ins
3) Add unittest coverage of refactored logic
4) clang-format -i -style=Google parse_helpers.cpp
5) Move remaining helper functions of aidl.cpp into anonymous namespace

Change-Id: I3a2cf7be113ac7f71a1a3502b12a8ed910509546
/system/tools/aidl/Android.mk
a590de8d148bb42aa5f1f32aec6faae18a28e720 16-Sep-2015 Christopher Wiley <wiley@google.com> Define aidl-cpp executable

This executable has a distinct usage which reflects that it generates
a very different sort of code.

Bug: 23599341
Test: unittests pass, added new Options unit test

Change-Id: I6750e7146949659a3af0246ad1bca0fa23afb2d5
/system/tools/aidl/Android.mk
89eaab56f3ff913c247397b858fac3c8d3d4a206 15-Sep-2015 Christopher Wiley <wiley@google.com> Rename Options to JavaOptions

The aidl command line interface exposes a lot of knobs that
are not used in practice and complicate the internal logic to support.
For C++ generation we have an opportunity to reduce the exposed surface.

Begin by renaming Options to a more specific JavaOptions.

Test: unittests pass
Bug: 23599341

Change-Id: I76478ab2fb12612bf7120a1af28c8db1da9ed22f
/system/tools/aidl/Android.mk
b8b59f6b19e791b6e3f381726d84baadeac4f5ce 15-Sep-2015 Christopher Wiley <wiley@google.com> Add standard Android logging to aidl

This greatly helps understanding the code by enabling instrumenting
with debug logging statements. To use:

ANDROID_LOG_TAGS=*:v aidl ....

Will cause the logging to log at the verbose level. See base/logging.h
for more tricks.

Change-Id: I44ec26374419ca9d575f14b65c422444d17fcc66
Test: Ran the example command saw verbose logging.
/system/tools/aidl/Android.mk
4427d8654985209c1ebf2fb4705bb3e1a4262be2 14-Sep-2015 Christopher Wiley <wiley@google.com> Basic cleanup of parsed options

1) Turn it into a proper C++ object
2) Don't leak Options objects
3) Don't mutate Options objects
4) clang-format -style=Google -i options.cpp

Bug: 23599341
Test: unittests

Change-Id: I06597dd21e94ff391a08ea1bdb8f3a526123b3dc
/system/tools/aidl/Android.mk
f600a555ef6f86afea7d55fc735f0c7b5f7cf6a5 12-Sep-2015 Christopher Wiley <wiley@google.com> Add the beginnings of a C++ AST

Just generate the empty files for now. We can flesh this out as we go
along.

Bug: 23598995
Change-Id: Ic2459e0f70d41692a473af2eba7f18485c3814b6
Test: unittests
/system/tools/aidl/Android.mk
fdeb0f4b96b6c39b1b9ed3358634f180f9e6df06 12-Sep-2015 Christopher Wiley <wiley@google.com> Abstract away file IO when writing generated code

This allows us to write unittests of Java/Cpp AST elements without
doing file I/O each time. Introduce a CodeWriter class which
may write to either a string or a file dependening on the contect.

While here, mark the write methods as const.

Test: Compiles, unittests pass, added new unittest demonstrating usage.
Bug: 23598995

Change-Id: I240ede41f0f9c04c0d14d1a3680ce5ab332babbc
/system/tools/aidl/Android.mk
038485e9c8a4d7c0d47720e5bb1b1086b7550de7 12-Sep-2015 Christopher Wiley <wiley@google.com> Rename AST.{h,cpp} files to ast_java.{h,cpp}

Soon we will grow equivalent ast_cpp.{h,cpp} files.

Bug: 23598995
Change-Id: Ief017596a1a19d679a66c183f3956f069e8a989a
Test: Compiles, unittests pass
/system/tools/aidl/Android.mk
7c3a1eb7298a915f45fddc993b15727d4591d2f2 12-Sep-2015 Christopher Wiley <wiley@google.com> Grab macros from libbase instead of duplicating

Link the static library into the executables in the correct order
so that we can later use the functionality it exports.

Change-Id: I57fe36f938d6deca7279ea1d2ca599289accdb0a
/system/tools/aidl/Android.mk
46f0eb1d52e2b93dcede92e981b5172bc71932bb 11-Sep-2015 Christopher Wiley <wiley@google.com> Revert "Disable Android.mk in new aidl repository"

This reverts commit 76bb59332bef31236c7003e7c2081794b5cda416.

This change depends on the corresponding change in frameworks/base.

Bug: 23691099
/system/tools/aidl/Android.mk
76bb59332bef31236c7003e7c2081794b5cda416 11-Sep-2015 Christopher Wiley <wiley@google.com> Disable Android.mk in new aidl repository

This should decouple the time that we push this history from
the time that we actually switch from frameworks/base/tools/aidl
to system/tools/aidl.

Bug: 23691099
/system/tools/aidl/Android.mk
73d46b0a616042aa927d3f3bb3d19a459cdad65a 11-Sep-2015 Casey Dahlin <sadmac@google.com> Revert "Grab macros from libbase instead of duplicating"

This reverts commit 2535cae005512494469fc5cea1fe630288ecb083.

Change-Id: I373844b6a0f429e88d6bcc1cdd5ac62325da55b3
/system/tools/aidl/Android.mk
7ac17a68bb18b91f13a35028a3e374534731373a 11-Sep-2015 Casey Dahlin <sadmac@google.com> Grab macros from libbase instead of duplicating

Change-Id: I1802f60a4dac45ddee8cd5715a73c77e4371d7e8
Signed-off-by: Casey Dahlin <sadmac@google.com>
/system/tools/aidl/Android.mk
eada025b979090a0e3a67390ca0804790cae21d1 04-Sep-2015 Dan Willemsen <dwillemsen@google.com> Whitelist windows module

Bug: 23566667
Change-Id: I030733ffd2b43a0ea74b0fd5f34a0d13ef8dcf7c
/system/tools/aidl/Android.mk
b745649dd0a64a0a1bbf943197ab322a2f6cdb23 02-Sep-2015 Christopher Wiley <wiley@google.com> Merge "aidl: Add end to end test"
76896d7274929da2c5e1cfa2dc1a6c3de5423af1 02-Sep-2015 Christopher Wiley <wiley@google.com> Merge "aidl: Remove example test"
88868fc6566d371bf04180c429964bc699effb55 01-Sep-2015 Casey Dahlin <sadmac@google.com> Remove RPC interface Type

AIDL previously supported "rpc" and "flatten" types, which are not used
anywhere in the Android tree. This patch removes them, which significantly cuts
down code and complexity.

Bug: 23517584
Test: Rebuilt AOSP tree against new version
Change-Id: I6cf38d43c1ce109ffca987cc14520945aa22431f
Signed-off-by: Casey Dahlin <sadmac@google.com>
/system/tools/aidl/Android.mk
856a869ccab7efe1bc73311d1ee8843cee2f705f 01-Sep-2015 Christopher Wiley <wiley@google.com> aidl: Add end to end test

This test sets up an artificial hierarchy of .aidl files, then
checks that the generated code contains a substring that we
know to be correct. This isn't a very good unittest, but it does
validate that the whole flow works start to finish.

Bug: 23516947
Test: compiles, unit tests pass.

Change-Id: I931b7659731b05440040623e12596669604cef3a
/system/tools/aidl/Android.mk
799c16e9b99a7b9ae72ceb36ea3eacbf7be3451d 02-Sep-2015 Christopher Wiley <wiley@google.com> aidl: Remove example test

We have enough tests demonstrating how to write them.

Bug: 23516947
Change-Id: I966cb6bb2d754db389be8f9b90957ac33cf66639
Test: Unittests pass.
/system/tools/aidl/Android.mk
c545b7cc961a294835e11d00ed7910c047ecb1b3 02-Sep-2015 Christopher Wiley <wiley@google.com> aidl: Don't link librt on Mac

This fixes unittest build on Mac.

Change-Id: I5180f647d1b5b41f99c4d0423aaec9d05fee6355
/system/tools/aidl/Android.mk
f321efd27f00e1b82733d430dd294f59097f9885 01-Sep-2015 Christopher Wiley <wiley@google.com> aidl: Stop using Bionic's test main

This allows us to build unittests on Mac, where Bionic's test main
does not build.

Change-Id: I59c805d233498bb67575f2e5f7049341f70ce55c
/system/tools/aidl/Android.mk
3616d138056b61bd151820b9799820b70d797061 01-Sep-2015 Christopher Wiley <wiley@google.com> aidl: Separate aidl logic into its own static library

Compile aidl's logic into a static library that can be
linked against both the unittest binary and the executable. Validate
that this is working by writing a basic unittest against options
parsing.

Provide default values for Options struct members. These were
previously taking on values according to the the bits in the memory
allocated to hold them for preprocessed inputs.

Bug: 23516947
Change-Id: Ib57cd7f473995f7851d788deac39f9c4d9018e8f
Test: compiles and unittests pass
/system/tools/aidl/Android.mk
9d76d6b95816a00d3b7c4807713cf8501428e422 01-Sep-2015 Christopher Wiley <wiley@google.com> Merge "Set up aidl for gtest"
e0146cf3252d67881d417e8dee3d6eb6a1ab5304 25-Aug-2015 Christopher Wiley <wiley@google.com> Tighten up compiler flags for aidl

Turn all warnings to errors, with special cases for places where
yacc forces us to be lenient. Remove one variable with 0 references
elsewhere in the code.

These flags are confined to be clang only because the Windows SDK build
is using an older compiler that does not understand these flags.

Change-Id: I6407bd331c25b8845bde46e9a917bce1d6857bd8
/system/tools/aidl/Android.mk
28c1de898d8709bbe42b370251b2bfa11af476cb 31-Aug-2015 Dan Willemsen <dwillemsen@google.com> Merge "Remove USE_MINGW, whitelist windows modules"
c517b8dfc9c147d6c6c5c7414097e17f411dacbe 31-Aug-2015 Christopher Wiley <wiley@google.com> Merge "Revert "Tighten up compiler flags for aidl""
6886ea5917fafe9bf62297b7d970243b5370c047 31-Aug-2015 Christopher Wiley <wiley@google.com> Revert "Tighten up compiler flags for aidl"

This reverts commit eea2353a3427f7d157c46e24ab6aba1378e16c2e.

This seems to have broken the build because whatever compiler the builder is using doesn't understand the same "turn off this warning" flags as my local host's compiler.

Change-Id: Ic68b7065b161a5ae683b7082c67147835833e0fa
/system/tools/aidl/Android.mk
89e3586afa180230fa999d4287df90df9d066cef 30-Aug-2015 Christopher Wiley <wiley@google.com> aidl: Pull main() into dedicated file

This separates the main() entry point from the functionality we're
hoping to test. While here, redo the header guards to be consistent
accross the codebae.

Bug: 23516947
Change-Id: I61666126bdba0941f14bd0f031caaa30367b864a
Test: Compiles
/system/tools/aidl/Android.mk
c42ba466df7604199ab7177de98e18fd7287bd75 25-Aug-2015 Christopher Wiley <wiley@google.com> Tighten up compiler flags for aidl

Turn all warnings to errors, with special cases for places where
yacc forces us to be lenient. Remove one variable with 0 references
elsewhere in the code.

Change-Id: Ia7819795eb162e9c77d215088aee4c45bd87c1af
/system/tools/aidl/Android.mk
d8cc509916c4fdfbfc43c8e86e7fbe9b748040f2 29-Aug-2015 Casey Dahlin <sadmac@google.com> Set up aidl for gtest

Bug: 23516947

Change-Id: I1c004868525f462d04894a7b96c671b626061ab5
Signed-off-by: Casey Dahlin <sadmac@google.com>
/system/tools/aidl/Android.mk
2c1c505ba9b65e6ddab224409193398146631102 19-Aug-2015 Dan Willemsen <dwillemsen@google.com> Remove USE_MINGW, whitelist windows modules

Bug: 23566667
Change-Id: Ie6b8c51e2b6d6273f99f4e361c440136d7c6915c
/system/tools/aidl/Android.mk
c7cf53eb8c74c7c4605f1907ff0adcc87acef6f3 08-Mar-2014 Ying Wang <wangying@google.com> Exclude the host aapt and aidl from PDK build.

Bug: 13028632
Change-Id: I0f774b19be77462d0fa271088a4a5a152729d13c
/system/tools/aidl/Android.mk
c596cfe6ebccd8f0bcced0922fbc6029c3b750ef 31-Aug-2011 Joe Onorato <joeo@google.com> Checkpoint adding @home RPC support to aidl
/system/tools/aidl/Android.mk
54fba42747fc68f07bb08affdadf7774ce7a78ae 11-Jun-2010 Joe Onorato <joeo@android.com> The aapt and aidl tools are prebuilt when we're doing an apps-only build, so don't try to build them.

Change-Id: I9896b11a9b90cbbbe2170243c8bdbc40231dfbff
/system/tools/aidl/Android.mk
46c012c3806a4b5c5c46539ea5070cc56e1bdb4b 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/system/tools/aidl/Android.mk