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