8217777: TEST_BUG: jdk/java/util/prefs/ExportSubtree.java passes even when test should fail
Reviewed-by: clanger, rriggs
This commit is contained in:
parent
87a26ed29d
commit
76946b97e4
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2009, 2019, 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
|
||||
@ -21,76 +21,74 @@
|
||||
* questions.
|
||||
*/
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.util.prefs.Preferences;
|
||||
|
||||
/* @test
|
||||
* @bug 6203576 4700020 7197662
|
||||
/**
|
||||
* @test
|
||||
* @bug 6203576 4700020 7197662 8217777
|
||||
* @summary checks if the output of exportSubtree() is identical to
|
||||
* the output from previous release.
|
||||
* @run main/othervm -Djava.util.prefs.userRoot=. ExportSubtree
|
||||
*/
|
||||
|
||||
import java.io.*;
|
||||
import java.util.prefs.*;
|
||||
|
||||
public class ExportSubtree {
|
||||
public static void main(String[] args) throws Exception {
|
||||
try
|
||||
{
|
||||
//File f = new File(System.getProperty("test.src", "."), "TestPrefs.xml");
|
||||
ByteArrayInputStream bais = new ByteArrayInputStream(importPrefs.getBytes("utf-8"));
|
||||
Preferences.importPreferences(bais);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
Preferences.userRoot().node("testExportSubtree").exportSubtree(baos);
|
||||
Preferences.userRoot().node("testExportSubtree").removeNode();
|
||||
if (!expectedResult.equals(baos.toString())) {
|
||||
//System.out.print(baos.toString());
|
||||
//System.out.print(expectedResult);
|
||||
throw new IOException("exportSubtree does not output expected result");
|
||||
}
|
||||
}
|
||||
catch( Exception e ) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
private static final String LS = System.getProperty("line.separator");
|
||||
|
||||
static String ls = System.getProperty("line.separator");
|
||||
static String importPrefs =
|
||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
|
||||
+ "<!DOCTYPE preferences SYSTEM \"http://java.sun.com/dtd/preferences.dtd\">"
|
||||
+ "<preferences EXTERNAL_XML_VERSION=\"1.0\">"
|
||||
+ " <root type=\"user\">"
|
||||
+ " <map>"
|
||||
+ " <entry key=\"key1\" value=\"value1\"/>"
|
||||
+ " </map>"
|
||||
+ " <node name=\"testExportSubtree\">"
|
||||
+ " <map>"
|
||||
+ " <entry key=\"key2\" value=\"value2\"/>"
|
||||
+ " </map>"
|
||||
+ " <node name=\"test\">"
|
||||
+ " <map>"
|
||||
+ " <entry key=\"key3\" value=\"value3\"/>"
|
||||
+ " </map>"
|
||||
+ " </node>"
|
||||
+ " </node>"
|
||||
+ " </root>"
|
||||
+ "</preferences>";
|
||||
private static final String IMPORT_PREFS =
|
||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
|
||||
"<!DOCTYPE preferences SYSTEM \"http://java.sun.com/dtd/preferences.dtd\">" +
|
||||
"<preferences EXTERNAL_XML_VERSION=\"1.0\">" +
|
||||
" <root type=\"user\">" +
|
||||
" <map>" +
|
||||
" <entry key=\"key1\" value=\"value1\"/>" +
|
||||
" </map>" +
|
||||
" <node name=\"testExportSubtree\">" +
|
||||
" <map>" +
|
||||
" <entry key=\"key2\" value=\"value2\"/>" +
|
||||
" </map>" +
|
||||
" <node name=\"test\">" +
|
||||
" <map>" +
|
||||
" <entry key=\"key3\" value=\"value3\"/>" +
|
||||
" </map>" +
|
||||
" </node>" +
|
||||
" </node>" +
|
||||
" </root>" +
|
||||
"</preferences>";
|
||||
|
||||
static String expectedResult =
|
||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
|
||||
+ ls + "<!DOCTYPE preferences SYSTEM \"http://java.sun.com/dtd/preferences.dtd\">"
|
||||
+ ls + "<preferences EXTERNAL_XML_VERSION=\"1.0\">"
|
||||
+ ls + " <root type=\"user\">"
|
||||
+ ls + " <map/>"
|
||||
+ ls + " <node name=\"testExportSubtree\">"
|
||||
+ ls + " <map>"
|
||||
+ ls + " <entry key=\"key2\" value=\"value2\"/>"
|
||||
+ ls + " </map>"
|
||||
+ ls + " <node name=\"test\">"
|
||||
+ ls + " <map>"
|
||||
+ ls + " <entry key=\"key3\" value=\"value3\"/>"
|
||||
+ ls + " </map>"
|
||||
+ ls + " </node>"
|
||||
+ ls + " </node>"
|
||||
+ ls + " </root>"
|
||||
+ ls + "</preferences>" + ls;
|
||||
private static final String EXPECTED_RESULT =
|
||||
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" + LS +
|
||||
"<!DOCTYPE preferences SYSTEM \"http://java.sun.com/dtd/preferences.dtd\">" + LS +
|
||||
"<preferences EXTERNAL_XML_VERSION=\"1.0\">" + LS +
|
||||
" <root type=\"user\">" + LS +
|
||||
" <map/>" + LS +
|
||||
" <node name=\"testExportSubtree\">" + LS +
|
||||
" <map>" + LS +
|
||||
" <entry key=\"key2\" value=\"value2\"/>" + LS +
|
||||
" </map>" + LS +
|
||||
" <node name=\"test\">" + LS +
|
||||
" <map>" + LS +
|
||||
" <entry key=\"key3\" value=\"value3\"/>" + LS +
|
||||
" </map>" + LS +
|
||||
" </node>" + LS +
|
||||
" </node>" + LS +
|
||||
" </root>" + LS +
|
||||
"</preferences>" + LS;
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
ByteArrayInputStream bais = new ByteArrayInputStream(IMPORT_PREFS.getBytes("utf-8"));
|
||||
Preferences.importPreferences(bais);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
Preferences.userRoot().node("testExportSubtree").exportSubtree(baos);
|
||||
Preferences.userRoot().node("testExportSubtree").removeNode();
|
||||
if (!EXPECTED_RESULT.equals(baos.toString())) {
|
||||
String errMsg = "Preferences::exportSubtree did not yield the expected result.";
|
||||
System.out.println(errMsg + LS +
|
||||
"Actual:" + LS +
|
||||
baos + LS +
|
||||
"Expected:" + LS +
|
||||
EXPECTED_RESULT);
|
||||
throw new RuntimeException(errMsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user