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

###############################################################################
#
# Tiered testing definitions
#

tier1 = \
    :jdk_lang \
    :jdk_util \
    sun/nio/cs/ISO8859x.java \
    java/nio/Buffer \
    com/sun/crypto/provider/Cipher \
    :jdk_math \
    tools/pack200

tier2 = \
    :jdk_io \
    :jdk_nio \
    -sun/nio/cs/ISO8859x.java \
    -java/nio/Buffer \
    :jdk_net \
    :jdk_time \
    :jdk_security \
    -com/sun/crypto/provider/Cipher \
    :jdk_text \
    :core_tools \
    -tools/pack200 \
    :jdk_other

tier3 = \
    :jdk_rmi \
    :jdk_beans \
    :jdk_imageio \
    :jdk_sound \
    :jdk_client_sanity

###############################################################################
#
# Other test definitions; generally smaller granularity than tiers
#

# java.lang package and VM runtime support
jdk_lang = \
    java/lang \
    -java/lang/management \
    -java/lang/instrument \
    sun/invoke \
    sun/misc \
    sun/reflect \
    jdk/internal/reflect \
    jdk/lambda \
    jdk/internal/loader \
    jdk/internal/misc \
    jdk/internal/ref \
    jdk/internal/jimage \
    jdk/internal/math \
    jdk/modules \
    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/internal/util \
    -:jdk_collections \
    -:jdk_concurrent \
    -:jdk_stream

# All collections, core and concurrent
jdk_collections = \
    :jdk_collections_core \
    :jdk_concurrent

# java.util.concurrent
# Includes concurrent collections plus other stuff
# Maintained by JSR-166 EG (Doug Lea et al)
jdk_concurrent = \
    java/util/concurrent

# Java Collections Framework core classes
jdk_collections_core = \
    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/Comparator \
    java/util/Deque \
    java/util/EnumMap \
    java/util/EnumSet \
    java/util/HashMap \
    java/util/HashSet \
    java/util/Hashtable \
    java/util/IdentityHashMap \
    java/util/Iterator \
    java/util/LinkedHashMap \
    java/util/LinkedHashSet \
    java/util/LinkedList \
    java/util/List \
    java/util/Map \
    java/util/NavigableMap \
    java/util/PriorityQueue \
    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/nio

jdk_net = \
    java/net \
    com/sun/net/httpserver \
    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/oracle/security/ucrypto \
    com/sun/crypto

jdk_security3 = \
    javax/security  \
    -javax/security/auth/kerberos \
    com/sun/jarsigner \
    com/sun/security \
    -com/sun/security/jgss \
    com/sun/org/apache/xml/internal/security \
    jdk/security \
    sun/security \
    -sun/security/krb5 \
    -sun/security/jgss \
    javax/net \
    com/sun/net/ssl \
    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/internal/agent

jdk_instrument = \
    java/lang/instrument

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

jdk_jdi = \
    com/sun/jdi

jdk_native_sanity = \
    native_sanity

# java launcher specific tests, Note: do not include this group into any groups
# that potentially could be included into a jprt test rule, as the complementary
# closed  group includes awt SplashScreen and these tests may not run
# satisfactorily on all platforms and  profiles thus this group must always
# be a stand-alone group
jdk_launcher = \
    tools/launcher \
    sun/tools

#
# Tool (and tool API) tests are split into core and svc groups
#
core_tools = \
    tools \
    jdk/internal/jrtfs \
    sun/tools/java \
    sun/tools/jrunscript

svc_tools = \
    com/sun/tools/attach \
    sun/tools \
    -sun/tools/java \
    -sun/tools/jrunscript \
    sun/jvmstat

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/transaction \
    javax/xml \
    -javax/xml/crypto \
    jdk/internal/jline \
    com/sun/jndi \
    com/sun/corba \
    org/omg/CORBA \
    lib/testlibrary

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

# SwingSet3 tests.
jdk_client_sanity = \
    sanity/client/SwingSet

###############################################################################
#
# Serviceability sanity groups
#
# These groups specify a subset of Serviceability tests that are supposed to
# guard against breakage of Serviceability features by other component teams.
# They are added to the "hotspot" testset in JPRT so that they will run on all
# full-forest pushes through JPRT.
#

jdk_svc_sanity = \
    :jdk_management_sanity \
    :jdk_instrument_sanity \
    :jdk_jmx_sanity \
    :jdk_jdi_sanity \
    :svc_tools_sanity

jdk_management_sanity =

jdk_instrument_sanity =

jdk_jmx_sanity =

jdk_jdi_sanity = \
    com/sun/jdi/AcceptTimeout.java \
    com/sun/jdi/AccessSpecifierTest.java \
    com/sun/jdi/AfterThreadDeathTest.java \
    com/sun/jdi/ArrayRangeTest.java \
    com/sun/jdi/ConstantPoolInfo.java \
    com/sun/jdi/CountFilterTest.java \
    com/sun/jdi/EarlyReturnNegativeTest.java \
    com/sun/jdi/EarlyReturnTest.java \
    com/sun/jdi/FieldWatchpoints.java \
    com/sun/jdi/FramesTest.java \
    com/sun/jdi/InstanceFilter.java \
    com/sun/jdi/InterfaceMethodsTest.java \
    com/sun/jdi/InvokeTest.java \
    com/sun/jdi/LocalVariableEqual.java \
    com/sun/jdi/LocationTest.java \
    com/sun/jdi/ModificationWatchpoints.java \
    com/sun/jdi/MonitorEventTest.java \
    com/sun/jdi/MonitorFrameInfo.java \
    com/sun/jdi/NullThreadGroupNameTest.java \
    com/sun/jdi/PopAndStepTest.java \
    com/sun/jdi/PopAsynchronousTest.java \
    com/sun/jdi/ProcessAttachTest.java \
    com/sun/jdi/ReferrersTest.java \
    com/sun/jdi/RequestReflectionTest.java \
    com/sun/jdi/ResumeOneThreadTest.java \
    com/sun/jdi/RunToExit.java \
    com/sun/jdi/SourceNameFilterTest.java \
    com/sun/jdi/VarargsTest.java \
    com/sun/jdi/Vars.java \
    com/sun/jdi/redefineMethod/RedefineTest.java \
    com/sun/jdi/sde/MangleTest.java \
    com/sun/jdi/sde/TemperatureTableTest.java

svc_tools_sanity =

#############################
#
# 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 \
  jdk/security/jarsigner \
  sun/security/tools/jarsigner \
  sun/security/tools/policytool \
  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/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/separate/Compiler.java \
  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 \
  jdk/internal/reflect/CallerSensitive/CallerSensitiveFinder.java \
  jdk/internal/reflect/CallerSensitive/MissingCallerSensitive.java \
  sun/security/util/Resources/NewNamesFormat.java \
  vm/verifier/defaultMethods/DefaultMethodRegressionTestsRun.java \
  javax/xml/ws/clientjar/TestWsImport.java \
  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 \
  com/oracle/security/ucrypto/Test8004873.java \
  com/oracle/security/ucrypto/TestAES.java \
  com/oracle/security/ucrypto/TestDigest.java \
  com/oracle/security/ucrypto/TestRSA.java \
  sun/net/ftp \
  sun/net/www/protocol/ftp \
  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/text/AttributedCharacterIterator/Attribute/ReadResolve.java \
  java/text/AttributedString/TestAttributedStringCtor.java \
  java/text/AttributedString/getRunStartLimitTest.java \
  java/util/jar/Manifest/CreateManifest.java \
  java/util/logging/TestMainAppContext.java \
  java/util/logging/TestLoggingWithMainAppContext.java \
  java/util/TimeZone/DefaultTimeZoneTest.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 \
  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/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 \
  java/util/prefs \
  javax/naming \
  javax/security \
  javax/smartcardio \
  javax/sql/rowset \
  javax/xml/crypto \
  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/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/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/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/stream/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/Date/TimestampTest.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/SpliteratorLateBindingTest.java  \
  java/util/Spliterator/SpliteratorFailFastTest.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/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java \
  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 \
  sun \
  vm \
 -:needs_full_vm_compact1 \
 -:needs_full_vm_compact2 \
 -:needs_compact2 \
 -:needs_compact3 \
 -:needs_jre \
 -:needs_jdk
