Review request: JDK-7162111 TEST_BUG: change tests run in headless mode [macosx] (original) (raw)

Alexey Utkin alexey.utkin at oracle.com
Thu Nov 15 15:08:03 UTC 2012


Let's move forward step by step and be very accurate. There are ~35 CoreLib tests with AWT/Swing.

Here they are with short annotation (sub-question: is [closed/com/sun/jmx] a part of CoreLib? It is not in your list.): *closed/com/sun/jmx/snmp/B7159066.java : * test for AppContext - Useless in absence of AWT, headless - ok

*closed/com/sun/jmx/trace/JmxTraceTest.java : * test for AppContext - Useless in absence of AWT, headless - ok

closed/java/net/URLClassLoader/ResExists.java : Dirty test. Depends from rt.jar entry ["javax/swing/plaf/metal/icons/Warn.gif"] that is used for resource URL construction by App Class Loader. Test fails in absence of AWT, headless - ok. Easy to fix, but it cuts off test coverage.

closed/java/lang/ClassLoader/CheckClassName.java : Covers class loader functionality. Fails in absence of AWT, headless - ok Easy to fix, but it cuts off test coverage.

closed/java/lang/ClassLoader/resource/GetResourceForApplets.java : Covers class loader functionality. Manual. "ignore" keyword. Useless without AWT.

*closed/java/lang/Package/CheckVersions.java, closed/java/lang/Package/CheckVersionsApplet.java : *Applet based. "ignore" keyword. Useless without AWT.

closed/java/lang/Runtime/shutdown/Basic.java : Has a manual part, that is useless without AWT.

closed/java/lang/SecurityManager/Default.java : Fails in absence of AWT, headless - ok, Easy to fix - choose another class for test access.

closed/java/net/InetAddress/GetLocalHost.java : Manual applet based, that is useless without AWT.

closed/java/util/Properties/GenerifiedUses.java : Fails in absence of AWT, headless - ok. Easy to fix, but it cuts off test coverage for bug: [5061476 Generification conflict: Properties vs. java.awt.image.ImageConsumer by neal.gafter info]

*closed/java/util/TimeZone/Bug6351654.java: *test for AppContext - Useless in absence of AWT, headless - ok .

closed/java/util/TimeZone/DefaultTimeZoneTest.java : Manual applet based, that is useless without AWT.

closed/javax/management/security/ClientNotifForwarderTest.java : Fixed in webrev.

closed/javax/management/remote/mandatory/security/MarshalledObjectGetTest2.java, closed/javax/management/remote/mandatory/security/MarshalledObjectGetTest2.sh, closed/javax/management/remote/mandatory/security/SwingLazyValueAccessor.java : Applet-based app-context test. Security bug - no description. Fails in absence of AWT, headless - ok.

*closed/javax/script/TimeZoneAttackApplet.java, closed/javax/script/TimeZoneUserApplet.java :

com/sun/jdi/ClassesByName2Test.java : Loads Sun Toolkit. Easy to fix, but it cuts off test coverage for bug.

java/io/Serializable/resolveClass/deserializeButton/Foo.java, java/io/Serializable/resolveClass/deserializeButton/run.sh, java/io/Serializable/resolveClass/deserializeButton/Test.java : Fixed in webrev.

java/io/Serializable/resolveProxyClass/NonPublicInterface.java : Works in absence of AWT, headless - ok. Loads the AWT and Swing classes as test cases. The ClassNotFoundException exception does not leads to test fail.

java/lang/management/CompilationMXBean/Basic.java : Calls java.awt.Toolkit.getDefaultToolkit(); javax.swing.UIManager.getInstalledLookAndFeels(); are in use. Test fails in absence of AWT, headless - ok. Easy to fix, but it cuts off test coverage.

java/lang/reflect/Proxy/ClassRestrictions.java : Works in absence of AWT, headless - ok. Loads the AWT and Swing classes as test cases. (the same scenario as [java/io/Serializable/resolveProxyClass/NonPublicInterface.java]) The ClassNotFoundException exception does not leads to test fail.

java/lang/reflect/Generics/Probe.java : Loads "javax.swing.JComboBox$AccessibleJComboBox"class. Fails in absence of AWT, headless - ok Easy to fix, but it cuts off test coverage.

java/lang/Throwable/LegacyChainedExceptionSerialization.java : Instantiates "java.awt.print.PrinterIOException"class. Fails in absence of AWT, headless - ok Easy to fix, but it cuts off test coverage.

java/net/URLClassLoader/B5077773.java : Hmm. Seems that is not URLClassLoader test. Checks an existence of "javax/swing/text/rtf/charsets/mac.txt" entry inside rt.jar. Fails in absence of Swing, headless - ok

java/util/Collections/EmptyIterator.java : Calls testEmptyEnumeration(javax.swing.tree.DefaultMutableTreeNode .EMPTY_ENUMERATION); testEmptyEnumeration(javax.swing.text.SimpleAttributeSet .EMPTY.getAttributeNames()); as constructed empty entities. Fails in absence of Swing, headless - ok Easy to fix.

java/util/logging/LoggingDeadlock4.java : Covers interaction between LogManager. and Logger.getLogger(). Fails in absence of Awt, headless - ok Easy to fix.

java/util/ResourceBundle/Control/Bug6530694.java : Swing specific test. Useless in absence of Swing, headless - ok

java/util/ResourceBundle/Bug6287579.java : Checks local resource loading. Fails in absence of Awt, headless - ok Easy to fix, but it cuts off test coverage.

java/util/ResourceBundle/Bug6299235Test.java : Awt specific test. Checks local resource loading. Useless in absence of Awt, headless - ok

java/util/ResourceBundle/Control/Bug6530694.java : Checks CoreResourceBundleControl on Swing UIDefaults. Fails in absence of Awt, headless - ok

*sun/nio/cs/TestX11CNS.java, sun/nio/cs/TestX11JIS0201.java : *headless - ok. The tested subject seems have no relation with AWT or Swing.

Questions: 1] That have I do with tests marked as "Easy to fix, but it cuts off test coverage"? 2] Should I remove/move the manual tests and tests that essentially depends from AWT or Swing?

It seems that the switch "-Djava.awt.headless=true" is useless in all CoreLib tests. AWT uses the property to force running in headless mode. There are two cases:

All mentioned tests (that are marked as "headless - ok") was tested in ssh session from Win to Mac OS without additional switches.

Regards, -uta



More information about the core-libs-dev mailing list