Added mock interfaces

Change-Id: I227bb450e714e392a3959c0d314842b9879f8b99
diff --git a/tests/bar/1.0/Android.mk b/tests/bar/1.0/Android.mk
new file mode 100644
index 0000000..4264ef0
--- /dev/null
+++ b/tests/bar/1.0/Android.mk
@@ -0,0 +1,34 @@
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := android.hardware.tests.bar@1.0
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+
+intermediates := $(local-generated-sources-dir)
+
+HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
+
+#
+# Build IBar.hal
+#
+GEN := $(intermediates)/android/hardware/tests/bar/1.0/BarAll.cpp
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IBar.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+    $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+    -Lc++ -randroid.hardware:hardware/interfaces\
+    android.hardware.tests.bar@1.0::$(patsubst %.hal,%,$(notdir $(PRIVATE_DEPS)))
+
+$(GEN): $(LOCAL_PATH)/IBar.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+LOCAL_EXPORT_C_INCLUDE_DIRS := $(intermediates)
+LOCAL_SHARED_LIBRARIES := \
+  libhwbinder \
+  libutils \
+  android.hardware.tests.foo@1.0 \
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/tests/bar/1.0/IBar.hal b/tests/bar/1.0/IBar.hal
new file mode 100644
index 0000000..bc89e20
--- /dev/null
+++ b/tests/bar/1.0/IBar.hal
@@ -0,0 +1,10 @@
+package android.hardware.tests.bar@1.0;
+
+import android.hardware.tests.foo@1.0::IFoo;
+
+interface IBar extends android.hardware.tests.foo@1.0::IFoo {
+
+    typedef android.hardware.tests.foo@1.0::IFoo FunkyAlias;
+
+    thisIsNew();
+};
diff --git a/tests/foo/1.0/Android.mk b/tests/foo/1.0/Android.mk
new file mode 100644
index 0000000..3e2794b
--- /dev/null
+++ b/tests/foo/1.0/Android.mk
@@ -0,0 +1,67 @@
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := android.hardware.tests.foo@1.0
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+
+intermediates := $(local-generated-sources-dir)
+
+HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
+
+#
+# Build IFooCallback.hal
+#
+GEN := $(intermediates)/android/hardware/tests/foo/1.0/FooCallbackAll.cpp
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IFooCallback.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+    $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+    -Lc++ -randroid.hardware:hardware/interfaces\
+    android.hardware.tests.foo@1.0::$(patsubst %.hal,%,$(notdir $(PRIVATE_DEPS)))
+
+$(GEN): $(LOCAL_PATH)/IFooCallback.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal
+#
+GEN := $(intermediates)/android/hardware/tests/foo/1.0/types.cpp
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+    $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+    -Lc++ -randroid.hardware:hardware/interfaces\
+    android.hardware.tests.foo@1.0::$(patsubst %.hal,%,$(notdir $(PRIVATE_DEPS)))
+
+$(GEN): $(LOCAL_PATH)/types.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build IFoo.hal
+#
+GEN := $(intermediates)/android/hardware/tests/foo/1.0/FooAll.cpp
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IFoo.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+    $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+    -Lc++ -randroid.hardware:hardware/interfaces\
+    android.hardware.tests.foo@1.0::$(patsubst %.hal,%,$(notdir $(PRIVATE_DEPS)))
+
+$(GEN): $(LOCAL_PATH)/IFoo.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+LOCAL_EXPORT_C_INCLUDE_DIRS := $(intermediates)
+LOCAL_SHARED_LIBRARIES := \
+  libhwbinder \
+  libutils \
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/tests/foo/1.0/IFoo.hal b/tests/foo/1.0/IFoo.hal
new file mode 100644
index 0000000..42e9c17
--- /dev/null
+++ b/tests/foo/1.0/IFoo.hal
@@ -0,0 +1,52 @@
+package android.hardware.tests.foo@1.0;
+
+import IFooCallback;
+import types;
+
+interface IFoo {
+
+    enum SomeBaseEnum : uint8_t {
+        bar = 66
+    };
+
+    enum SomeEnum : SomeBaseEnum {
+        quux = 33,
+        goober = 192,
+        blah = goober
+    };
+
+    struct Fumble {
+        float x;
+    };
+
+    typedef Fumble Gumble;
+
+    struct Goober {
+        int32_t q;
+        string name;
+        string address;
+        double[10] numbers;
+        Fumble fumble;
+        Gumble gumble;
+        // vec<double> lotsOfFumbles;
+        // handle loveHandle;
+    };
+
+    doThis(float param);
+    doThatAndReturnSomething(int64_t param) generates (int32_t result);
+    doQuiteABit(int32_t a, int64_t b, float c, double d) generates (double something);
+    doSomethingElse(int32_t[15] param) generates (int32_t[32] something);
+    doStuffAndReturnAString() generates (string something);
+    mapThisVector(vec<int32_t> param) generates (vec<int32_t> something);
+    callMe(IFooCallback cb);
+    useAnEnum(SomeEnum zzz) generates (SomeEnum sleepy);
+
+    haveAGooberVec(vec<Goober> param);
+    haveAGoober(Goober g);
+    haveAGooberArray(Goober[20] lots);
+
+    haveATypeFromAnotherFile(Abc def);
+
+    haveSomeStrings(string[3] array) generates (string[2] result);
+    haveAStringVec(vec<string> vector) generates (vec<string> result);
+};
diff --git a/tests/foo/1.0/IFooCallback.hal b/tests/foo/1.0/IFooCallback.hal
new file mode 100644
index 0000000..2bc6c10
--- /dev/null
+++ b/tests/foo/1.0/IFooCallback.hal
@@ -0,0 +1,5 @@
+package android.hardware.tests.foo@1.0;
+
+interface IFooCallback {
+    heyItsMe(IFooCallback cb);
+};
diff --git a/tests/foo/1.0/types.hal b/tests/foo/1.0/types.hal
new file mode 100644
index 0000000..cff022e
--- /dev/null
+++ b/tests/foo/1.0/types.hal
@@ -0,0 +1,7 @@
+package android.hardware.tests.foo@1.0;
+
+struct Abc {
+    string x;
+    float y;
+    handle z;
+};