test/jdk/javax/net/ssl/compatibility/README
author jjiang
Tue, 28 Nov 2017 22:19:34 -0800
changeset 47955 0887e20e7173
child 51058 44c355346475
permissions -rw-r--r--
8186057: TLS interoperability testing between different Java versions Summary: An interop test for checking the compatibility among different Java versions. Reviewed-by: asmotrak
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47955
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
     1
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
     2
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
     3
#
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
     4
# This code is free software; you can redistribute it and/or modify it
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
     5
# under the terms of the GNU General Public License version 2 only, as
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
     6
# published by the Free Software Foundation.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
     7
#
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
     8
# This code is distributed in the hope that it will be useful, but WITHOUT
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
     9
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    10
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    11
# version 2 for more details (a copy is included in the LICENSE file that
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    12
# accompanied this code).
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    13
#
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    14
# You should have received a copy of the GNU General Public License version
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    15
# 2 along with this work; if not, write to the Free Software Foundation,
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    16
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    17
#
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    18
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    19
# or visit www.oracle.com if you need additional information or have any
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    20
# questions.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    21
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    22
##### Summary #####
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    23
This test is used to check the interop compatibility on JSSE among different
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    24
JDK releases. The oldest version supported by the test is JDK 6. Some of Java
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    25
source files, JdkUtils.java, Parameter.java, Server.java, and Client.java, use
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    26
only JDK 6-compliant language features and APIs, in order to allowing different
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    27
JDK releases can load and run associated classes.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    28
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    29
##### Output #####
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    30
The test can generate a report at $JTREG_WORKDIR/scratch/report.html to display
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    31
the key information for each case. It also outputs all of details on both of
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    32
server and client sides to a separated file at $JTREG_WORKDIR/scratch/test.html.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    33
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    34
##### Report Columns #####
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    35
No.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    36
    A sequence number. It contains a hyper link to the corresponding details
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    37
    in $JTREG_WORKDIR/scratch/test.html.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    38
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    39
ServerJDK
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    40
    The version of the JDK that acts as server.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    41
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    42
ClientJDK
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    43
    The version of the JDK that acts as client.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    44
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    45
Protocol
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    46
    The TLS protocol version.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    47
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    48
CipherSuite
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    49
    The only enabled cipher suite on both of server and client.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    50
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    51
ClientAuth
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    52
    If the client authentication is checked, the value is "Y"; otherwise, "N".
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    53
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    54
SNI
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    55
    If the SNI is checked, the value is "Y"; otherwise, "N".
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    56
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    57
ALPN
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    58
    If the ALPN is checked, the value is "Y"; otherwise, "N".
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    59
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    60
Status
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    61
    It indicates the communication status for a test case.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    62
    There are three status:
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    63
    SUCCESS: Communication succeed as expected.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    64
    UNEXPECTED_SUCCESS: Communication succeed as unexpected.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    65
    FAIL: Communication fails with unexpected failure.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    66
    EXPECTED_FAIL: Communication fails with expected failure.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    67
    Please note that, if a case finishes as status UNEXPECTED_SUCCESS or FAIL,
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    68
    that means the case fails. Any failed case results in the test goes to fail.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    69
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    70
##### Usage #####
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    71
jtreg [-options] \
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    72
    [-Ddebug=<true|false>] \
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    73
    [-DfullCases=<true|false>] \
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    74
    [-DfullCipherSuites=<true|false>] \
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    75
    [-DjdkListFile=</path/to/jdkListFile>] \
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    76
    $JDK_WORKSPACE/test/jdk/javax/net/ssl/compatibility/Compatibility.java
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    77
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    78
Besides the common jtreg options, like -jdk, this test introduces some more
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    79
properties:
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    80
debug
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    81
    It indicates if the test enable -Djavax.net.ssl=debug. This is a boolean
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    82
    property, and the default value is false.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    83
    It is not mandatory.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    84
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    85
fullCases
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    86
    It indicates if testing the full or mandatory set of parameter values.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    87
    Every parameter provides a mandatory value set that must be covered.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    88
    For more details about the parameter value sets, please see Parameter.java.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    89
    This is a boolean property, and the default value is false.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    90
    It is not mandatory.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    91
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    92
fullCipherSuites
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    93
    It indicates if testing the full or mandatory set of cipher suites.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    94
    For more details about the specific cipher suite sets, see CipherSuite in
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    95
    Parameter.java.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    96
    This is a boolean property, and the default value is false.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    97
    It is not mandatory.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    98
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
    99
jdkListFile
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   100
    It indicate the path of a file, which lists the absolute paths of different
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   101
    JDK builds. If no this property, the current testing JDK, specified by JTREG
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   102
    option -jdk, is used as the testing JDK.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   103
    It is not mandatory.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   104
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   105
##### Usage Examples #####
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   106
Example 1
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   107
$ jtreg -jdk:/path/to/latest/jdk \
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   108
    $JDK_WS/jdk/test/javax/net/ssl/compatibility/Compatibility.java
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   109
This example doesn't specify any property introduced by the test. That means
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   110
it uses the current testing JDK, namely /path/to/latest/jdk, as server and
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   111
client. It doesn't output any debug log, and tests only mandatory parameter
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   112
value sets.
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   113
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   114
Example 2
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   115
$ cat /path/to/jdkList
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   116
/path/to/jdk6
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   117
/path/to/jdk7
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   118
/path/to/jdk8
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   119
/path/to/jdk9
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   120
/path/to/jdk10
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   121
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   122
$ jtreg -jdk:/path/to/latest/jdk \
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   123
    -Ddebug=true \
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   124
    -DfullCipherSuites=true \
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   125
    -DjdkListFile=/path/to/jdkList \
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   126
    $JDK_WS/jdk/test/javax/net/ssl/compatibility/Compatibility.java
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   127
The above example uses a file "/path/to/jdkList" to contain the paths of local
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   128
different JDK builds through 6 to 10. The execution uses each of JDK builds as
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   129
server and client respectively. And it enables SSL debug flag, and tests the
0887e20e7173 8186057: TLS interoperability testing between different Java versions
jjiang
parents:
diff changeset
   130
full parameter value set.