summaryrefslogtreecommitdiff
path: root/test/712-varhandle-invocations/util-src/generate_java.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/712-varhandle-invocations/util-src/generate_java.py')
-rw-r--r--test/712-varhandle-invocations/util-src/generate_java.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/test/712-varhandle-invocations/util-src/generate_java.py b/test/712-varhandle-invocations/util-src/generate_java.py
index f535b400f8..5d4bced7ab 100644
--- a/test/712-varhandle-invocations/util-src/generate_java.py
+++ b/test/712-varhandle-invocations/util-src/generate_java.py
@@ -77,7 +77,7 @@ class ValueType(JavaType):
BOOLEAN_TYPE = ValueType("boolean", "Boolean", [ "true", "false" ], ordinal = 0, width = 1, supports_numeric=False)
BYTE_TYPE=ValueType("byte", "Byte", [ "(byte) -128", "(byte) -61", "(byte) 7", "(byte) 127", "(byte) 33" ], ordinal=1, width=1)
SHORT_TYPE=ValueType("short", "Short", [ "(short) -32768", "(short) -384", "(short) 32767", "(short) 0xaa55" ], ordinal=2, width=2)
-CHAR_TYPE=ValueType("char", "Character", [ r"'A'", r"'#'", r"'$'", r"'Z'", r"'t'", r"'c'" ], ordinal=3, width=2)
+CHAR_TYPE=ValueType("char", "Character", [ r"'A'", r"'#'", r"'$'", r"'Z'", r"'t'", r"'c'", r"Character.MAX_VALUE", r"Character.MIN_LOW_SURROGATE"], ordinal=3, width=2)
INT_TYPE=ValueType("int", "Integer", [ "-0x01234567", "0x7f6e5d4c", "0x12345678", "0x10215220", "42" ], ordinal=4, width=4)
LONG_TYPE=ValueType("long", "Long", [ "-0x0123456789abcdefl", "0x789abcdef0123456l", "0xfedcba9876543210l" ], ordinal=5, width=8)
FLOAT_TYPE=ValueType("float", "Float", [ "-7.77e23f", "1.234e-17f", "3.40e36f", "-8.888e3f", "4.442e11f" ], ordinal=6, width=4, supports_bitwise=False)
@@ -722,6 +722,16 @@ def emit_reference_accessor_tests(output_path):
for accessor in VAR_HANDLE_ACCESSORS:
emit_accessor_test(var_handle_kind, accessor, ref_type, output_path)
+def emit_interface_accessor_tests(output_path):
+ ref_type = JavaType("WidgetInterface", [ "Widget.ONE", "Widget.TWO", "null" ])
+ for var_handle_kind in ALL_VAR_HANDLE_KINDS:
+ if var_handle_kind.is_view():
+ # Views as reference type arrays are not supported. They
+ # fail instantiation. This is tested in 710-varhandle-creation.
+ continue
+ for accessor in VAR_HANDLE_ACCESSORS:
+ emit_accessor_test(var_handle_kind, accessor, ref_type, output_path)
+
def emit_boxing_value_type_accessor_test(accessor, var_type, output_path):
test_class = "Boxing" + capitalize_first(accessor.method_name) + capitalize_first(var_type.name)
GENERATED_TEST_CLASSES.append(test_class)
@@ -873,6 +883,7 @@ def main(argv):
sys.exit(1)
emit_value_type_accessor_tests(final_java_dir)
emit_reference_accessor_tests(final_java_dir)
+ emit_interface_accessor_tests(final_java_dir)
emit_boxing_value_type_accessor_tests(final_java_dir)
emit_main(final_java_dir, argv[2:])