summaryrefslogtreecommitdiff
path: root/lib/java/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'lib/java/src/test')
-rw-r--r--lib/java/src/test/java/org/apache/thrift/TestDefinitionOrder.java (renamed from lib/java/src/test/java/org/apache/thrift/TestStructOrder.java)16
-rw-r--r--lib/java/src/test/resources/JavaDefinitionOrderA.thrift (renamed from lib/java/src/test/resources/JavaStructOrderA.thrift)24
-rw-r--r--lib/java/src/test/resources/JavaDefinitionOrderB.thrift (renamed from lib/java/src/test/resources/JavaStructOrderB.thrift)23
3 files changed, 53 insertions, 10 deletions
diff --git a/lib/java/src/test/java/org/apache/thrift/TestStructOrder.java b/lib/java/src/test/java/org/apache/thrift/TestDefinitionOrder.java
index dd67d9b5d..51021b791 100644
--- a/lib/java/src/test/java/org/apache/thrift/TestStructOrder.java
+++ b/lib/java/src/test/java/org/apache/thrift/TestDefinitionOrder.java
@@ -26,20 +26,20 @@ import java.util.Arrays;
import java.util.List;
import org.junit.jupiter.api.Test;
-// Tests that declaring structs in different order (esp. when they reference each other) generates
+// Tests that declaring fields in different order (esp. when they reference each other) generates
// identical code
-public class TestStructOrder {
+public class TestDefinitionOrder {
@Test
- public void testStructOrder() throws Exception {
- List<String> filenames = Arrays.asList("Parent.java", "Child.java");
+ public void testDefinitionOrder() throws Exception {
+ List<String> filenames = Arrays.asList("Parent.java", "Child.java", "MyEnum.java");
for (String fn : filenames) {
- String fnA = "struct-order-test/a/" + fn;
- String fnB = "struct-order-test/b/" + fn;
+ String fnA = "definition-order-test/a/" + fn;
+ String fnB = "definition-order-test/b/" + fn;
- try (InputStream isA = TestStructOrder.class.getClassLoader().getResourceAsStream(fnA);
- InputStream isB = TestStructOrder.class.getClassLoader().getResourceAsStream(fnB)) {
+ try (InputStream isA = TestDefinitionOrder.class.getClassLoader().getResourceAsStream(fnA);
+ InputStream isB = TestDefinitionOrder.class.getClassLoader().getResourceAsStream(fnB)) {
assertNotNull(isA, "Resource not found: " + fnA);
assertNotNull(isB, "Resource not found: " + fnB);
diff --git a/lib/java/src/test/resources/JavaStructOrderA.thrift b/lib/java/src/test/resources/JavaDefinitionOrderA.thrift
index f00a7106d..9b4296443 100644
--- a/lib/java/src/test/resources/JavaStructOrderA.thrift
+++ b/lib/java/src/test/resources/JavaDefinitionOrderA.thrift
@@ -22,7 +22,29 @@ struct Parent {
1: required string Name
}
+typedef Parent MyParent
+typedef list<Parent> Parents
+
+enum MyEnum {
+ FOO = 1
+ BAR = 2
+}
+
+typedef i8 Age
+typedef MyEnum MyEnumV2
+typedef set<MyEnum> MyEnums
+typedef map<MyEnumV2, Parent> MyMapping
+typedef binary MyBinary
+
struct Child {
1: required string Name
- 2: required Parent Parent
+ 2: required Age Age
+ 3: required Parent Parent1
+ 4: required MyParent Parent2
+ 5: required Parents GrandParents
+ 6: required MyEnum MyEnum
+ 7: required MyEnumV2 MyEnumV2
+ 8: required MyEnums MyEnums
+ 9: required MyMapping MyMapping
+ 10: required MyBinary MyBinary
}
diff --git a/lib/java/src/test/resources/JavaStructOrderB.thrift b/lib/java/src/test/resources/JavaDefinitionOrderB.thrift
index 4682668b3..0cccd9705 100644
--- a/lib/java/src/test/resources/JavaStructOrderB.thrift
+++ b/lib/java/src/test/resources/JavaDefinitionOrderB.thrift
@@ -21,9 +21,30 @@
// fixing THRIFT-4086: Java compiler generates different meta data depending on order of structures in file
struct Child {
1: required string Name
- 2: required Parent Parent
+ 2: required Age Age
+ 3: required Parent Parent1
+ 4: required MyParent Parent2
+ 5: required Parents GrandParents
+ 6: required MyEnum MyEnum
+ 7: required MyEnumV2 MyEnumV2
+ 8: required MyEnums MyEnums
+ 9: required MyMapping MyMapping
+ 10: required MyBinary MyBinary
}
+typedef i8 Age
+typedef Parent MyParent
+typedef list<Parent> Parents
+typedef MyEnum MyEnumV2
+typedef set<MyEnum> MyEnums
+typedef map<MyEnumV2, Parent> MyMapping
+typedef binary MyBinary
+
struct Parent {
1: required string Name
}
+
+enum MyEnum {
+ FOO = 1
+ BAR = 2
+}