/*
 * This file contains expectations for ART's Buildbot when running on fugu devices
 * (Nexus Player, kernel 3.10).
 *
 * The script that uses this file is art/tools/run-libcore-tests.sh.
 */

[
{
  description: "Test using memfd_create() syscall, only available from Linux 3.17.",
  result: EXEC_FAILED,
  bug: 146113753,
  modes: [device],
  names: [
    "libcore.android.system.OsTest#testMemfdCreate",
    "libcore.android.system.OsTest#testMemfdCreateErrno",
    "libcore.android.system.OsTest#testMemfdCreateFlags"
  ]
},
{
  description: "Test using the getrandom() syscall, only available from Linux 3.17.",
  result: EXEC_FAILED,
  bug: 141230711,
  modes: [device],
  names: [
    "libcore.java.math.BigIntegerTest#test_Constructor_IILjava_util_Random",
    "libcore.java.math.BigIntegerTest#test_probablePrime",
    "libcore.javax.crypto.CipherInputStreamTest#testDecryptCorruptGCM",
    "libcore.javax.crypto.CipherOutputStreamTest#testDecryptCorruptGCM",
    "libcore.libcore.timezone.TelephonyLookupTest#createInstanceWithFallback",
    "libcore.libcore.timezone.TelephonyLookupTest#getTelephonyNetworkFinder",
    "libcore.libcore.timezone.TelephonyLookupTest#validateCountryCodeLowerCase",
    "libcore.libcore.timezone.TelephonyLookupTest#validateDuplicateMccMnc",
    "libcore.libcore.timezone.TelephonyLookupTest#xmlParsing_emptyFile",
    "libcore.libcore.timezone.TelephonyLookupTest#xmlParsing_emptyNetworksOk",
    "libcore.libcore.timezone.TelephonyLookupTest#xmlParsing_missingCountryCodeAttribute",
    "libcore.libcore.timezone.TelephonyLookupTest#xmlParsing_missingMccAttribute",
    "libcore.libcore.timezone.TelephonyLookupTest#xmlParsing_missingMncAttribute",
    "libcore.libcore.timezone.TelephonyLookupTest#xmlParsing_missingNetworks",
    "libcore.libcore.timezone.TelephonyLookupTest#xmlParsing_truncatedInput",
    "libcore.libcore.timezone.TelephonyLookupTest#xmlParsing_unexpectedComments",
    "libcore.libcore.timezone.TelephonyLookupTest#xmlParsing_unexpectedElementsIgnored",
    "libcore.libcore.timezone.TelephonyLookupTest#xmlParsing_unexpectedRootElement",
    "libcore.libcore.timezone.TelephonyLookupTest#xmlParsing_unexpectedTextIgnored",
    "libcore.libcore.timezone.TimeZoneFinderTest#createInstanceWithFallback",
    "libcore.libcore.timezone.TimeZoneFinderTest#getCountryZonesFinder",
    "libcore.libcore.timezone.TimeZoneFinderTest#getCountryZonesFinder_empty",
    "libcore.libcore.timezone.TimeZoneFinderTest#getCountryZonesFinder_invalid",
    "libcore.libcore.timezone.TimeZoneFinderTest#getIanaVersion",
    "libcore.libcore.timezone.TimeZoneFinderTest#lookupCountryTimeZones_caseInsensitive",
    "libcore.libcore.timezone.TimeZoneFinderTest#lookupCountryTimeZones_unknownCountryReturnsNull",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_badCountryDefaultBoost",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_badCountryEverUtc",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_badTimeZoneMappingNotAfter",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_badTimeZoneMappingPicker",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_countryDefaultBoost",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_emptyFile",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_missingCountryCode",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_missingCountryDefault",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_missingCountryEverUtc",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_missingCountryZones",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_missingIanaVersionAttribute",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_noCountriesOk",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_timeZoneMappingNotAfter",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_timeZoneMappingPicker",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_truncatedInput",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_unexpectedChildInTimeZoneIdThrows",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_unexpectedComments",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_unexpectedElementsIgnored",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_unexpectedRootElement",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_unexpectedTextIgnored",
    "libcore.libcore.timezone.TimeZoneFinderTest#xmlParsing_unknownTimeZoneIdIgnored",
    "org.apache.harmony.crypto.tests.javax.crypto.CipherInputStream1Test#test_ConstructorLjava_io_InputStreamLjavax_crypto_Cipher",
    "org.apache.harmony.crypto.tests.javax.crypto.CipherOutputStream1Test#test_ConstructorLjava_io_OutputStreamLjavax_crypto_Cipher",
    "org.apache.harmony.crypto.tests.javax.crypto.CipherTest#test_",
    "org.apache.harmony.crypto.tests.javax.crypto.CipherTest#test_doFinalLjava_nio_ByteBufferLjava_nio_ByteBuffer",
    "org.apache.harmony.crypto.tests.javax.crypto.CipherTest#test_initWithKey",
    "org.apache.harmony.crypto.tests.javax.crypto.CipherTest#test_initWithSecureRandom",
    "org.apache.harmony.crypto.tests.javax.crypto.CipherTest#test_updateLjava_nio_ByteBufferLjava_nio_ByteBuffer",
    "org.apache.harmony.crypto.tests.javax.crypto.EncryptedPrivateKeyInfoTest#test_ROUNDTRIP_GetKeySpecCipher01",
    "org.apache.harmony.crypto.tests.javax.crypto.EncryptedPrivateKeyInfoTest#test_ROUNDTRIP_GetKeySpecCipher02",
    "org.apache.harmony.crypto.tests.javax.crypto.EncryptedPrivateKeyInfoTest#test_ROUNDTRIP_GetKeySpecKey01",
    "org.apache.harmony.crypto.tests.javax.crypto.EncryptedPrivateKeyInfoTest#test_ROUNDTRIP_GetKeySpecKey02",
    "org.apache.harmony.crypto.tests.javax.crypto.EncryptedPrivateKeyInfoTest#test_ROUNDTRIP_GetKeySpecKeyProvider01",
    "org.apache.harmony.crypto.tests.javax.crypto.EncryptedPrivateKeyInfoTest#test_ROUNDTRIP_GetKeySpecKeyProvider02",
    "org.apache.harmony.crypto.tests.javax.crypto.EncryptedPrivateKeyInfoTest#test_ROUNDTRIP_GetKeySpecKeyString01",
    "org.apache.harmony.crypto.tests.javax.crypto.EncryptedPrivateKeyInfoTest#test_ROUNDTRIP_GetKeySpecKeyString02",
    "org.apache.harmony.crypto.tests.javax.crypto.EncryptedPrivateKeyInfoTest#test_getAlgName",
    "org.apache.harmony.crypto.tests.javax.crypto.ExemptionMechanismTest#test_initLjava_security_Key",
    "org.apache.harmony.crypto.tests.javax.crypto.ExemptionMechanismTest#test_initLjava_security_KeyLjava_security_AlgorithmParameters",
    "org.apache.harmony.crypto.tests.javax.crypto.ExemptionMechanismTest#test_initLjava_security_KeyLjava_security_spec_AlgorithmParameterSpec",
    "org.apache.harmony.crypto.tests.javax.crypto.KeyGeneratorTest#testGenerateKey",
    "org.apache.harmony.crypto.tests.javax.crypto.KeyGeneratorTest#test_initLjava_security_spec_AlgorithmParameterSpec",
    "org.apache.harmony.crypto.tests.javax.crypto.SealedObjectTest#testDeserialization",
    "org.apache.harmony.crypto.tests.javax.crypto.SealedObjectTest#testGetAlgorithm",
    "org.apache.harmony.crypto.tests.javax.crypto.SealedObjectTest#testGetAlgorithmAfterSerialization",
    "org.apache.harmony.crypto.tests.javax.crypto.SealedObjectTest#testGetObject1",
    "org.apache.harmony.crypto.tests.javax.crypto.SealedObjectTest#testGetObject2",
    "org.apache.harmony.crypto.tests.javax.crypto.SealedObjectTest#testGetObject3",
    "org.apache.harmony.crypto.tests.javax.crypto.SealedObjectTest#testSealedObject1",
    "org.apache.harmony.crypto.tests.javax.crypto.SecretKeyFactoryTest#test_translateKeyLjavax_crypto_SecretKey",
    "org.apache.harmony.crypto.tests.javax.crypto.func.CipherAesTest#test_AesISO",
    "org.apache.harmony.crypto.tests.javax.crypto.func.CipherAesTest#test_AesNoISO",
    "org.apache.harmony.crypto.tests.javax.crypto.func.CipherAesWrapTest#test_AesWrap",
    "org.apache.harmony.crypto.tests.javax.crypto.func.CipherDESedeTest#test_DESedeISO",
    "org.apache.harmony.crypto.tests.javax.crypto.func.CipherDESedeTest#test_DESedeNoISO",
    "org.apache.harmony.crypto.tests.javax.crypto.func.CipherDESedeWrapTest#test_DESedeWrap",
    "org.apache.harmony.crypto.tests.javax.crypto.func.CipherDesTest#test_DesISO",
    "org.apache.harmony.crypto.tests.javax.crypto.func.CipherDesTest#test_DesNoISO",
    "org.apache.harmony.crypto.tests.javax.crypto.func.CipherPBETest#test_PBEWithMD5AndDES",
    "org.apache.harmony.crypto.tests.javax.crypto.func.CipherPBETest#test_PBEWithSHAand3KeyTripleDES",
    "org.apache.harmony.crypto.tests.javax.crypto.func.CipherRSATest#test_RSANoPadding",
    "org.apache.harmony.crypto.tests.javax.crypto.func.CipherRSATest#test_RSAShortKey",
    "org.apache.harmony.crypto.tests.javax.crypto.func.KeyGeneratorFunctionalTest#test_",
    "org.apache.harmony.tests.java.math.BigIntegerTest#test_isProbablePrimeI",
    "org.apache.harmony.tests.java.math.OldBigIntegerTest#test_ConstructorIILjava_util_Random",
    "org.apache.harmony.tests.java.math.OldBigIntegerTest#test_isProbablePrimeI",
    "org.apache.harmony.tests.java.math.OldBigIntegerTest#test_nextProbablePrime",
    "org.apache.harmony.tests.java.math.OldBigIntegerTest#test_probablePrime",
    "org.apache.harmony.tests.java.util.ScannerTest#test_ConstructorLjava_nio_file_Path",
    "org.apache.harmony.tests.java.util.ScannerTest#test_ConstructorLjava_nio_file_PathLjava_lang_String",
    "org.apache.harmony.tests.java.util.ScannerTest#test_ConstructorLjava_nio_file_PathLjava_lang_String_Exception",
    "org.apache.harmony.tests.java.util.UUIDTest#test_randomUUID",
    "org.apache.harmony.tests.javax.security.OldSHA1PRNGSecureRandomTest#testGenerateSeedint02",
    "org.apache.harmony.tests.javax.security.OldSHA1PRNGSecureRandomTest#testGenerateSeedint03",
    "org.apache.harmony.tests.javax.security.OldSHA1PRNGSecureRandomTest#testNextBytesbyteArray03",
    "org.apache.harmony.tests.javax.security.OldSHA1PRNGSecureRandomTest#testSetSeedbyteArray02"
  ]
},
{
  description: "Test using the getrandom() syscall, only available from Linux 3.17.",
  result: ERROR,
  bug: 141230711,
  modes: [device],
  names: [
    "test.java.awt",
    "test.java.io.ByteArrayInputStream",
    "test.java.io.ByteArrayOutputStream",
    "test.java.io.FileReader",
    "test.java.io.FileWriter",
    "test.java.io.InputStream",
    "test.java.io.OutputStream",
    "test.java.io.PrintStream",
    "test.java.io.PrintWriter",
    "test.java.io.Reader",
    "test.java.io.Writer",
    "test.java.lang.Boolean",
    "test.java.lang.ClassLoader",
    "test.java.lang.Double",
    "test.java.lang.Float",
    "test.java.lang.Integer",
    "test.java.lang.Long",
    "test.java.lang.StackWalker#main",
    "test.java.lang.StrictMath.CubeRootTests",
    "test.java.lang.StrictMath.ExactArithTests",
    "test.java.lang.StrictMath.Expm1Tests",
    "test.java.lang.StrictMath.ExpTests",
    "test.java.lang.StrictMath.HyperbolicTests",
    "test.java.lang.StrictMath.HypotTests#testAgainstTranslit_shard1",
    "test.java.lang.StrictMath.HypotTests#testAgainstTranslit_shard2",
    "test.java.lang.StrictMath.HypotTests#testAgainstTranslit_shard3",
    "test.java.lang.StrictMath.HypotTests#testAgainstTranslit_shard4",
    "test.java.lang.StrictMath.HypotTests#testHypot",
    "test.java.lang.StrictMath.Log1pTests",
    "test.java.lang.StrictMath.Log10Tests",
    "test.java.lang.StrictMath.MultiplicationTests",
    "test.java.lang.StrictMath.PowTests",
    "test.java.lang.String",
    "test.java.lang.Thread",
    "test.java.lang.invoke",
    "test.java.lang.ref.SoftReference",
    "test.java.lang.ref.BasicTest",
    "test.java.lang.ref.EnqueueNullRefTest",
    "test.java.lang.ref.EnqueuePollRaceTest",
    "test.java.lang.ref.ReferenceCloneTest",
    "test.java.lang.ref.ReferenceEnqueuePendingTest",
    "test.java.math.BigDecimal",
    "test.java.math.BigInteger#testArithmetic",
    "test.java.math.BigInteger#testBitCount",
    "test.java.math.BigInteger#testBitLength",
    "test.java.math.BigInteger#testbitOps",
    "test.java.math.BigInteger#testBitwise",
    "test.java.math.BigInteger#testByteArrayConv",
    "test.java.math.BigInteger#testConstructor",
    "test.java.math.BigInteger#testDivideAndReminder",
    "test.java.math.BigInteger#testDivideLarge",
    "test.java.math.BigInteger#testModExp",
    "test.java.math.BigInteger#testMultiplyLarge",
    "test.java.math.BigInteger#testNextProbablePrime",
    "test.java.math.BigInteger#testPow",
    "test.java.math.BigInteger#testSerialize",
    "test.java.math.BigInteger#testShift",
    "test.java.math.BigInteger#testSquare",
    "test.java.math.BigInteger#testSquareLarge",
    "test.java.math.BigInteger#testSquareRootAndReminder",
    "test.java.math.BigInteger#testStringConv_generic",
    "test.java.math.RoundingMode",
    "test.java.net.DatagramSocket",
    "test.java.net.Socket",
    "test.java.net.SocketOptions",
    "test.java.net.URLDecoder",
    "test.java.net.URLEncoder",
    "test.java.nio.channels.Channels",
    "test.java.nio.channels.SelectionKey",
    "test.java.nio.channels.Selector",
    "test.java.nio.file",
    "test.java.security.cert",
    "test.java.security.KeyAgreement.KeyAgreementTest",
    "test.java.security.KeyAgreement.KeySizeTest#testECDHKeySize",
    "test.java.security.KeyAgreement.KeySpecTest",
    "test.java.security.KeyAgreement.MultiThreadTest",
    "test.java.security.KeyAgreement.NegativeTest",
    "test.java.security.KeyStore",
    "test.java.security.Provider",
    "test.java.util.Arrays",
    "test.java.util.Collection",
    "test.java.util.Collections",
    "test.java.util.Date",
    "test.java.util.EnumMap",
    "test.java.util.EnumSet",
    "test.java.util.GregorianCalendar",
    "test.java.util.LinkedHashMap",
    "test.java.util.LinkedHashSet",
    "test.java.util.List",
    "test.java.util.Map",
    "test.java.util.Optional",
    "test.java.util.TimeZone",
    "test.java.util.concurrent",
    "test.java.util.function",
    "test.java.util.stream",
    "test.java.util.zip.ZipFile"
  ]
}
]
