--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/net/ssl/compatibility/README Tue Nov 28 22:19:34 2017 -0800
@@ -0,0 +1,130 @@
+# Copyright (c) 2017, 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.
+
+##### Summary #####
+This test is used to check the interop compatibility on JSSE among different
+JDK releases. The oldest version supported by the test is JDK 6. Some of Java
+source files, JdkUtils.java, Parameter.java, Server.java, and Client.java, use
+only JDK 6-compliant language features and APIs, in order to allowing different
+JDK releases can load and run associated classes.
+
+##### Output #####
+The test can generate a report at $JTREG_WORKDIR/scratch/report.html to display
+the key information for each case. It also outputs all of details on both of
+server and client sides to a separated file at $JTREG_WORKDIR/scratch/test.html.
+
+##### Report Columns #####
+No.
+ A sequence number. It contains a hyper link to the corresponding details
+ in $JTREG_WORKDIR/scratch/test.html.
+
+ServerJDK
+ The version of the JDK that acts as server.
+
+ClientJDK
+ The version of the JDK that acts as client.
+
+Protocol
+ The TLS protocol version.
+
+CipherSuite
+ The only enabled cipher suite on both of server and client.
+
+ClientAuth
+ If the client authentication is checked, the value is "Y"; otherwise, "N".
+
+SNI
+ If the SNI is checked, the value is "Y"; otherwise, "N".
+
+ALPN
+ If the ALPN is checked, the value is "Y"; otherwise, "N".
+
+Status
+ It indicates the communication status for a test case.
+ There are three status:
+ SUCCESS: Communication succeed as expected.
+ UNEXPECTED_SUCCESS: Communication succeed as unexpected.
+ FAIL: Communication fails with unexpected failure.
+ EXPECTED_FAIL: Communication fails with expected failure.
+ Please note that, if a case finishes as status UNEXPECTED_SUCCESS or FAIL,
+ that means the case fails. Any failed case results in the test goes to fail.
+
+##### Usage #####
+jtreg [-options] \
+ [-Ddebug=<true|false>] \
+ [-DfullCases=<true|false>] \
+ [-DfullCipherSuites=<true|false>] \
+ [-DjdkListFile=</path/to/jdkListFile>] \
+ $JDK_WORKSPACE/test/jdk/javax/net/ssl/compatibility/Compatibility.java
+
+Besides the common jtreg options, like -jdk, this test introduces some more
+properties:
+debug
+ It indicates if the test enable -Djavax.net.ssl=debug. This is a boolean
+ property, and the default value is false.
+ It is not mandatory.
+
+fullCases
+ It indicates if testing the full or mandatory set of parameter values.
+ Every parameter provides a mandatory value set that must be covered.
+ For more details about the parameter value sets, please see Parameter.java.
+ This is a boolean property, and the default value is false.
+ It is not mandatory.
+
+fullCipherSuites
+ It indicates if testing the full or mandatory set of cipher suites.
+ For more details about the specific cipher suite sets, see CipherSuite in
+ Parameter.java.
+ This is a boolean property, and the default value is false.
+ It is not mandatory.
+
+jdkListFile
+ It indicate the path of a file, which lists the absolute paths of different
+ JDK builds. If no this property, the current testing JDK, specified by JTREG
+ option -jdk, is used as the testing JDK.
+ It is not mandatory.
+
+##### Usage Examples #####
+Example 1
+$ jtreg -jdk:/path/to/latest/jdk \
+ $JDK_WS/jdk/test/javax/net/ssl/compatibility/Compatibility.java
+This example doesn't specify any property introduced by the test. That means
+it uses the current testing JDK, namely /path/to/latest/jdk, as server and
+client. It doesn't output any debug log, and tests only mandatory parameter
+value sets.
+
+Example 2
+$ cat /path/to/jdkList
+/path/to/jdk6
+/path/to/jdk7
+/path/to/jdk8
+/path/to/jdk9
+/path/to/jdk10
+
+$ jtreg -jdk:/path/to/latest/jdk \
+ -Ddebug=true \
+ -DfullCipherSuites=true \
+ -DjdkListFile=/path/to/jdkList \
+ $JDK_WS/jdk/test/javax/net/ssl/compatibility/Compatibility.java
+The above example uses a file "/path/to/jdkList" to contain the paths of local
+different JDK builds through 6 to 10. The execution uses each of JDK builds as
+server and client respectively. And it enables SSL debug flag, and tests the
+full parameter value set.
\ No newline at end of file