Add compile time test to c2hal

This new build rule verifies that c2hal can convert simple.h to
a valid .hal format by generating the C++ files and compiling
the ISimple's shared library.

Test: "make c2hal_test" and verify output
Bug: 32608667
Change-Id: I51021e1441c88cae08872c3fdc81642705c8e17e
diff --git a/c2hal/Android.bp b/c2hal/Android.bp
index f901d24..a634ed6 100644
--- a/c2hal/Android.bp
+++ b/c2hal/Android.bp
@@ -12,6 +12,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+subdirs = [
+    "test",
+]
+
+
 cc_binary_host {
     name: "c2hal",
     srcs: [
diff --git a/c2hal/test/Android.bp b/c2hal/test/Android.bp
new file mode 100644
index 0000000..5b475c0
--- /dev/null
+++ b/c2hal/test/Android.bp
@@ -0,0 +1,69 @@
+// Copyright (C) 2016 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.
+//
+
+genrule {
+    name: "c2hal_test_genc++_headers",
+    tools: [
+        "c2hal",
+        "hidl-gen",
+    ],
+    cmd: "$(location c2hal) -o $(genDir)/c2hal_test/1.0 " +
+         "-p android.hardware.c2hal_test@1.0 $(in) && " +
+         "$(location hidl-gen) -o $(genDir) -Lc++ " +
+         "-r android.hardware:$(genDir) " +
+         "android.hardware.c2hal_test@1.0::ISimple",
+    srcs: [
+        "simple.h",
+    ],
+    out: [
+        "android/hardware/c2hal_test/1.0/BnSimple.h",
+        "android/hardware/c2hal_test/1.0/BpSimple.h",
+        "android/hardware/c2hal_test/1.0/BsSimple.h",
+        "android/hardware/c2hal_test/1.0/IHwSimple.h",
+        "android/hardware/c2hal_test/1.0/ISimple.h",
+    ],
+}
+
+genrule {
+    name: "c2hal_test_genc++",
+    tools: [
+        "c2hal",
+        "hidl-gen",
+    ],
+    cmd: "$(location c2hal) -o $(genDir)/c2hal_test/1.0 " +
+         "-p android.hardware.c2hal_test@1.0 $(in) && " +
+         "$(location hidl-gen) -o $(genDir) -Lc++ " +
+         "-r android.hardware:$(genDir) " +
+         "android.hardware.c2hal_test@1.0::ISimple",
+    srcs: [
+        "simple.h",
+    ],
+    out: [
+        "android/hardware/c2hal_test/1.0/SimpleAll.cpp",
+    ],
+}
+
+cc_library_shared {
+    name: "c2hal_test",
+    generated_headers: ["c2hal_test_genc++_headers"],
+    generated_sources: ["c2hal_test_genc++"],
+    export_generated_headers: ["c2hal_test_genc++_headers"],
+    shared_libs: [
+        "libhidl",
+        "libhwbinder",
+        "libutils",
+        "libcutils",
+    ],
+}