aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJooyung Han <jooyung@google.com>2022-11-30 22:05:11 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-11-30 22:05:11 +0000
commitd5ffe0db1e01bf49781a376ad4297add05955156 (patch)
tree73cecaaaebd9d0e2a7d0a2d5ac731aa7b74eb0e1
parentdd1481b82a0c92d1c48313ff8946c3e6ddbae7d9 (diff)
parent212e17dff82902cdb544afd22370df0ab70f8c1d (diff)
downloadxsdc-d5ffe0db1e01bf49781a376ad4297add05955156.tar.gz
Setup unittest am: aecb36f209 am: 212e17dff8
Original change: https://android-review.googlesource.com/c/platform/system/tools/xsdc/+/2321063 Change-Id: I91b4a3510ba75dac95390bf54aae003ed21d032d Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--Android.bp18
-rw-r--r--src/main/java/com/android/xsdc/CodeWriter.java (renamed from src/com/android/xsdc/CodeWriter.java)0
-rw-r--r--src/main/java/com/android/xsdc/FileSystem.java (renamed from src/com/android/xsdc/FileSystem.java)0
-rw-r--r--src/main/java/com/android/xsdc/Main.java (renamed from src/com/android/xsdc/Main.java)0
-rw-r--r--src/main/java/com/android/xsdc/XmlSchema.java (renamed from src/com/android/xsdc/XmlSchema.java)0
-rw-r--r--src/main/java/com/android/xsdc/XsdConstants.java (renamed from src/com/android/xsdc/XsdConstants.java)0
-rw-r--r--src/main/java/com/android/xsdc/XsdHandler.java (renamed from src/com/android/xsdc/XsdHandler.java)0
-rw-r--r--src/main/java/com/android/xsdc/XsdParserException.java (renamed from src/com/android/xsdc/XsdParserException.java)0
-rw-r--r--src/main/java/com/android/xsdc/cpp/CppCodeGenerator.java (renamed from src/com/android/xsdc/cpp/CppCodeGenerator.java)0
-rw-r--r--src/main/java/com/android/xsdc/cpp/CppCodeGeneratorException.java (renamed from src/com/android/xsdc/cpp/CppCodeGeneratorException.java)0
-rw-r--r--src/main/java/com/android/xsdc/cpp/CppComplexType.java (renamed from src/com/android/xsdc/cpp/CppComplexType.java)0
-rw-r--r--src/main/java/com/android/xsdc/cpp/CppSimpleType.java (renamed from src/com/android/xsdc/cpp/CppSimpleType.java)0
-rw-r--r--src/main/java/com/android/xsdc/cpp/CppType.java (renamed from src/com/android/xsdc/cpp/CppType.java)0
-rw-r--r--src/main/java/com/android/xsdc/cpp/Utils.java (renamed from src/com/android/xsdc/cpp/Utils.java)0
-rw-r--r--src/main/java/com/android/xsdc/java/JavaCodeGenerator.java (renamed from src/com/android/xsdc/java/JavaCodeGenerator.java)0
-rw-r--r--src/main/java/com/android/xsdc/java/JavaCodeGeneratorException.java (renamed from src/com/android/xsdc/java/JavaCodeGeneratorException.java)0
-rw-r--r--src/main/java/com/android/xsdc/java/JavaComplexType.java (renamed from src/com/android/xsdc/java/JavaComplexType.java)0
-rw-r--r--src/main/java/com/android/xsdc/java/JavaSimpleType.java (renamed from src/com/android/xsdc/java/JavaSimpleType.java)0
-rw-r--r--src/main/java/com/android/xsdc/java/JavaType.java (renamed from src/com/android/xsdc/java/JavaType.java)0
-rw-r--r--src/main/java/com/android/xsdc/java/Utils.java (renamed from src/com/android/xsdc/java/Utils.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/Nullability.java (renamed from src/com/android/xsdc/tag/Nullability.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdAll.java (renamed from src/com/android/xsdc/tag/XsdAll.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdAttribute.java (renamed from src/com/android/xsdc/tag/XsdAttribute.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdAttributeGroup.java (renamed from src/com/android/xsdc/tag/XsdAttributeGroup.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdChoice.java (renamed from src/com/android/xsdc/tag/XsdChoice.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdComplexContent.java (renamed from src/com/android/xsdc/tag/XsdComplexContent.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdComplexType.java (renamed from src/com/android/xsdc/tag/XsdComplexType.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdElement.java (renamed from src/com/android/xsdc/tag/XsdElement.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdEnumRestriction.java (renamed from src/com/android/xsdc/tag/XsdEnumRestriction.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdEnumeration.java (renamed from src/com/android/xsdc/tag/XsdEnumeration.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdGeneralExtension.java (renamed from src/com/android/xsdc/tag/XsdGeneralExtension.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdGeneralRestriction.java (renamed from src/com/android/xsdc/tag/XsdGeneralRestriction.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdGroup.java (renamed from src/com/android/xsdc/tag/XsdGroup.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdList.java (renamed from src/com/android/xsdc/tag/XsdList.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdRestriction.java (renamed from src/com/android/xsdc/tag/XsdRestriction.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdSimpleContent.java (renamed from src/com/android/xsdc/tag/XsdSimpleContent.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdSimpleType.java (renamed from src/com/android/xsdc/tag/XsdSimpleType.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdTag.java (renamed from src/com/android/xsdc/tag/XsdTag.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdType.java (renamed from src/com/android/xsdc/tag/XsdType.java)0
-rw-r--r--src/main/java/com/android/xsdc/tag/XsdUnion.java (renamed from src/com/android/xsdc/tag/XsdUnion.java)0
-rw-r--r--src/test/kotlin/TestCppCodeGenerator.kt94
41 files changed, 111 insertions, 1 deletions
diff --git a/Android.bp b/Android.bp
index e731a13..90977c3 100644
--- a/Android.bp
+++ b/Android.bp
@@ -4,9 +4,25 @@ package {
java_binary_host {
name: "xsdc",
- srcs: ["src/**/*.java"],
+ srcs: [
+ "src/main/java/**/*.java",
+ ],
static_libs: [
"commons-cli-1.2",
],
manifest: "MANIFEST.MF"
}
+
+java_test_host {
+ name: "xsdc-unittest",
+ srcs: [
+ "src/test/java/**/*.java",
+ "src/test/kotlin/**/*.kt",
+ ],
+ static_libs: [
+ "commons-cli-1.2",
+ "kotlin-test",
+ "junit",
+ "xsdc",
+ ],
+}
diff --git a/src/com/android/xsdc/CodeWriter.java b/src/main/java/com/android/xsdc/CodeWriter.java
index 489ccdc..489ccdc 100644
--- a/src/com/android/xsdc/CodeWriter.java
+++ b/src/main/java/com/android/xsdc/CodeWriter.java
diff --git a/src/com/android/xsdc/FileSystem.java b/src/main/java/com/android/xsdc/FileSystem.java
index 2d746f3..2d746f3 100644
--- a/src/com/android/xsdc/FileSystem.java
+++ b/src/main/java/com/android/xsdc/FileSystem.java
diff --git a/src/com/android/xsdc/Main.java b/src/main/java/com/android/xsdc/Main.java
index c85cdc1..c85cdc1 100644
--- a/src/com/android/xsdc/Main.java
+++ b/src/main/java/com/android/xsdc/Main.java
diff --git a/src/com/android/xsdc/XmlSchema.java b/src/main/java/com/android/xsdc/XmlSchema.java
index 4bfa3fd..4bfa3fd 100644
--- a/src/com/android/xsdc/XmlSchema.java
+++ b/src/main/java/com/android/xsdc/XmlSchema.java
diff --git a/src/com/android/xsdc/XsdConstants.java b/src/main/java/com/android/xsdc/XsdConstants.java
index 6c79b9b..6c79b9b 100644
--- a/src/com/android/xsdc/XsdConstants.java
+++ b/src/main/java/com/android/xsdc/XsdConstants.java
diff --git a/src/com/android/xsdc/XsdHandler.java b/src/main/java/com/android/xsdc/XsdHandler.java
index f6a9492..f6a9492 100644
--- a/src/com/android/xsdc/XsdHandler.java
+++ b/src/main/java/com/android/xsdc/XsdHandler.java
diff --git a/src/com/android/xsdc/XsdParserException.java b/src/main/java/com/android/xsdc/XsdParserException.java
index aa755d5..aa755d5 100644
--- a/src/com/android/xsdc/XsdParserException.java
+++ b/src/main/java/com/android/xsdc/XsdParserException.java
diff --git a/src/com/android/xsdc/cpp/CppCodeGenerator.java b/src/main/java/com/android/xsdc/cpp/CppCodeGenerator.java
index 6c91355..6c91355 100644
--- a/src/com/android/xsdc/cpp/CppCodeGenerator.java
+++ b/src/main/java/com/android/xsdc/cpp/CppCodeGenerator.java
diff --git a/src/com/android/xsdc/cpp/CppCodeGeneratorException.java b/src/main/java/com/android/xsdc/cpp/CppCodeGeneratorException.java
index a6ccf2a..a6ccf2a 100644
--- a/src/com/android/xsdc/cpp/CppCodeGeneratorException.java
+++ b/src/main/java/com/android/xsdc/cpp/CppCodeGeneratorException.java
diff --git a/src/com/android/xsdc/cpp/CppComplexType.java b/src/main/java/com/android/xsdc/cpp/CppComplexType.java
index 4a87afa..4a87afa 100644
--- a/src/com/android/xsdc/cpp/CppComplexType.java
+++ b/src/main/java/com/android/xsdc/cpp/CppComplexType.java
diff --git a/src/com/android/xsdc/cpp/CppSimpleType.java b/src/main/java/com/android/xsdc/cpp/CppSimpleType.java
index 5168329..5168329 100644
--- a/src/com/android/xsdc/cpp/CppSimpleType.java
+++ b/src/main/java/com/android/xsdc/cpp/CppSimpleType.java
diff --git a/src/com/android/xsdc/cpp/CppType.java b/src/main/java/com/android/xsdc/cpp/CppType.java
index 05d4da9..05d4da9 100644
--- a/src/com/android/xsdc/cpp/CppType.java
+++ b/src/main/java/com/android/xsdc/cpp/CppType.java
diff --git a/src/com/android/xsdc/cpp/Utils.java b/src/main/java/com/android/xsdc/cpp/Utils.java
index d54a9aa..d54a9aa 100644
--- a/src/com/android/xsdc/cpp/Utils.java
+++ b/src/main/java/com/android/xsdc/cpp/Utils.java
diff --git a/src/com/android/xsdc/java/JavaCodeGenerator.java b/src/main/java/com/android/xsdc/java/JavaCodeGenerator.java
index f0a1495..f0a1495 100644
--- a/src/com/android/xsdc/java/JavaCodeGenerator.java
+++ b/src/main/java/com/android/xsdc/java/JavaCodeGenerator.java
diff --git a/src/com/android/xsdc/java/JavaCodeGeneratorException.java b/src/main/java/com/android/xsdc/java/JavaCodeGeneratorException.java
index b37a284..b37a284 100644
--- a/src/com/android/xsdc/java/JavaCodeGeneratorException.java
+++ b/src/main/java/com/android/xsdc/java/JavaCodeGeneratorException.java
diff --git a/src/com/android/xsdc/java/JavaComplexType.java b/src/main/java/com/android/xsdc/java/JavaComplexType.java
index e25acd7..e25acd7 100644
--- a/src/com/android/xsdc/java/JavaComplexType.java
+++ b/src/main/java/com/android/xsdc/java/JavaComplexType.java
diff --git a/src/com/android/xsdc/java/JavaSimpleType.java b/src/main/java/com/android/xsdc/java/JavaSimpleType.java
index 5ad905f..5ad905f 100644
--- a/src/com/android/xsdc/java/JavaSimpleType.java
+++ b/src/main/java/com/android/xsdc/java/JavaSimpleType.java
diff --git a/src/com/android/xsdc/java/JavaType.java b/src/main/java/com/android/xsdc/java/JavaType.java
index 8605f5d..8605f5d 100644
--- a/src/com/android/xsdc/java/JavaType.java
+++ b/src/main/java/com/android/xsdc/java/JavaType.java
diff --git a/src/com/android/xsdc/java/Utils.java b/src/main/java/com/android/xsdc/java/Utils.java
index 5a7a92a..5a7a92a 100644
--- a/src/com/android/xsdc/java/Utils.java
+++ b/src/main/java/com/android/xsdc/java/Utils.java
diff --git a/src/com/android/xsdc/tag/Nullability.java b/src/main/java/com/android/xsdc/tag/Nullability.java
index 9e81635..9e81635 100644
--- a/src/com/android/xsdc/tag/Nullability.java
+++ b/src/main/java/com/android/xsdc/tag/Nullability.java
diff --git a/src/com/android/xsdc/tag/XsdAll.java b/src/main/java/com/android/xsdc/tag/XsdAll.java
index 39c2562..39c2562 100644
--- a/src/com/android/xsdc/tag/XsdAll.java
+++ b/src/main/java/com/android/xsdc/tag/XsdAll.java
diff --git a/src/com/android/xsdc/tag/XsdAttribute.java b/src/main/java/com/android/xsdc/tag/XsdAttribute.java
index 0c46eb0..0c46eb0 100644
--- a/src/com/android/xsdc/tag/XsdAttribute.java
+++ b/src/main/java/com/android/xsdc/tag/XsdAttribute.java
diff --git a/src/com/android/xsdc/tag/XsdAttributeGroup.java b/src/main/java/com/android/xsdc/tag/XsdAttributeGroup.java
index 6c8f853..6c8f853 100644
--- a/src/com/android/xsdc/tag/XsdAttributeGroup.java
+++ b/src/main/java/com/android/xsdc/tag/XsdAttributeGroup.java
diff --git a/src/com/android/xsdc/tag/XsdChoice.java b/src/main/java/com/android/xsdc/tag/XsdChoice.java
index 223bb44..223bb44 100644
--- a/src/com/android/xsdc/tag/XsdChoice.java
+++ b/src/main/java/com/android/xsdc/tag/XsdChoice.java
diff --git a/src/com/android/xsdc/tag/XsdComplexContent.java b/src/main/java/com/android/xsdc/tag/XsdComplexContent.java
index aa9de87..aa9de87 100644
--- a/src/com/android/xsdc/tag/XsdComplexContent.java
+++ b/src/main/java/com/android/xsdc/tag/XsdComplexContent.java
diff --git a/src/com/android/xsdc/tag/XsdComplexType.java b/src/main/java/com/android/xsdc/tag/XsdComplexType.java
index a7e0311..a7e0311 100644
--- a/src/com/android/xsdc/tag/XsdComplexType.java
+++ b/src/main/java/com/android/xsdc/tag/XsdComplexType.java
diff --git a/src/com/android/xsdc/tag/XsdElement.java b/src/main/java/com/android/xsdc/tag/XsdElement.java
index 40a6695..40a6695 100644
--- a/src/com/android/xsdc/tag/XsdElement.java
+++ b/src/main/java/com/android/xsdc/tag/XsdElement.java
diff --git a/src/com/android/xsdc/tag/XsdEnumRestriction.java b/src/main/java/com/android/xsdc/tag/XsdEnumRestriction.java
index 3ae7ae0..3ae7ae0 100644
--- a/src/com/android/xsdc/tag/XsdEnumRestriction.java
+++ b/src/main/java/com/android/xsdc/tag/XsdEnumRestriction.java
diff --git a/src/com/android/xsdc/tag/XsdEnumeration.java b/src/main/java/com/android/xsdc/tag/XsdEnumeration.java
index 2f9fdc0..2f9fdc0 100644
--- a/src/com/android/xsdc/tag/XsdEnumeration.java
+++ b/src/main/java/com/android/xsdc/tag/XsdEnumeration.java
diff --git a/src/com/android/xsdc/tag/XsdGeneralExtension.java b/src/main/java/com/android/xsdc/tag/XsdGeneralExtension.java
index 24043e4..24043e4 100644
--- a/src/com/android/xsdc/tag/XsdGeneralExtension.java
+++ b/src/main/java/com/android/xsdc/tag/XsdGeneralExtension.java
diff --git a/src/com/android/xsdc/tag/XsdGeneralRestriction.java b/src/main/java/com/android/xsdc/tag/XsdGeneralRestriction.java
index 6583622..6583622 100644
--- a/src/com/android/xsdc/tag/XsdGeneralRestriction.java
+++ b/src/main/java/com/android/xsdc/tag/XsdGeneralRestriction.java
diff --git a/src/com/android/xsdc/tag/XsdGroup.java b/src/main/java/com/android/xsdc/tag/XsdGroup.java
index dd8f008..dd8f008 100644
--- a/src/com/android/xsdc/tag/XsdGroup.java
+++ b/src/main/java/com/android/xsdc/tag/XsdGroup.java
diff --git a/src/com/android/xsdc/tag/XsdList.java b/src/main/java/com/android/xsdc/tag/XsdList.java
index 70023c8..70023c8 100644
--- a/src/com/android/xsdc/tag/XsdList.java
+++ b/src/main/java/com/android/xsdc/tag/XsdList.java
diff --git a/src/com/android/xsdc/tag/XsdRestriction.java b/src/main/java/com/android/xsdc/tag/XsdRestriction.java
index 17dfdd5..17dfdd5 100644
--- a/src/com/android/xsdc/tag/XsdRestriction.java
+++ b/src/main/java/com/android/xsdc/tag/XsdRestriction.java
diff --git a/src/com/android/xsdc/tag/XsdSimpleContent.java b/src/main/java/com/android/xsdc/tag/XsdSimpleContent.java
index cefa60e..cefa60e 100644
--- a/src/com/android/xsdc/tag/XsdSimpleContent.java
+++ b/src/main/java/com/android/xsdc/tag/XsdSimpleContent.java
diff --git a/src/com/android/xsdc/tag/XsdSimpleType.java b/src/main/java/com/android/xsdc/tag/XsdSimpleType.java
index c7d7e37..c7d7e37 100644
--- a/src/com/android/xsdc/tag/XsdSimpleType.java
+++ b/src/main/java/com/android/xsdc/tag/XsdSimpleType.java
diff --git a/src/com/android/xsdc/tag/XsdTag.java b/src/main/java/com/android/xsdc/tag/XsdTag.java
index 3397267..3397267 100644
--- a/src/com/android/xsdc/tag/XsdTag.java
+++ b/src/main/java/com/android/xsdc/tag/XsdTag.java
diff --git a/src/com/android/xsdc/tag/XsdType.java b/src/main/java/com/android/xsdc/tag/XsdType.java
index a7e41a0..a7e41a0 100644
--- a/src/com/android/xsdc/tag/XsdType.java
+++ b/src/main/java/com/android/xsdc/tag/XsdType.java
diff --git a/src/com/android/xsdc/tag/XsdUnion.java b/src/main/java/com/android/xsdc/tag/XsdUnion.java
index f738330..f738330 100644
--- a/src/com/android/xsdc/tag/XsdUnion.java
+++ b/src/main/java/com/android/xsdc/tag/XsdUnion.java
diff --git a/src/test/kotlin/TestCppCodeGenerator.kt b/src/test/kotlin/TestCppCodeGenerator.kt
new file mode 100644
index 0000000..fb52b4b
--- /dev/null
+++ b/src/test/kotlin/TestCppCodeGenerator.kt
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2022, 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 com.android.xsdc
+
+import com.android.xsdc.cpp.CppCodeGenerator
+import java.io.ByteArrayInputStream
+import java.util.TreeMap
+import javax.xml.parsers.SAXParserFactory
+import kotlin.test.assertEquals
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+
+@RunWith(JUnit4::class)
+class TestCppCodeGenerator {
+
+ val classSchema =
+ schema(
+ """
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="class" type="xs:string" />
+ </xs:schema>
+ """
+ )
+
+ @Test
+ fun parseSchema() {
+ assertEquals(classSchema.elementMap.keys, setOf("class"))
+ }
+
+ @Test
+ fun printWithoutEnumOutput() {
+ val files = TreeMap<String, StringBuffer>()
+ val fs = FileSystem(files)
+ val gen =
+ CppCodeGenerator(
+ classSchema,
+ "com.abc",
+ /*writer=*/ true,
+ CppCodeGenerator.GENERATE_PARSER,
+ /*booleanGetter=*/ true,
+ /*useTinyXml=*/ false
+ )
+ gen.print(fs)
+
+ assertEquals(files.keys, setOf("com_abc.cpp", "include/com_abc.h"))
+ }
+
+ @Test
+ fun printWithEnumOutput() {
+ val files = TreeMap<String, StringBuffer>()
+ val fs = FileSystem(files)
+ val gen =
+ CppCodeGenerator(
+ classSchema,
+ "com.abc",
+ /*writer=*/ true,
+ CppCodeGenerator.GENERATE_PARSER or CppCodeGenerator.GENERATE_ENUMS,
+ /*booleanGetter=*/ true,
+ /*useTinyXml=*/ false
+ )
+ gen.print(fs)
+
+ assertEquals(
+ files.keys,
+ setOf("com_abc.cpp", "include/com_abc.h", "com_abc_enums.cpp", "include/com_abc_enums.h")
+ )
+ }
+
+ fun schema(contents: String): XmlSchema {
+ val charset = Charsets.UTF_8
+ val bytes = contents.toByteArray(charset)
+ val factory = SAXParserFactory.newInstance()
+ factory.setNamespaceAware(true)
+ val parser = factory.newSAXParser()
+ val xsdHandler = XsdHandler()
+ parser.parse(ByteArrayInputStream(bytes), xsdHandler)
+ return xsdHandler.getSchema()
+ }
+}