• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * This file contains expectations for tests that we'd like to eventually fix, but aren't urgent.
3 */
4[
5{
6  description: "libcore.java.io.OldFileTest#test_deleteOnExit fails on IRM05 mysid-user",
7  name: "libcore.java.io.OldFileTest#test_deleteOnExit",
8  bug: 5834665
9},
10{
11  description: "FIONREAD/SIOCINQ returns the wrong result on sockets (5731252 is the root cause of 5534202)",
12  name: "libcore.java.net.SocketTest#testAvailable",
13  bug: 5731252
14},
15{
16  description: "libcore.java.net.URLConnectionTest#testServerShutdownInput fails on ICL27 mysid-userdebug (5534202 is caused by 5731252)",
17  name: "libcore.java.net.URLConnectionTest#testServerShutdownInput",
18  bug: 5534202
19},
20{
21  description: "Support digest authentication in HttpURLConnection",
22  name: "libcore.net.http.ParsedHeadersTest#testParseChallengesWithManyParameters",
23  bug: 6156454
24},
25{
26  description: "Without no security manager, we don't care if checkPermission's argument is null",
27  name: "org.apache.harmony.security.tests.java.security.AccessController2Test#test_checkPermission_NullParameter",
28  result: EXEC_FAILED
29},
30{
31  description: "This test and testGetKeepAlive have been failing in our continuous build recently.",
32  names: [
33    "libcore.java.net.URLConnectionTest#testConnectTimeouts",
34    "libcore.java.net.URLConnectionTest#testGetKeepAlive"
35  ],
36  bug: 3441111
37},
38{
39  description: "on the RI, writing the two halves of the surrogate pair in separate writes
40          is an error because the CharsetEncoder doesn't remember it's half-way through a
41          surrogate pair across the two calls!",
42  result: EXEC_FAILED,
43  names: [
44    "libcore.java.nio.charset.CharsetEncoderTest#testCharsetEncoderSurrogatesBrokenByDesign_IGNORE_RI",
45    "libcore.java.nio.charset.CharsetEncoderTest#testCharsetEncoderSurrogatesBrokenByDesign_REPLACE_RI",
46    "libcore.java.nio.charset.CharsetEncoderTest#testCharsetEncoderSurrogatesBrokenByDesign_REPORT_RI"
47  ]
48},
49{
50  description: "We're retiring the security manager. Unfortunately, tests all over the place
51                need to check that they're secure, so they all fail when we refuse to install
52                a security manager. This suppresses all of these failures.",
53  result: EXEC_FAILED,
54  failure: "disable securityManager",
55  pattern: ".*java.lang.SecurityException\\s+at java.lang.System.setSecurityManager.*",
56  bug: 2585285
57},
58{
59  description: "ignore compilation errors due to different available APIs",
60  result: COMPILE_FAILED,
61  failure: "ignore compilation errors",
62  pattern: ".*\\.java:\\d+: cannot find symbol.*"
63},
64{
65  description: "These tests assert the exact bytes of the compressed form. Since we use a
66                different zlib configuration, we get a different (but valid) compressed form.",
67  result: EXEC_FAILED,
68  names: [
69    "org.apache.harmony.archive.tests.java.util.zip.DeflaterInputStreamTest#testAvailable",
70    "org.apache.harmony.archive.tests.java.util.zip.DeflaterInputStreamTest#testRead",
71    "org.apache.harmony.archive.tests.java.util.zip.DeflaterInputStreamTest#testReadByteArrayIntInt",
72    "org.apache.harmony.archive.tests.java.util.zip.DeflaterTest#test_deflate_beforeSetInput"
73  ]
74},
75{
76  description: "The RI avoids blocking calls when '\\r' is the last character. We don't
77                bother since that adds complexity to every other read call, and '\\r' as the
78                last character will be diminishingly rare anyway.",
79  result: EXEC_FAILED,
80  name: "java.io.BufferedReader.ReadLine",
81  substring: "java.lang.RuntimeException: Read past limit"
82},
83{
84  description: "The RI avoids blocking calls when '\\r' is the last character. We don't
85                bother since that adds complexity to every other read call, and '\\r' as the
86                last character will be diminishingly rare anyway.",
87  result: EXEC_FAILED,
88  name: "java.io.BufferedReader.Ready",
89  substring: "Hit infinite wait condition"
90},
91{
92  description: "The test is checking that the implementation doesn't read any characters
93                earlier than it absolutely needs to. This is a bogus requirement; streams
94                are allowed to buffer input as necessary.",
95  result: EXEC_FAILED,
96  name: "java.io.StreamTokenizer.Reset",
97  substring: "Test failed: should get token [, but get -1"
98},
99{
100  description: "These tests only pass if the root logger hasn't yet been initialized. They
101                incorrectly assume that resetting the LogManager will clear the root logger's
102                resource bundle; this isn't the case.",
103  result: EXEC_FAILED,
104  name: "org.apache.harmony.logging.tests.java.util.logging.OldLoggerTest#testGetLoggerWithRes_InvalidResourceBundle",
105  substring: "java.lang.IllegalArgumentException: Resource bundle name 'impossible_not_existing' is inconsistent"
106},
107{
108  description: "These tests only pass if the root logger hasn't yet been initialized. They
109                incorrectly assume that resetting the LogManager will clear the root logger's
110                resource bundle; this isn't the case.",
111  result: EXEC_FAILED,
112  name: "org.apache.harmony.logging.tests.java.util.logging.LoggerTest#testGetLogger_Empty",
113  substring: "junit.framework.AssertionFailedError"
114},
115{
116  description: "This tests implementation details",
117  result: UNSUPPORTED,
118  name: "java.util.EnumSet.OneUniverse"
119},
120{
121  description: "Dalvik doesn't include the SunJCE crypto provider",
122  result: EXEC_FAILED,
123  names: [
124    "com.sun.crypto.provider.Cipher.AES.Test4513830",
125    "com.sun.crypto.provider.Cipher.AES.Test4512704",
126    "com.sun.crypto.provider.Cipher.AES.Test4512524",
127    "com.sun.crypto.provider.Cipher.AES.Test4511676",
128    "com.sun.crypto.provider.Cipher.AES.Test4517355"
129  ],
130  substring: "NoClassDefFoundError: com.sun.crypto.provider.SunJCE"
131},
132{
133  description: "Dalvik doesn't include the SunJCE crypto provider",
134  result: EXEC_FAILED,
135  name: "com.sun.crypto.provider.Cipher.AES.TestISO10126Padding",
136  substring: " java.security.NoSuchProviderException: SunJCE"
137},
138{
139  description: "Dalvik doesn't include the SunJCE crypto provider",
140  result: EXEC_FAILED,
141  name: "com.sun.crypto.provider.Cipher.AES.Test4626070",
142  substring: "NoClassDefFoundError: com.sun.crypto.provider.SunJCE"
143},
144{
145  description: "Dalvik doesn't include the SunJCE crypto provider",
146  result: EXEC_FAILED,
147  names: [
148    "com.sun.crypto.provider.Cipher.AES.TestShortBuffer",
149    "com.sun.crypto.provider.Cipher.CTS.CTSMode"
150  ],
151  substring: "Provider SunJCE is not available"
152},
153{
154  description: "Dalvik doesn't include the SunJCE crypto provider",
155  result: EXEC_FAILED,
156  names: [
157    "com.sun.crypto.provider.Cipher.DES.DesAPITest",
158    "com.sun.crypto.provider.Cipher.DES.DoFinalReturnLen",
159    "com.sun.crypto.provider.Cipher.DES.FlushBug"
160  ],
161  substring: "java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE"
162},
163{
164  description: "Dalvik doesn't include the SunJCE crypto provider",
165  result: EXEC_FAILED,
166  name: "com.sun.crypto.provider.Cipher.DES.KeyWrapping",
167  substring: "Provider SunJCE is not available"
168},
169{
170  description: "Dalvik doesn't include the SunJCE crypto provider",
171  result: EXEC_FAILED,
172  names: [
173    "com.sun.crypto.provider.Cipher.DES.PaddingTest",
174    "com.sun.crypto.provider.Cipher.DES.Sealtest",
175    "com.sun.crypto.provider.Cipher.DES.PerformanceTest"
176  ],
177  substring: "java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE"
178},
179{
180  description: "Dalvik doesn't include the SunJCE crypto provider",
181  result: EXEC_FAILED,
182  names: [
183    "com.sun.crypto.provider.Cipher.PBE.DecryptWithoutParameters",
184    "com.sun.crypto.provider.Cipher.PBE.PBEInvalidParamsTest"
185  ],
186  substring: "Provider SunJCE is not available"
187},
188{
189  description: "Dalvik doesn't include the SunJCE crypto provider",
190  result: EXEC_FAILED,
191  name: "com.sun.crypto.provider.Cipher.PBE.PBEKeysAlgorithmNames",
192  substring: "java.security.NoSuchProviderException: SunJCE"
193},
194{
195  description: "Dalvik doesn't include the SunJCE crypto provider",
196  result: EXEC_FAILED,
197  names: [
198    "com.sun.crypto.provider.Cipher.PBE.PBEParametersTest",
199    "com.sun.crypto.provider.Cipher.PBE.PKCS12Oid",
200    "com.sun.crypto.provider.Cipher.UTIL.StrongOrUnlimited",
201    "com.sun.crypto.provider.Cipher.KeyWrap.NISTWrapKAT"
202  ],
203  substring: "Provider SunJCE is not available"
204},
205{
206  description: "Dalvik doesn't include the SunJCE crypto provider",
207  result: EXEC_FAILED,
208  name: "com.sun.crypto.provider.KeyAgreement.DHGenSecretKey",
209  substring: "java.security.NoSuchProviderException: SunJCE"
210},
211{
212  description: "Dalvik doesn't include the SunJCE crypto provider",
213  result: EXEC_FAILED,
214  names: [
215    "com.sun.crypto.provider.KeyAgreement.DHGenSharedSecret",
216    "com.sun.crypto.provider.KeyAgreement.DHKeyAgreement3",
217    "com.sun.crypto.provider.KeyAgreement.DHKeyFactory",
218    "com.sun.crypto.provider.KeyAgreement.DHKeyGenSpeed"
219  ],
220  substring: "java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE"
221},
222{
223  description: "Dalvik doesn't include the SunJCE crypto provider",
224  result: EXEC_FAILED,
225  names: [
226    "com.sun.crypto.provider.KeyAgreement.TestExponentSize",
227    "com.sun.crypto.provider.KeyFactory.TestProviderLeak",
228    "com.sun.crypto.provider.KeyFactory.PBKDF2HmacSHA1FactoryTest"
229  ],
230  substring: "java.security.NoSuchProviderException: SunJCE"
231},
232{
233  description: "Dalvik doesn't include the SunJCE crypto provider",
234  result: EXEC_FAILED,
235  names: [
236    "com.sun.crypto.provider.KeyGenerator.Test4628062",
237    "com.sun.crypto.provider.KeyGenerator.TestExplicitKeyLength"
238  ],
239  substring: "java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE"
240},
241{
242  description: "Dalvik doesn't include the SunJCE crypto provider",
243  result: EXEC_FAILED,
244  name: "com.sun.crypto.provider.Mac.HmacPBESHA1",
245  substring: "java.security.NoSuchProviderException: SunJCE"
246},
247{
248  description: "Dalvik doesn't include the SunJCE crypto provider",
249  result: EXEC_FAILED,
250  name: "com.sun.crypto.provider.Mac.HmacMD5",
251  substring: "java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE"
252},
253{
254  description: "Dalvik doesn't include the SunJCE crypto provider",
255  result: EXEC_FAILED,
256  name: "com.sun.crypto.provider.Mac.MacClone",
257  substring: "java.security.NoSuchProviderException: SunJCE"
258},
259{
260  description: "Dalvik doesn't include the SunJCE crypto provider",
261  result: EXEC_FAILED,
262  failure: "JKS keystore not found",
263  substring: "KeyStore JKS implementation not found"
264},
265{
266  description: "These NPEs all happen while calling Provider#getName on the result of
267                Security#getProvider(). Unfortunately, that method is permitted to return
268                null if the system has no provider with the requested name. And since we don't
269                have the SunJCE provider, tests fail",
270  result: EXEC_FAILED,
271  name: "com.sun.crypto.provider.Cipher.PBE.PKCS12Cipher",
272  pattern: ".*PKCS12Cipher.java\\:87\\).*NullPointerException.*"
273},
274{
275  description: "These NPEs all happen while calling Provider#getName on the result of
276                Security#getProvider(). Unfortunately, that method is permitted to return
277                null if the system has no provider with the requested name. And since we don't
278                have the SunJCE provider, tests fail",
279  result: EXEC_FAILED,
280  name: "com.sun.crypto.provider.Cipher.PBE.PKCS12CipherKAT",
281  pattern: ".*NullPointerException.*PKCS12CipherKAT.java\\:183\\).*"
282},
283{
284  description: "These NPEs all happen while calling Provider#getName on the result of
285                Security#getProvider(). Unfortunately, that method is permitted to return
286                null if the system has no provider with the requested name. And since we don't
287                have the SunJCE provider, tests fail",
288  result: EXEC_FAILED,
289  name: "com.sun.crypto.provider.Cipher.RC2ArcFour.CipherKAT",
290  pattern: ".*NullPointerException.*CipherKAT.java\\:205\\).*"
291},
292{
293  description: "These NPEs all happen while calling Provider#getName on the result of
294                Security#getProvider(). Unfortunately, that method is permitted to return
295                null if the system has no provider with the requested name. And since we don't
296                have the SunJCE provider, tests fail",
297  result: EXEC_FAILED,
298  name: "com.sun.crypto.provider.Cipher.RSA.TestOAEP_KAT",
299  pattern: ".*TestOAEP_KAT.java\\:62\\).*NullPointerException.*"
300},
301{
302  description: "These NPEs all happen while calling Provider#getName on the result of
303                Security#getProvider(). Unfortunately, that method is permitted to return
304                null if the system has no provider with the requested name. And since we don't
305                have the SunJCE provider, tests fail",
306  result: EXEC_FAILED,
307  name: "com.sun.crypto.provider.Cipher.RSA.TestOAEP",
308  pattern: ".*TestOAEP.java\\:50\\).*NullPointerException.*"
309},
310{
311  description: "These NPEs all happen while calling Provider#getName on the result of
312                Security#getProvider(). Unfortunately, that method is permitted to return
313                null if the system has no provider with the requested name. And since we don't
314                have the SunJCE provider, tests fail",
315  result: EXEC_FAILED,
316  name: "com.sun.crypto.provider.Cipher.RSA.TestOAEPParameterSpec",
317  pattern: ".*TestOAEPParameterSpec.java\\:124\\).*NullPointerException.*"
318},
319{
320  description: "These NPEs all happen while calling Provider#getName on the result of
321                Security#getProvider(). Unfortunately, that method is permitted to return
322                null if the system has no provider with the requested name. And since we don't
323                have the SunJCE provider, tests fail",
324  result: EXEC_FAILED,
325  name: "com.sun.crypto.provider.Cipher.RSA.TestOAEPWithParams",
326  pattern: ".*TestOAEPWithParams.java\\:58\\).*NullPointerException.*"
327},
328{
329  description: "These NPEs all happen while calling Provider#getName on the result of
330                Security#getProvider(). Unfortunately, that method is permitted to return
331                null if the system has no provider with the requested name. And since we don't
332                have the SunJCE provider, tests fail",
333  result: EXEC_FAILED,
334  name: "com.sun.crypto.provider.Cipher.RSA.TestRSA",
335  pattern: ".*TestRSA.java\\:171\\).*NullPointerException.*"
336},
337{
338  description: "These NPEs all happen while calling Provider#getName on the result of
339                Security#getProvider(). Unfortunately, that method is permitted to return
340                null if the system has no provider with the requested name. And since we don't
341                have the SunJCE provider, tests fail",
342  result: EXEC_FAILED,
343  name: "com.sun.crypto.provider.Mac.HmacSaltLengths",
344  pattern: ".*HmacSaltLengths.java\\:83\\).*java.lang.NullPointerException.*"
345},
346{
347  description: "These NPEs all happen while calling Provider#getName on the result of
348                Security#getProvider(). Unfortunately, that method is permitted to return
349                null if the system has no provider with the requested name. And since we don't
350                have the SunJCE provider, tests fail",
351  result: EXEC_FAILED,
352  name: "com.sun.crypto.provider.Mac.MacKAT",
353  pattern: ".*MacKAT.java\\:228\\).*java.lang.NullPointerException.*"
354},
355{
356  description: "These tests call into misc Sun classes that we don't have",
357  result: COMPILE_FAILED,
358  name: "com.sun.crypto.provider.KeyAgreement.DHKeyAgreement2",
359  pattern: ".*cannot find symbol.*sun.misc.HexDumpEncoder.*"
360},
361{
362  description: "These tests call into misc Sun classes that we don't have",
363  result: COMPILE_FAILED,
364  name: "com.sun.crypto.provider.Cipher.KeyWrap.XMLEncKAT",
365  pattern: ".*cannot find symbol.*sun.misc.BASE64Decoder.*"
366},
367{
368  description: "These tests call into misc Sun classes that we don't have",
369  result: COMPILE_FAILED,
370  names: [
371    "com.sun.crypto.provider.TLS.TestKeyMaterial",
372    "com.sun.crypto.provider.TLS.TestMasterSecret",
373    "com.sun.crypto.provider.TLS.TestPremaster",
374    "com.sun.crypto.provider.TLS.TestPRF"
375  ],
376  substring: "package sun.security.internal.spec does not exist"
377},
378{
379  description: "We don't have most com.sun packages.",
380  result: COMPILE_FAILED,
381  failure: "Dalvik doesn't include Sun packages",
382  pattern: ".*package (com\\.)?sun\\.[\\w\\.]+ does not exist.*"
383},
384{
385  description: "We don't have several Java packages either.",
386  result: COMPILE_FAILED,
387  failure: "Dalvik doesn't include applets",
388  substring: "package java.applet does not exist"
389},
390{
391  description: "We don't have several Java packages either.",
392  result: COMPILE_FAILED,
393  failure: "Dalvik doesn't include AWT (bug it has java.awt.font)",
394  pattern: ".*package java.awt(\\.image)? does not exist.*"
395},
396{
397  description: "We don't have several Java packages either.",
398  result: "COMPILE_FAILED",
399  failure: "Dalvik doesn't include NIO.2",
400  substring: "package java.nio.file does not exist"
401},
402{
403  description: "We don't have several Java packages either.",
404  result: "COMPILE_FAILED",
405  failure: "Dalvik doesn't include RMI",
406  substring: "package java.rmi does not exist"
407},
408{
409  description: "We don't have several Java packages either.",
410  result: "COMPILE_FAILED",
411  failure: "Dalvik doesn't include JNDI",
412  substring: "package javax.naming does not exist"
413},
414{
415  description: "We don't have several Java packages either.",
416  result: "COMPILE_FAILED",
417  failure: "Dalvik doesn't include JMX",
418  substring: "package java.lang.management does not exist"
419},
420{
421  description: "We don't have several Java packages either.",
422  result: "COMPILE_FAILED",
423  failure: "Dalvik doesn't include Swing",
424  substring: "package javax.swing.tree does not exist"
425},
426{
427  description: "We don't have several Java packages either.",
428  result: "COMPILE_FAILED",
429  failure: "Dalvik doesn't include javax.crypto",
430  substring: "package javax.xml.crypto does not exist"
431},
432{
433  description: "Dalvik doesn't include a com.sun.net HTTP server",
434  result: UNSUPPORTED,
435  names: [
436    "com.sun.net.httpserver",
437    "sun.net.www"
438  ]
439},
440{
441  description: "Dalvik doesn't include AWT except the font package",
442  result: UNSUPPORTED,
443  name: "java.awt"
444},
445{
446  description: "Dalvik doesn't include AWT except the font package",
447  result: "SUCCESS",
448  names: [
449    "java.awt.FontClass",
450    "java.awt.font"
451  ]
452},
453{
454  description: "Dalvik doesn't include java.beans except for property listeners",
455  result: UNSUPPORTED,
456  name: "java.beans"
457},
458{
459  description: "Dalvik doesn't include java.beans except for property listeners",
460  result: "SUCCESS",
461  name: "java.beans.PropertyChangeSupport"
462},
463{
464  description: "Dalvik doesn't include java.lang.instrument",
465  result: UNSUPPORTED,
466  name: "java.lang.instrument"
467},
468{
469  description: "Dalvik doesn't include java.lang.management",
470  result: UNSUPPORTED,
471  name: "java.lang.management"
472},
473{
474  description: "Dalvik doesn't include RMI",
475  result: UNSUPPORTED,
476  names: [
477    "java.rmi",
478    "sun.rmi"
479  ]
480},
481{
482  description: "Dalvik doesn't include javax.imageio",
483  result: UNSUPPORTED,
484  name: "javax.imageio"
485},
486{
487  description: "Dalvik doesn't include javax.management",
488  result: UNSUPPORTED,
489  name: "javax.management"
490},
491{
492  description: "Dalvik doesn't include javax.naming",
493  result: UNSUPPORTED,
494  name: "javax.naming"
495},
496{
497  description: "Dalvik doesn't include javax.print",
498  result: UNSUPPORTED,
499  name: "javax.print"
500},
501{
502  description: "Dalvik doesn't include javax.script",
503  result: UNSUPPORTED,
504  name: "javax.script"
505},
506{
507  description: "Dalvik doesn't include javax.sound",
508  result: UNSUPPORTED,
509  name: "javax.sound"
510},
511{
512  description: "Dalvik doesn't include javax.swing",
513  result: UNSUPPORTED,
514  name: "javax.swing"
515},
516{
517  description: "Dalvik doesn't include sun.management",
518  result: UNSUPPORTED,
519  name: "sun.management"
520},
521{
522  description: "Dalvik doesn't include javax.smartcardio",
523  result: UNSUPPORTED,
524  name: "sun.security.smartcardio"
525},
526{
527  description: "Our exception messages don't match the RIs",
528  result: EXEC_FAILED,
529  names: [
530    "java.lang.StringBuilder.Exceptions",
531    "java.lang.StringBuffer.Exceptions"
532  ],
533  substring: "got java.lang.StringIndexOutOfBoundsException: null - FAILED"
534},
535{
536  description: "ICU doesn't like 3-letter names like CST because they're ambiguous.
537                Harmony prefers them because they're more human readable. We'll be
538                consistent with ICU, since that seems least fragile.
539                See https://issues.apache.org/jira/browse/HARMONY-5468
540                and http://bugs.icu-project.org/trac/ticket/6174",
541  result: EXEC_FAILED,
542  name: "org.apache.harmony.luni.tests.java.util.DateTest#test_toString",
543  substring: "GMT-07:00"
544},
545{
546  description: "These harmony tests are broken. The RI doesn't ship with es__TRADITIONAL, so
547                they have incorrect expectations.
548                http://b/2608750",
549  result: EXEC_FAILED,
550  names: [
551    "org.apache.harmony.text.tests.java.text.RuleBasedCollatorTest#testGetCollationElementIteratorCharacterIterator",
552    "org.apache.harmony.text.tests.java.text.RuleBasedCollatorTest#testGetCollationElementIteratorString"
553  ],
554  substring: "expected:<1> but was:<2>"
555},
556{
557  description: "This test fails because on Android, RuleBasedCollators default to
558                CANONICAL_DECOMPOSITION, not NO_DECOMPOSITION.",
559  result: EXEC_FAILED,
560  name: "org.apache.harmony.text.tests.java.text.RuleBasedCollatorTest#testEqualsObject",
561  substring: "expected:<0> but was:<1>"
562},
563{
564  description: "These Harmony tests are enforcing a buggy behaviour in TreeMap, presumably to be bug-compatible
565                with the RI. Our implementation is more conservative and throws on the bogus inputs.",
566  result: EXEC_FAILED,
567  name: "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_AscendingSubMapKeySet_headSet",
568  substring: "java.lang.IllegalArgumentException: 100 not in range (100..109]"
569},
570{
571  description: "These Harmony tests are enforcing a buggy behaviour in TreeMap, presumably to be bug-compatible
572                with the RI. Our implementation is more conservative and throws on the bogus inputs.",
573  result: EXEC_FAILED,
574  names: [
575    "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_AscendingSubMapKeySet_tailSet",
576    "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_DescendingSubMapKeySet_headSet"
577  ],
578  substring: "java.lang.IllegalArgumentException: null not in range [100..109)"
579},
580{
581  description: "These Harmony tests are enforcing a buggy behaviour in TreeMap, presumably to be bug-compatible
582                with the RI. Our implementation is more conservative and throws on the bogus inputs.",
583  result: EXEC_FAILED,
584  names: [
585    "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_DescendingSubMap_tailMap",
586    "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_DescendingSubMapKeySet_tailSet",
587    "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_SubMap_headMap"
588  ],
589  substring: "java.lang.IllegalArgumentException: 100 not in range (100..109]"
590},
591{
592  description: "why are they using reflection to test implementation details?",
593  result: EXEC_FAILED,
594  name: "org.apache.harmony.luni.tests.java.util.ArraysTest#test_swap_I_I_$Ljava_lang_Object",
595  substring: "java.lang.NoSuchMethodException"
596},
597{
598  description: "all these tests rely on a Harmony bug where TreeMaps may have a singleton null, which we choose
599                to disallow.",
600  result: EXEC_FAILED,
601  name: "org.apache.harmony.luni.tests.java.util.SimpleImmutableEntryTest#test_SimpleImmutableEntry_Constructor_LEntry",
602  pattern: ".*java.lang.NullPointerException.*at java.util.TreeMap.find.*"
603},
604{
605  description: "all these tests rely on a Harmony bug where TreeMaps may have a singleton null, which we choose
606                to disallow.",
607  result: EXEC_FAILED,
608  names: [
609    "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_ceilingEntry",
610    "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_ceilingKey",
611    "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_floorEntry",
612    "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_floorKey",
613    "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_higherEntry",
614    "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_higherKey",
615    "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_lowerEntry",
616    "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_lowerKey"
617  ],
618  substring: "java.lang.NullPointerException"
619},
620{
621  description: "all these tests rely on a Harmony bug where TreeMaps may have a singleton null, which we choose
622                to disallow.",
623  result: EXEC_FAILED,
624  name: "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_illegalFirstNullKey",
625  pattern: ".*java.lang.NullPointerException.*at java.util.TreeMap.find.*"
626},
627{
628  description: "this is testing exception priorities",
629  result: EXEC_FAILED,
630  name: "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_subMapLjava_lang_ObjectLjava_lang_Object",
631  substring: "java.lang.ClassCastException: java.lang.Object"
632},
633{
634  description: "the null-friendly comparator isn't symmetric",
635  result: EXEC_FAILED,
636  name: "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_subMapLjava_lang_ObjectZLjava_lang_ObjectZ",
637  substring: "java.lang.NullPointerException"
638},
639{
640  description: "we fail fast on not-comparable objects",
641  result: EXEC_FAILED,
642  names: [
643    "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_equals",
644    "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_putLjava_lang_ObjectLjava_lang_Object"
645  ],
646  substring: "java.lang.ClassCastException: java.lang.Object"
647},
648{
649  description: "tests that depend on the iteration order of a hash",
650  result: EXEC_FAILED,
651  name: "org.apache.harmony.luni.tests.java.util.CollectionsTest#test_unmodifiable_toString_methods",
652  substring: "expected:<...one=1, two=2...> but was:<...two=2, one=1...>"
653},
654{
655  description: "tests that depend on the iteration order of a hash",
656  result: EXEC_FAILED,
657  name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_keySet_subtest1",
658  pattern: ".*java.lang.IllegalStateException.*at java.util.Hashtable.*"
659},
660{
661  description: "tests that depend on the iteration order of a hash",
662  result: EXEC_FAILED,
663  name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_elements_subtest0",
664  substring: "junit.framework.AssertionFailedError: unexpected: b"
665},
666{
667  description: "tests that depend on the iteration order of a hash",
668  result: EXEC_FAILED,
669  name: "org.apache.harmony.luni.tests.java.util.HashMapTest#test_rehash",
670  substring: "junit.framework.AssertionFailedError: expected same"
671},
672{
673  description: "tests that depend on the iteration order of a hash",
674  result: EXEC_FAILED,
675  name: "org.apache.harmony.luni.tests.java.util.PropertiesTest#test_SequentialpropertyNames",
676  substring: "expected:<current.b.key> but was:<current.a.key>"
677},
678{
679  description: "tests that depend on the iteration order of a hash",
680  result: EXEC_FAILED,
681  name: "org.apache.harmony.luni.tests.java.util.PropertiesTest#test_SequentialstringPropertyNames",
682  substring: "junit.framework.ComparisonFailure"
683},
684{
685  description: "tests that depend on the iteration order of a hash",
686  result: EXEC_FAILED,
687  name: "org.apache.harmony.luni.tests.java.util.PropertiesTest#test_propertyNames_sequence",
688  substring: "junit.framework.AssertionFailedError: expected:<current.b.key> but was:<current.a.key>"
689},
690{
691  description: "tests that use secret type information to reason about behavior",
692  result: EXEC_FAILED,
693  name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_keySet",
694  substring: "junit.framework.ComparisonFailure: Not synchronized expected:<...Collections$Synchronized...> but was:<...Hashtable$Key...>"
695},
696{
697  description: "tests that use secret type information to reason about behavior",
698  result: EXEC_FAILED,
699  name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_entrySet",
700  substring: "junit.framework.ComparisonFailure: Not synchronized expected:<...Collections$Synchronized...> but was:<...Hashtable$Entry...>"
701},
702{
703  description: "tests that use secret type information to reason about behavior",
704  result: EXEC_FAILED,
705  name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_values",
706  substring: "junit.framework.ComparisonFailure: Not synchronized expected:<...Collections$SynchronizedCollection> but was:<...Hashtable$Values>"
707},
708{
709  description: "this test is invalid, proxy.equals isn't symmetric",
710  result: EXEC_FAILED,
711  name: "org.apache.harmony.luni.tests.java.util.HashMapTest#test_proxies"
712},
713{
714  description: "this test is invalid, the mock map's entry set isn't to spec",
715  result: EXEC_FAILED,
716  name: "org.apache.harmony.luni.tests.java.util.HashMapTest#test_putAllLjava_util_Map",
717  substring: "java.lang.NullPointerException"
718},
719{
720  description: "this test assumes remove acts on equals() equality, not comparator equality",
721  result: EXEC_FAILED,
722  name: "org.apache.harmony.luni.tests.java.util.PriorityQueueTest#test_remove_Ljava_lang_Object_using_comparator",
723  substring: "junit.framework.AssertionFailedError"
724},
725{
726  description: "tests that violate the API and then guess about the outcomes",
727  result: EXEC_FAILED,
728  name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_getLjava_lang_Object",
729  substring: "junit.framework.AssertionFailedError"
730},
731{
732  description: "this test assumes Integer.toString() always returns a new instance",
733  result: EXEC_FAILED,
734  name: "org.apache.harmony.luni.tests.java.util.IdentityHashMap2Test#test_containsKeyLjava_lang_Object",
735  substring: "junit.framework.AssertionFailedError: Returned true for copy of valid key"
736},
737{
738  description: "tests that cast to Harmony-specific types",
739  result: EXEC_FAILED,
740  failure: "bogus cast to harmony Hashtable$KeyEnumeration",
741  substring: "java.util.Hashtable$KeyEnumeration"
742},
743{
744  description: "tests that cast to Harmony-specific types",
745  result: EXEC_FAILED,
746  failure: "bogus cast to Hashtable$ValueEnumeration",
747  substring: "java.util.Hashtable$ValueEnumeration"
748},
749{
750  description: "test doesn't expect it, but the spec permits the exception. RI also throws here.",
751  result: EXEC_FAILED,
752  names: [
753    "org.apache.harmony.luni.tests.java.util.PriorityQueueTest#test_remove_Ljava_lang_Object_not_Compatible",
754    "org.apache.harmony.luni.tests.java.util.PriorityQueueTest#test_remove_Ljava_lang_Object_not_exists"
755  ],
756  substring: "java.lang.ClassCastException"
757},
758{
759  description: "localization tests where our data disagree",
760  result: EXEC_FAILED,
761  name: "org.apache.harmony.luni.tests.java.util.LocaleTest#test_getAvailableLocales",
762  substring: "Wrong number of locales"
763},
764{
765  description: "test that enforce redundant implements clauses",
766  result: EXEC_FAILED,
767  name: "org.apache.harmony.luni.tests.java.util.LinkedHashMapTest#test_getInterfaces",
768  substring: "junit.framework.AssertionFailedError: expected:<3> but was:<2>"
769},
770{
771  description: "this is testing exception priorities",
772  result: EXEC_FAILED,
773  name: "org.apache.harmony.nio.tests.java.nio.channels.DatagramChannelTest#testReadByteBuffer_readOnlyBuf",
774  substring: "java.lang.IllegalArgumentException: read-only buffer"
775},
776{
777  description: "ICU doesn't provide localized pattern characters, and these tests assume the locale they're using has them.",
778  result: EXEC_FAILED,
779  name: "org.apache.harmony.text.tests.java.text.SimpleDateFormatTest#test_applyLocalizedPatternLjava_lang_String",
780  substring: "java.lang.IllegalArgumentException: Invalid pattern character 'u' in 'GuMtkHmsSEDFwWahKz'"
781},
782{
783  description: "ICU doesn't provide localized pattern characters, and these tests assume the locale they're using has them.",
784  result: EXEC_FAILED,
785  name: "org.apache.harmony.text.tests.java.text.SimpleDateFormatTest#test_toLocalizedPattern",
786  substring: "junit.framework.AssertionFailedError: Wrong pattern: GyMdkHmsSEDFwWahKz"
787},
788{
789  description: "ICU doesn't provide localized pattern characters, and these tests assume the locale they're using has them.",
790  result: EXEC_FAILED,
791  name: "org.apache.harmony.text.tests.java.text.DateFormatSymbolsTest#test_getLocalPatternChars",
792  substring: "junit.framework.ComparisonFailure: Returned incorrect pattern string expected:<...YeugAZvcLQqV> but was:<...Z>"
793},
794{
795  description: "we don't support the CharsetProvider spi, so we don't have \"mockCharset00\".",
796  result: EXEC_FAILED,
797  name: "tests.api.java.nio.charset.CharsetTest#test_availableCharsets",
798  substring: "junit.framework.AssertionFailedError"
799},
800{
801  description: "we don't support the CharsetProvider spi, so we don't have \"mockCharset00\".",
802  result: EXEC_FAILED,
803  name: "tests.api.java.nio.charset.CharsetTest#test_forNameLString",
804  substring: "java.nio.charset.UnsupportedCharsetException: mockCharset00"
805},
806{
807  description: "the average length of possible UTF-8 sequences is 2 bytes.",
808  result: EXEC_FAILED,
809  name: "tests.api.java.nio.charset.UTFCharsetEncoderTest#testSpecificDefaultValue",
810  substring: "junit.framework.AssertionFailedError: expected:<1.1> but was:<2.0>"
811},
812{
813  description: "We don't permit runtime switching of the default charset (and neither does the RI)",
814  result: EXEC_FAILED,
815  name: "org.apache.harmony.nio_char.tests.java.nio.charset.CharsetTest#test_defaultCharset",
816  substring: "expected:<ISO-8859-1> but was:<UTF-8>"
817},
818{
819  description: "this test needs external interaction",
820  result: UNSUPPORTED,
821  names: [
822    "com.sun.tools.attach.Application",
823    "java.io.SystemInAvailable",
824    "sun.jvmstat.testlibrary.Sleeper"
825  ]
826},
827{
828  description: "these benchmarks take a long time and don't demonstrate correctness",
829  result: UNSUPPORTED,
830  names: [
831    "java.lang.Class.TypeCheckMicroBenchmark",
832    "java.nio.Buffer.SwapMicroBenchmark",
833    "java.util.ArrayList.RangeCheckMicroBenchmark",
834    "java.util.ArrayList.IteratorMicroBenchmark"
835  ]
836},
837{
838  description: "The RI is still on Unicode 4.0, we're on 5.2, and Harmony is inconsistent
839                between its test for isJavaIdentifierPart(char) and isJavaIdentifierPart(int).",
840  result: EXEC_FAILED,
841  name: "org.apache.harmony.luni.tests.java.lang.CharacterTest#test_isJavaIdentifierPartC"
842},
843{
844  description: "We removed this: we don't support Pack200.",
845  result: UNSUPPORTED,
846  name: "org.apache.harmony.archive.tests.java.util.jar.Pack200Test"
847},
848{
849  description: "We removed this: we don't cache canonical paths.",
850  result: UNSUPPORTED,
851  name: "org.apache.harmony.luni.tests.java.io.FileCanonPathCacheTest"
852},
853{
854  description: "We removed this: we don't throw NotYetImplementedException.",
855  result: UNSUPPORTED,
856  name: "org.apache.harmony.luni.tests.util.NYITest"
857},
858{
859  description: "We removed this: we don't support localized exceptions.",
860  result: UNSUPPORTED,
861  name: "org.apache.harmony.luni.tests.internal.nls.MessagesTest"
862},
863{
864  description: "These test implementation details we don't share.",
865  result: EXEC_FAILED,
866  names: [
867    "org.apache.harmony.text.tests.java.text.BreakIteratorTest#test_getInt",
868    "org.apache.harmony.text.tests.java.text.BreakIteratorTest#test_getLong",
869    "org.apache.harmony.text.tests.java.text.BreakIteratorTest#test_getShort"
870  ]
871},
872{
873  description: "These format specifiers are documented to not take flags, but the RI accepts and ignores them.",
874  result: EXEC_FAILED,
875  name: "org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_LineSeparator",
876  substring: "java.util.IllegalFormatFlagsException: %n doesn't take an argument"
877},
878{
879  description: "These format specifiers are documented to not take flags, but the RI accepts and ignores them.",
880  result: EXEC_FAILED,
881  names: [
882    "org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_Percent",
883    "org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_Width"
884  ],
885  substring: "java.util.IllegalFormatFlagsException: %% doesn't take an argument"
886},
887{
888  description: "Some tests (ExcludedProxyTest) connect to a public webserver to check that the HTTP client works",
889  result: EXEC_FAILED,
890  failure: "connect to the Internet",
891  pattern: ".*java.net.UnknownHostException:.*jcltest.apache.org.*"
892},
893{
894  description: "These tests violate visibility rules when trying to unit test internal classes",
895  result: EXEC_FAILED,
896  name: "javax.net.ssl.DefaultSSLSocketFactoryTest",
897  substring: "java.lang.IllegalAccessError: tried to access class javax.net.ssl.DefaultSSLSocketFactory from class javax.net.ssl.DefaultSSLSocketFactoryTest"
898},
899{
900  description: "These tests expect to be called with commandline arguments",
901  result: EXEC_FAILED,
902  name: "java.io.FileOutputStream.FileOpenNeg",
903  substring: "java.lang.ArrayIndexOutOfBoundsException"
904},
905{
906  description: "",
907  result: EXEC_FAILED,
908  name: "java.io.FileOutputStream.FileOpenPos",
909  substring: "java.lang.ArrayIndexOutOfBoundsException"
910}
911]
912