Tests for Reference Support.
Bug: 31300815 pointer support
Bug: 31349114 nested types
Bug: 31757611 Parcel ref# cap
Test: `make hidl_test && adb sync && adb shell hidl_test`
Only works with a kernel patch.
Change-Id: I48351b1bf861a4d2d77f823f7242524156cde1e7
diff --git a/tests/pointer/1.0/IGraph.hal b/tests/pointer/1.0/IGraph.hal
new file mode 100644
index 0000000..0853745
--- /dev/null
+++ b/tests/pointer/1.0/IGraph.hal
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+
+package android.hardware.tests.pointer@1.0;
+
+interface IGraph {
+
+ struct Node {
+ int32_t data;
+ };
+ struct Edge {
+ ref<Node> left;
+ ref<Node> right;
+ };
+ struct Graph {
+ vec<Node> nodes;
+ vec<Edge> edges;
+ };
+
+ struct Theta {
+ int32_t data;
+ };
+ struct Alpha {
+ ref<Theta> s_ptr;
+ };
+ struct Beta {
+ ref<Theta> s_ptr;
+ };
+ struct Gamma {
+ ref<Alpha> a_ptr;
+ ref<Beta> b_ptr;
+ };
+
+ passANode(Node n);
+ passAGraph(Graph g);
+ passTwoGraphs(ref<Graph> g1, ref<Graph> g2);
+ giveAGraph() generates (Graph g);
+ passAGamma(Gamma c);
+ passASimpleRef(ref<Alpha> a);
+ passASimpleRefS(ref<Theta> s);
+ giveASimpleRef() generates (ref<Alpha> a);
+
+ getErrors() generates (int32_t errors);
+};