#  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_time = \
    java/time

jdk_rmi = \
    java/rmi \
    javax/rmi/ssl \
    sun/rmi

jdk_security1 = \
    java/security

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

jdk_security3 = \
    javax/security  \
    com/sun/security \
    com/sun/org/apache/xml/internal/security \
    sun/security \
    lib/security

jdk_security = \
    :jdk_security1 \
    :jdk_security2 \
    :jdk_security3

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/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

#############################
#
# Stable test groups
#

jdk_stable = \
    :jdk_core \
    :jdk_svc \
    :jdk_beans \
    :jdk_imageio \
    :jdk_sound \
    :jdk_sctp \
    javax/accessibility \
    com/sun/java/swing \
    sun/pisces \
    com/sun/awt  


###############################################################################
# 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/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/AnonLoggerWeakRefLeak.sh \
  java/util/logging/LoggerWeakRefLeak.sh \
  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/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

# 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/TestMainAppContext.java \
  java/util/ResourceBundle/Control/Bug6530694.java \
  java/text/Bidi/BidiConformance.java \
  java/text/Bidi/BidiEmbeddingTest.java \
  java/text/Bidi/Bug6665028.java \
  java/text/Bidi/Bug7042148.java \
  java/text/Bidi/Bug7051769.java \
  javax/crypto/Cipher/CipherStreamClose.java \
  javax/management/monitor/AttributeArbitraryDataTypeTest.java \
  jdk/lambda/vm/InterfaceAccessFlagsTest.java \
  sun/misc/URLClassPath/ClassnameCharTest.java

# 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/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 \
  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 \
  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/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/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/misc/URLClassPath/ClassnameCharTest.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
