Updated tests for constant expressions.
Test: `make android.hardware.tests.expression@1.0` compiles
and generates enum class Color with autofilled values.
Test: `make hidl_test_java` succeeded.
Test: `make hidl_test` succeeded.
Bug: 31628863 Add test for autofilling enum values.
Bug: 31592132 allow constant expressions be array sizes.
Change-Id: I79f35365f1d37843922725ad5a405848f3e8ec08
diff --git a/tests/expression/1.0/IExpression.hal b/tests/expression/1.0/IExpression.hal
index ead131f..4c38e5a 100644
--- a/tests/expression/1.0/IExpression.hal
+++ b/tests/expression/1.0/IExpression.hal
@@ -144,4 +144,54 @@
logand4 = (0 && 1) == 0,
};
+ enum Grayscale : int8_t {
+ WHITE = 126,
+ GRAY, // 127
+ DARK_GRAY, // -128
+ BLACK // -127
+ };
+
+ enum Color : Grayscale {
+ RED, // -126
+ RUBY = 0,
+ GREEN, // 1
+ BLUE = 5,
+ CYAN, // 6
+ ORANGE, // 7
+ ROSE = WHITE,
+ };
+
+ enum Foo1 : int8_t {};
+ enum Foo2 : Foo1 {};
+ enum Foo3 : Foo2 {
+ BAR1, // 0
+ BAR2 = 10,
+ };
+ enum Foo4 : Foo3 {
+ BAR3, // 11
+ BAR4 = BAR2 + BAR3 // 21
+ };
+
+ enum Number : uint8_t {
+ MAX = 255,
+ MAX_PLUS_1, // 0
+ MAX_PLUS_2 // 1
+ };
+
+ enum Constants {
+ CONST_FOO,
+ CONST_BAR = 70,
+ MAX_ARRAY_SIZE = 20,
+ MAX_ARRAY_SIZE2,
+ MAX_ARRAY_SIZE3 = MAX_ARRAY_SIZE + MAX_ARRAY_SIZE,
+ MY_INT32_MAX_MINUS_1 = 0x7FFFFFFE,
+ MY_INT32_MAX, // 0x7FFFFFFF
+ MY_INT32_MIN, // 0x80000000
+ MY_INT32_MIN_PLUS_1, // 0x80000001
+ };
+
+ @callflow(key=Constants:CONST_FOO + 1)
+ foo1(int32_t[Constants:CONST_FOO + 1] array);
+ foo2(int32_t[5 + 8] array);
+ foo3(int32_t[Constants:MAX_ARRAY_SIZE] array);
};