提交 d096a9c5 编写于 作者: A asaha

Merge

......@@ -403,6 +403,7 @@ c669323bd55ac59ad26c7ee4f47a6daefc82af8e jdk8u45-b11
6a8f9512afa687632f0a0d881bbdb446d984a74c jdk8u45-b12
55a75b0db87693e1e186752f553c337cb035a38e jdk8u45-b13
20e6cadfac43717a81d99daff5e769de695992cd jdk8u45-b14
7087623dfa7033f8738d537864e4bac6b8528172 jdk8u45-b15
c7fbbf6133c339fb56f03241de28666774023d5d jdk8u45-b31
ea547c5a1217fe7916f366950d0e3156e4225aa5 jdk8u45-b32
ac97b69b88e37c18c1b077be8b1f100b6803fea5 jdk8u51-b00
......@@ -416,4 +417,5 @@ f732971e3d20664164a3797cf0b1a4cb80470959 jdk8u51-b03
f7da0b943b9381aaf378d0c7b337dd7654335293 jdk8u51-b08
7e8459e7a45cb5b49de376893e3a95bfa92d0325 jdk8u51-b09
dcc75a75d3a30270fbf52d0d0b0504319882e419 jdk8u51-b10
3ed614d4eee7c3225d48ed7c90622dd888cd143e jdk8u51-b11
286b9a885fcc6245fdf2b20697473ec3b35f2538 jdk8u65-b00
......@@ -26,6 +26,7 @@
* @bug 4406033
* @summary ConfigFile throws an inconsistent error message
* when the configuration file is not found
* @run main/othervm -Duser.language=en InconsistentError
*/
import com.sun.security.auth.login.*;
......
......@@ -25,6 +25,7 @@
* @test
* @bug 4919147
* @summary Support for token-based KeyStores
* @run main/othervm -Duser.language=en OptionTest
*/
import java.io.File;
......
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
* @test
* @bug 8073385
* @summary test that invalid XML character exception string contains
* information about character value, element and attribute names
* @run testng/othervm BadExceptionMessageTest
*/
import java.io.StringReader;
import java.util.Locale;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.xml.sax.SAXException;
import org.xml.sax.InputSource;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import static org.testng.Assert.assertTrue;
public class BadExceptionMessageTest {
private Locale defLoc;
@BeforeClass
private void setup() {
defLoc = Locale.getDefault();
Locale.setDefault(Locale.ENGLISH);
}
@AfterClass
private void cleanup() {
Locale.setDefault(defLoc);
}
@DataProvider(name = "illegalCharactersData")
public static Object[][] illegalCharactersData() {
return new Object[][]{
{0x00},
{0xFFFE},
{0xFFFF}
};
}
@Test(dataProvider = "illegalCharactersData")
public void test(int character) throws Exception {
// Construct the XML document as a String
int[] cps = new int[]{character};
String txt = new String(cps, 0, cps.length);
String inxml = "<topElement attTest=\'" + txt + "\'/>";
String exceptionText = "NO EXCEPTION OBSERVED";
String hexString = "0x" + Integer.toHexString(character);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
dbf.setValidating(false);
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource isrc = new InputSource(new StringReader(inxml));
try {
db.parse(isrc);
} catch (SAXException e) {
exceptionText = e.toString();
}
System.out.println("Got Exception:" + exceptionText);
assertTrue(exceptionText.contains("attribute \"attTest\""));
assertTrue(exceptionText.contains("element is \"topElement\""));
assertTrue(exceptionText.contains("Unicode: " + hexString));
}
}
......@@ -23,10 +23,11 @@
/**
* @test
* @bug 8062923 8062924
* @bug 8062923 8062924 8074297 8076290
* @run testng XslSubstringTest
* @summary Test xsl substring function with negative, Inf and
* NaN length and few other use cases
* NaN length and few other use cases. Also test proper
* processing of supplementary characters by substring function.
*/
import java.io.StringReader;
......@@ -39,6 +40,7 @@ import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import static org.testng.Assert.assertEquals;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class XslSubstringTest {
......@@ -50,6 +52,36 @@ public class XslSubstringTest {
+ "<xsl:template match='/'><t>";
final String xslPost = "</t></xsl:template></xsl:stylesheet>";
@DataProvider(name = "GeneralTestsData")
private Object[][] xmls() {
return new Object[][] {
{ "|<xsl:value-of select=\"substring('asdf',2, 1)\"/>|", "<t>|s|</t>"},
{ "|<xsl:value-of select=\"substring('asdf',2, 1 div 0)\"/>|", "<t>|sdf|</t>"},
{ "|<xsl:value-of select=\"substring('asdf',2, -0 div 0)\"/>|", "<t>||</t>" },
{ "|<xsl:value-of select=\"substring('asdf',2, 1 div 0)\"/>|", "<t>|sdf|</t>" },
// 8076290 bug test case
{ "|<xsl:value-of select=\"substring('123', 0, 3)\"/>|", "<t>|12|</t>"},
};
}
@DataProvider(name = "SupplementaryCharactersTestData")
private Object[][] dataSupplementaryCharacters() {
return new Object[][] {
// 8074297 bug test cases
{ "|<xsl:value-of select=\"substring('&#131083;ABC', 3)\"/>|", "<t>|BC|</t>"},
{ "|<xsl:value-of select=\"substring('&#131083;ABC', 3, 1)\"/>|", "<t>|B|</t>" },
{ "|<xsl:value-of select=\"substring('&#131083;ABC', 2, 2)\"/>|", "<t>|AB|</t>"},
{ "|<xsl:value-of select=\"substring('&#131083;ABC', 3, 2)\"/>|", "<t>|BC|</t>"},
{ "|<xsl:value-of select=\"substring('&#131083;ABC', 3, 4)\"/>|", "<t>|BC|</t>"},
{ "|<xsl:value-of select=\"substring('&#131083;ABC', 1, 1)\"/>|", "<t>|&#131083;|</t>"},
{ "|<xsl:value-of select=\"substring('&#131083;ABC', 2, 1)\"/>|", "<t>|A|</t>"},
{ "|<xsl:value-of select=\"substring('&#131083;ABC', 1, 1 div 0)\"/>|", "<t>|&#131083;ABC|</t>"},
{ "|<xsl:value-of select=\"substring('&#131083;ABC', -10, 1 div 0)\"/>|", "<t>|&#131083;ABC|</t>"},
// 8076290 bug test case
{ "|<xsl:value-of select=\"substring('&#131083;ABC', 0, 2)\"/>|", "<t>|&#131083;|</t>"},
};
}
private String testTransform(String xsl) throws Exception {
//Prepare sources for transormation
Source src = new StreamSource(new StringReader(xml));
......@@ -78,27 +110,14 @@ public class XslSubstringTest {
"<t>||</t>");
}
@Test
public void testGeneral1() throws Exception {
assertEquals(testTransform("|<xsl:value-of select=\"substring('asdf',2, 1)\"/>|"),
"<t>|s|</t>");
@Test(dataProvider = "GeneralTestsData")
public void testGeneralAll(String xsl, String result) throws Exception {
assertEquals(testTransform(xsl), result);
}
@Test
public void testGeneral2() throws Exception {
assertEquals(testTransform("|<xsl:value-of select=\"substring('asdf',2, 1 div 0)\"/>|"),
"<t>|sdf|</t>");
@Test(dataProvider = "SupplementaryCharactersTestData")
public void testSupplementCharacters(String xsl, String result) throws Exception {
assertEquals(testTransform(xsl), result);
}
@Test
public void testGeneral3() throws Exception {
assertEquals(testTransform("|<xsl:value-of select=\"substring('asdf',2, -0 div 0)\"/>|"),
"<t>||</t>");
}
@Test
public void testGeneral4() throws Exception {
assertEquals(testTransform("|<xsl:value-of select=\"substring('asdf',2, 0 div 0)\"/>|"),
"<t>||</t>");
}
}
/*
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -23,57 +23,83 @@
/*
* @test
* @bug 8046817
* @summary schemagen fails to generate xsd for enum types
* @bug 8046817 8073357
* @summary schemagen fails to generate xsd for enum types.
* Check that order of Enum values is preserved.
* @run main/othervm GenerateEnumSchema
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Scanner;
import java.util.stream.Collectors;
public class GenerateEnumSchema {
private static final String SCHEMA_OUTPUT_FILENAME = "schema1.xsd";
private static final File schemaOutputFile = new File(SCHEMA_OUTPUT_FILENAME);
private static final String[] expectedEnums = {
"\"FIRST\"", "\"ONE\"", "\"TWO\"", "\"THREE\"",
"\"FOUR\"", "\"FIVE\"", "\"SIX\"", "\"LAST\""};
private static String schemaContent = "";
public static void main(String[] args) throws Exception {
public static void main(String[] args) throws Exception, IOException {
//Check schema generation for class type
runSchemaGen("TestClassType.java");
checkIfSchemaGenerated();
readSchemaContent();
checkSchemaContent("<xs:complexType name=\"testClassType\">");
checkSchemaContent("<xs:element name=\"a\" type=\"xs:int\"/>");
schemaOutputFile.delete();
//Check schema generation for enum type
runSchemaGen("TestEnumType.java");
checkIfSchemaGenerated();
readSchemaContent();
//Check if Enum type schema is generated
checkSchemaContent("<xs:simpleType name=\"testEnumType\">");
checkSchemaContent("<xs:enumeration value=\"ONE\"/>");
checkSchemaContent("<xs:enumeration value=\"TWO\"/>");
checkSchemaContent("<xs:enumeration value=\"THREE\"/>");
//Check the sequence of enum values order
checkEnumOrder();
schemaOutputFile.delete();
}
// Check if schema file successfully generated by schemagen
private static void checkIfSchemaGenerated() {
if (!schemaOutputFile.exists()) {
throw new RuntimeException("FAIL:" + SCHEMA_OUTPUT_FILENAME + " was not generated by schemagen tool");
}
}
private static void checkSchemaContent(String exp_token) throws FileNotFoundException {
System.out.print("Check if generated schema contains '" + exp_token + "' string: ");
try (Scanner scanner = new Scanner(schemaOutputFile)) {
if (scanner.findWithinHorizon(exp_token, 0) != null) {
System.out.println("OK");
return;
}
//Read schema content from file
private static void readSchemaContent() throws Exception {
schemaContent = Files.lines(schemaOutputFile.toPath()).collect(Collectors.joining(""));
}
// Check if schema file contains specific string
private static void checkSchemaContent(String expContent) {
System.out.print("Check if generated schema contains '" + expContent + "' string: ");
if (schemaContent.contains(expContent)) {
System.out.println("OK");
return;
}
System.out.println("FAIL");
throw new RuntimeException("The '" + exp_token + "' is not found in generated schema");
throw new RuntimeException("The '" + expContent + "' is not found in generated schema");
}
// Check if the generated schema contains all enum constants
// and their order is preserved
private static void checkEnumOrder() throws Exception {
int prevElem = -1;
for (String elem : expectedEnums) {
int curElem = schemaContent.indexOf(elem);
System.out.println(elem + " position = " + curElem);
if (curElem < prevElem) {
throw new RuntimeException("FAIL: Enum values order is incorrect or " + elem + " element is not found");
}
prevElem = curElem;
}
}
private static String getClassFilePath(String filename) {
......
/*
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -25,5 +25,5 @@ import javax.xml.bind.annotation.XmlEnum;
@XmlEnum(String.class)
public enum TestEnumType {
ONE, TWO, THREE
FIRST, ONE, TWO, THREE, FOUR, FIVE, SIX, LAST
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册