#  Copyright (c) 2013, 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.
#

# java.lang package and VM runtime support
jdk_lang = \
    java/lang \
    -java/lang/management \
    -java/lang/instrument \
    sun/invoke \
    sun/misc \
    sun/reflect \
    jdk/lambda \
    vm

# All of the java.util package
jdk_util = \
    :jdk_util_other \
    :jdk_collections \
    :jdk_concurrent \
    :jdk_stream

# All util components not part of some other util category
jdk_util_other = \
    java/util \
    sun/util \
    -:jdk_collections \
    -:jdk_concurrent \
    -:jdk_stream

# java.util.concurrent (JSR-166)
# Maintained by JSR-166 EG (Doug Lea et al)
# Deque and PriorityQueue are also generally maintained by JSR-166
jdk_concurrent = \
    java/util/concurrent \
    java/util/Deque \
    java/util/PriorityQueue

# Java Collections Framework
jdk_collections = \
    java/util/AbstractCollection \
    java/util/AbstractList \
    java/util/AbstractMap \
    java/util/AbstractSequentialList \
    java/util/ArrayList \
    java/util/Arrays \
    java/util/BitSet \
    java/util/Collection \
    java/util/Collections \
    java/util/EnumMap \
    java/util/EnumSet \
    java/util/Comparator \
    java/util/Iterator \
    java/util/HashMap \
    java/util/Hashtable \
    java/util/IdentityHashMap \
    java/util/List \
    java/util/LinkedHashMap \
    java/util/LinkedHashSet \
    java/util/LinkedList \
    java/util/Map \
    java/util/NavigableMap \
    java/util/TimSort \
    java/util/TreeMap \
    java/util/Vector \
    java/util/WeakHashMap

# java.util.stream (JSR-335)
jdk_stream = \
    java/util/Optional \
    java/util/function \
    java/util/stream

jdk_math = \
    java/math

jdk_io = \
    java/io

jdk_nio = \
    java/nio \
    sun/nio

jdk_net = \
    java/net \
    com/sun/net \
    com/oracle/net \
    sun/net \
    jdk/net

jdk_time = \
    java/time

jdk_rmi = \
    java/rmi \
    sun/rmi

jdk_security1 = \
    java/security

jdk_security2 = \
    javax/crypto \
    javax/xml/crypto \
    com/sun/crypto

jdk_security3 = \
    javax/security  \
    -javax/security/auth/kerberos \
    com/sun/security \
    -com/sun/security/jgss \
    com/sun/org/apache/xml/internal/security \
    sun/security \
    -sun/security/krb5 \
    -sun/security/jgss \
    javax/net \
    lib/security

jdk_security4 = \
    com/sun/security/jgss \
    javax/security/auth/kerberos \
    sun/security/krb5 \
    sun/security/jgss

jdk_security = \
    :jdk_security1 \
    :jdk_security2 \
    :jdk_security3 \
    :jdk_security4

jdk_text = \
    java/text \
    sun/text

jdk_management = \
    java/lang/management \
    com/sun/management \
    sun/management

jdk_instrument = \
    java/lang/instrument

jdk_jmx = \
    javax/management \
    com/sun/jmx

jdk_jdi = \
    com/sun/jdi

#
# Tool (and tool API) tests are split into core and svc groups
#
core_tools = \
    tools \
    com/sun/tools/extcheck \
    sun/tools/java \
    sun/tools/native2ascii \
    sun/tools/jrunscript

svc_tools = \
    com/sun/tools/attach \
    com/sun/tracing \
    sun/tools \
    -sun/tools/java \
    -sun/tools/native2ascii \
    -sun/tools/jrunscript \
    sun/jvmstat \
    demo/jvmti

jdk_tools = \
    :core_tools \
    :svc_tools

#
# Catch-all for other areas with a small number of tests
#
jdk_other = \
    java/sql \
    javax/sql \
    javax/rmi \
    javax/naming \
    javax/script \
    javax/smartcardio \
    javax/xml \
    -javax/xml/crypto \
    jdk/asm \
    com/sun/jndi \
    com/sun/corba \
    lib/testlibrary \
    demo/zipfs \
    sample

#
# SCTP is its own group as it is highly sensitive to kernel/network config
#
jdk_sctp = \
    com/sun/nio/sctp


#
# core group to run all core area tests
#
jdk_core = \
    :jdk_lang \
    :jdk_util \
    :jdk_math \
    :jdk_io \
    :jdk_nio \
    :jdk_net \
    :jdk_rmi \
    :jdk_time \
    :jdk_security \
    :jdk_text \
    :core_tools \
    :jdk_other

#
# svc group to run all serviceability area tests
#
jdk_svc = \
    :jdk_management \
    :jdk_instrument \
    :jdk_jmx \
    :jdk_jdi \
    :svc_tools

#############################

#
# Client area groups
#

jdk_awt = \
    java/awt \
    com/sun/awt \
    com/apple/eawt \
    sun/awt

jdk_2d = \
    javax/print \
    sun/pisces  \
    sun/java2d

jdk_beans = \
    java/beans

jdk_swing = \
    javax/accessibility \
    javax/swing \
    com/sun/java/swing

jdk_sound = \
    javax/sound

jdk_imageio = \
    javax/imageio

jdk_desktop = \
    :jdk_awt \
    :jdk_2d \
    :jdk_beans \
    :jdk_swing \
    :jdk_sound \
    :jdk_imageio

###############################################################################
# Profile-based Test Group Definitions
#
# These groups define the tests that cover the different possible runtimes:
# - compact1, compact2, compact3, full JRE, JDK
#
# In addition they support testing of the minimal VM on compact1 and compact2.
# Essentially this defines groups based around the specified API's and VM
# services available in the runtime.
#
# The groups are defined hierarchically in two forms:
# - The need_xxx groups list all the tests that have a dependency on
# a specific profile. This is either because it tests a feature in
# that profile, or the test infrastructure uses a feature in that
# profile.
# - The primary groups are defined in terms of the other primary groups
# combined with the needs_xxx groups (including and excluding them as
# appropriate). For example the jre can run all tests from compact3, plus
# those from needs_jre, but excluding those from need_jdk.
#
# The bottom group defines all the actual tests to be considered, simply
# by listing the top-level test directories.

# Full JDK can run all tests
#
jdk = \
  :jre \
  :needs_jdk

# Tests that require a full JDK to execute. Either they test a feature
# only in the JDK or they use tools that are only in the JDK. The latter
# can be resolved in some cases by using tools from the compile-jdk.
#
needs_jdk = \
  :jdk_jdi \
  com/sun/tools \
  demo \
  sun/security/tools/jarsigner \
  sun/rmi/rmic \
  sun/tools \
  sun/jvmstat \
  tools \
  com/sun/jmx/remote/NotificationMarshalVersions/TestSerializationMismatch.java \
  java/io/Serializable/serialver \
  java/lang/invoke/lambda/LambdaAccessControlDoPrivilegedTest.java \
  java/lang/invoke/lambda/LambdaAccessControlTest.java \
  java/lang/invoke/lambda/LambdaAsm.java \
  java/lang/Class/getDeclaredField/FieldSetAccessibleTest.java \
  java/lang/System/MacEncoding/TestFileEncoding.java \
  java/net/URLClassLoader/closetest/GetResourceAsStream.java \
  java/util/Collections/EmptyIterator.java \
  java/util/concurrent/locks/Lock/TimedAcquireLeak.java \
  java/util/jar/JarInputStream/ExtraFileInMetaInf.java \
  java/util/logging/TestLoggerWeakRefLeak.java \
  java/util/zip/3GBZipFiles.sh \
  jdk/lambda/FDTest.java \
  jdk/lambda/separate/Compiler.java \
  sun/management/jdp/JdpTest.sh \
  sun/management/jmxremote/bootstrap/JvmstatCountersTest.java \
  sun/management/jmxremote/bootstrap/LocalManagementTest.java \
  sun/management/jmxremote/bootstrap/CustomLauncherTest.java \
  sun/management/jmxremote/startstop \
  sun/misc/JarIndex/metaInfFilenames/Basic.java \
  sun/misc/JarIndex/JarIndexMergeForClassLoaderTest.java \
  sun/reflect/CallerSensitive/CallerSensitiveFinder.java \
  sun/reflect/CallerSensitive/MissingCallerSensitive.java \
  sun/security/util/Resources/NewNamesFormat.java \
  vm/verifier/defaultMethods/DefaultMethodRegressionTestsRun.java \
  javax/xml/bind/jxc \
  javax/xml/ws/8033113 \
  javax/xml/ws/clientjar/TestWsImport.java \
  javax/xml/ws/ebcdic \
  javax/xml/bind/xjc/8145039/JaxbMarshallTest.java

# JRE adds further tests to compact3
#
jre = \
  :compact3 \
  :needs_jre \
 -:needs_jdk

# Tests that require the full JRE
#
needs_jre = \
  :needs_charsets \
  :jdk_desktop \
  com/sun/corba \
  com/sun/jndi/cosnaming \
  sun/net/ftp \
  sun/net/www/protocol/ftp \
  sun/security/tools/policytool \
  java/net/URI/URItoURLTest.java \
  java/net/URL/URIToURLTest.java \
  java/net/URLConnection/HandleContentTypeWithAttrs.java \
  java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh \
  java/security/Security/ClassLoaderDeadlock/Deadlock.sh \
  java/util/jar/Manifest/CreateManifest.java \
  java/util/logging/Listeners.java \
  java/util/logging/ListenersWithSM.java \
  java/util/logging/TestMainAppContext.java \
  java/util/logging/TestLoggingWithMainAppContext.java \
  java/util/ResourceBundle/Control/Bug6530694.java \
  java/text/Bidi/BidiConformance.java \
  java/text/Bidi/BidiEmbeddingTest.java \
  java/text/Bidi/Bug7042148.java \
  java/text/Bidi/Bug7051769.java \
  javax/crypto/Cipher/CipherStreamClose.java \
  javax/management/monitor/AttributeArbitraryDataTypeTest.java \
  javax/management/mxbean/AmbiguousConstructorTest.java \
  javax/management/mxbean/ExceptionDiagnosisTest.java \
  javax/management/mxbean/LeakTest.java \
  javax/management/mxbean/MXBeanTest.java \
  javax/management/mxbean/PropertyNamesTest.java \
  javax/xml/bind/marshal/8036981/Test.java \
  javax/xml/bind/marshal/8134111/UnmarshalTest.java \
  javax/xml/ws/8043129 \
  jdk/lambda/vm/InterfaceAccessFlagsTest.java \
  sun/misc/URLClassPath/ClassnameCharTest.java \
  sun/security/pkcs11/Provider/Login.sh

# Tests dependent on the optional charsets.jar
# These are isolated for easy exclusions
#
needs_charsets = \
  java/io/OutputStreamWriter/TestWrite.java \
  java/nio/charset/RemovingSunIO/SunioAlias.java \
  java/nio/charset/coders/Check.java \
  java/nio/charset/Charset/CharsetContainmentTest.java \
  java/nio/charset/Charset/Contains.java \
  java/nio/charset/Charset/NIOCharsetAvailabilityTest.java \
  java/nio/charset/Charset/RegisteredCharsets.java \
  java/nio/charset/CharsetEncoder/Flush.java \
  java/nio/charset/coders/CheckSJISMappingProp.sh \
  java/nio/charset/coders/ResetISO2022JP.java \
  java/util/Locale/InternationalBAT.java \
  java/util/Locale/LocaleProviders.sh \
  java/util/Calendar/CldrFormatNamesTest.java \
  java/util/TimeZone/CLDRDisplayNamesTest.java \
  java/util/zip/ZipCoding.java \
  sun/nio/cs/EucJpLinux0212.java \
  sun/nio/cs/EUCJPUnderflowDecodeTest.java \
  sun/nio/cs/EuroConverter.java \
  sun/nio/cs/JISAutoDetectTest.java \
  sun/nio/cs/OLD/TestIBMDB.java \
  sun/nio/cs/SJISCanEncode.java \
  sun/nio/cs/Test6254467.java \
  sun/nio/cs/TestCompoundTest.java \
  sun/nio/cs/TestCp834_SBCS.java \
  sun/nio/cs/TestEUC_TW.java \
  sun/nio/cs/TestISO2022CNDecoder.java \
  sun/nio/cs/TestISO2022JPEncoder.java \
  sun/nio/cs/TestISO2022JPSubBytes.java \
  sun/nio/cs/TestIllegalSJIS.java \
  sun/nio/cs/TestJIS0208Decoder.java \
  sun/nio/cs/TestJIS0212Decoder.java \
  sun/nio/cs/TestMiscEUC_JP.java \
  sun/nio/cs/TestSJIS0213_SM.java \
  sun/nio/cs/BufferUnderflowEUCTWTest.java \
  sun/nio/cs/CheckCaseInsensitiveEncAliases.java \
  sun/nio/cs/CheckHistoricalNames.java \
  sun/nio/cs/EucJpLinuxDecoderRecoveryTest.java \
  sun/nio/cs/HWKatakanaMS932EncodeTest.java \
  sun/nio/cs/ISCIITest.java \
  sun/nio/cs/LatinCharReplacementTWTest.java \
  sun/nio/cs/NIOJISAutoDetectTest.java \
  sun/nio/cs/StreamEncoderClose.java \
  sun/nio/cs/SurrogateGB18030Test.java \
  sun/nio/cs/SurrogateTestEUCTW.java \
  sun/nio/cs/SurrogateTestHKSCS.java \
  sun/nio/cs/TestConverterDroppedCharacters.java \
  sun/nio/cs/TestCp93xSISO.java \
  sun/nio/cs/TestIBM1364.java \
  sun/nio/cs/TestIBMBugs.java \
  sun/nio/cs/TestIllegalISO2022Esc.java \
  sun/nio/cs/TestISO2022JP.java \
  sun/nio/cs/TestMS5022X.java \
  sun/nio/cs/TestSJIS0213.java \
  sun/nio/cs/TestTrailingEscapesISO2022JP.java \
  sun/nio/cs/TestUni2HKSCS.java \
  sun/nio/cs/ZeroedByteArrayEUCTWTest.java

# Compact 3 adds further tests to compact2
#
compact3 = \
  :compact2 \
  :needs_compact3 \
 -:needs_jre \
 -:needs_jdk


# Tests that require compact3 API's
#
needs_compact3 = \
  :jdk_instrument \
  :jdk_jmx \
  :jdk_management \
  :jdk_sctp \
  com/sun/jndi \
  com/sun/org/apache/xml/internal/security \
  com/sun/security/auth \
  com/sun/security/sasl \
  com/sun/security/jgss \
  com/sun/tracing \
  java/util/prefs \
  javax/naming \
  javax/security \
  javax/smartcardio \
  javax/sql/rowset \
  javax/xml/crypto \
  sun/security/acl \
  sun/security/jgss \
  sun/security/krb5 \
  java/lang/annotation/AnnotationType/AnnotationTypeDeadlockTest.java \
  java/lang/invoke/lambda/LambdaStackTrace.java \
  java/lang/invoke/LFCaching/LFGarbageCollectedTest.java \
  java/lang/invoke/LFCaching/LFMultiThreadCachingTest.java \
  java/lang/invoke/LFCaching/LFSingleThreadCachingTest.java \
  java/lang/System/MacEncoding/TestFileEncoding.java \
  java/nio/channels/AsynchronousSocketChannel/Leaky.java \
  java/security/PermissionCollection/Concurrent.java \
  java/security/Principal/Implies.java \
  java/security/cert/GetInstance.java \
  java/util/logging/DrainFindDeadlockTest.java \
  java/util/logging/LoggingMXBeanTest.java \
  java/util/logging/TestLogConfigurationDeadLock.java \
  java/util/logging/TestLoggerBundleSync.java \
  sun/net/www/http/KeepAliveCache/B5045306.java \
  sun/security/provider/PolicyFile/Alias.java \
  sun/security/provider/PolicyFile/Comparator.java \
  sun/security/provider/PolicyFile/SelfWildcard.java \
  sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/SSLEngineDeadlock.java \
  sun/security/util/Oid/OidFormat.java \
  sun/security/util/Resources/Format.java \
  sun/security/util/Resources/NewNamesFormat.java

# Compact 2 adds full VM tests
compact2 = \
  :compact2_minimal \
  :compact1 \
  :needs_full_vm_compact2 \
 -:needs_compact3 \
 -:needs_jre \
 -:needs_jdk

# Tests that require compact2 API's and a full VM
#
needs_full_vm_compact2 =

# Minimal VM on Compact 2 adds in some compact2 tests
#
compact2_minimal = \
  :compact1_minimal \
  :needs_compact2 \
 -:needs_compact3 \
 -:needs_jre \
 -:needs_jdk

# Tests that require compact2 API's
#
needs_compact2 = \
  :jdk_rmi \
  :jdk_time \
  com/sun/org/apache \
  com/sun/net/httpserver \
  java/sql \
  javax/sql \
  javax/xml/bind \
  javax/xml/jaxp \
  javax/xml/ws/xsanymixed \
  jdk/lambda \
  sun/net/www/http \
  sun/net/www/protocol/http \
  java/io/BufferedReader/Lines.java  \
  java/lang/reflect/DefaultStaticTest/DefaultStaticInvokeTest.java \
  java/lang/CharSequence/DefaultTest.java  \
  java/lang/IntegralPrimitiveToString.java  \
  java/lang/PrimitiveSumMinMaxTest.java  \
  java/lang/String/StringJoinTest.java  \
  java/lang/Thread/StopThrowable.java  \
  java/net/Authenticator/B4769350.java \
  java/net/Authenticator/Deadlock.java \
  java/net/CookieHandler/LocalHostCookie.java \
  java/net/CookieHandler/CookieManagerTest.java \
  java/net/CookieHandler/EmptyCookieHeader.java \
  java/net/HttpCookie/IllegalCookieNameTest.java \
  java/net/HttpURLConnection/UnmodifiableMaps.java \
  java/net/ResponseCache/Test.java \
  java/net/SetFactoryPermission/SetFactoryPermission.java \
  java/net/URLClassLoader/ClassLoad.java \
  java/net/URLClassLoader/closetest/CloseTest.java \
  java/net/URLPermission/URLTest.java \
  java/nio/Buffer/Chars.java  \
  java/nio/file/Files/StreamTest.java  \
  java/security/BasicPermission/Wildcard.java \
  java/util/Arrays/ParallelPrefix.java  \
  java/util/Arrays/SetAllTest.java  \
  java/util/BitSet/BitSetStreamTest.java  \
  java/util/Collection/CollectionDefaults.java  \
  java/util/Collections/CheckedIdentityMap.java  \
  java/util/Collections/CheckedMapBash.java  \
  java/util/Collections/CheckedSetBash.java  \
  java/util/Collections/EmptyCollectionSerialization.java  \
  java/util/Collections/EmptyNavigableMap.java  \
  java/util/Collections/EmptyNavigableSet.java  \
  java/util/Collections/UnmodifiableMapEntrySet.java  \
  java/util/Comparator/BasicTest.java  \
  java/util/Comparator/TypeTest.java  \
  java/util/Iterator/IteratorDefaults.java  \
  java/util/Iterator/PrimitiveIteratorDefaults.java  \
  java/util/List/ListDefaults.java  \
  java/util/Map/BasicSerialization.java  \
  java/util/Map/Defaults.java  \
  java/util/Map/EntryComparators.java  \
  java/util/Optional/Basic.java  \
  java/util/Optional/BasicDouble.java  \
  java/util/Optional/BasicInt.java  \
  java/util/Optional/BasicLong.java  \
  java/util/Random/RandomStreamTest.java  \
  java/util/ResourceBundle/Bug6359330.java  \
  java/util/Spliterator/SpliteratorCharacteristics.java  \
  java/util/Spliterator/SpliteratorCollisions.java  \
  java/util/Spliterator/SpliteratorLateBindingFailFastTest.java  \
  java/util/Spliterator/SpliteratorTraversingAndSplittingTest.java  \
  java/util/StringJoiner/MergeTest.java  \
  java/util/StringJoiner/StringJoinerTest.java  \
  java/util/concurrent/atomic/AtomicReferenceTest.java  \
  java/util/function/BinaryOperator/BasicTest.java  \
  java/util/logging/LoggerSupplierAPIsTest.java  \
  java/util/zip/ZipFile/StreamZipEntriesTest.java \
  java/util/zip/ZipFile/DeleteTempJar.java \
  javax/crypto/Cipher/CipherStreamClose.java \
  sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java \
  sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java

# Compact 1 adds full VM tests
#
compact1 = \
  :compact1_minimal \
  :needs_full_vm_compact1 \
 -:needs_compact2 \
 -:needs_full_vm_compact2 \
 -:needs_compact3 \
 -:needs_jre \
 -:needs_jdk

# Tests that require compact1 API's and a full VM
#
needs_full_vm_compact1 =

# All tests that run on the most minimal configuration: Minimal VM on Compact 1
compact1_minimal = \
  com \
  java \
  javax \
  jdk \
  lib \
  sample \
  sun \
  vm \
 -:needs_full_vm_compact1 \
 -:needs_full_vm_compact2 \
 -:needs_compact2 \
 -:needs_compact3 \
 -:needs_jre \
 -:needs_jdk
