1 ######################################################################## 2 # This file contains example scripts and property files for collecting 3 # code coverage data of the RMI regression suite. 4 # 5 # Since many RMI regression tests spawn child VMs (either directly 6 # or through activation), special support is required for setting 7 # command line options and arguments needed by jcov - the code coverage 8 # instrumentation and collection tool. This special support is provided 9 # by properties in the test.props file. If a file named ../../test.props 10 # exists (assuming the working directory is "<path>/JTwork/scratch", this 11 # will find "<path>/test.props"), then it will be used by test library 12 # code that spawns VMs or instances of rmid. See the example test.props 13 # file below for the properties that may be defined. 14 15 16 ######################################################################## 17 # The following is a script used to execute RMI regression tests 18 # on Solaris and collect code coverage data. 19 20 #!/bin/ksh 21 export JAVA_HOME=<path to special JDK jcov instrumented build> 22 export JT_HOME=<path to special JTREG build with jcov hooks> 23 export CLASSPATH=.:${JT_HOME}/javatest.jar 24 export OPTS="-Xms256m -Xmx256m -XX:+UseUnsupportedDeprecatedJVMPI -XX:+EnableJVMPIInstructionStartEvent -XX:-UseFastEmptyMethods -XX:-UseFastAccessorMethods -timeoutFactor:4" 25 export TESTBASE=/files/<JDK workspace>/test 26 ${JT_HOME}/solaris/bin/jtreg -Xrunjcov:file=/files/rmi.jcov ${OPTS} -va -w:/tmp/JT -r:/tmp/JTreport -jdk:${JAVA_HOME} ${TESTBASE} 27 28 29 ######################################################################## 30 # The following section is an example test.props property file 31 # used for collecting code coverage data for JDK 1.6. These properties 32 # are currently supported: 33 # jcov.options are the jcov options that should be added to VMs 34 # system properties 35 # rmid.jcov.args are the jcov options that should be added as 36 # arguments to rmid command line; effectively, these 37 # are identical to jcov.options but each option is 38 # prefaced with '-C' 39 # jcov.sleep.multiplier is an integer that will be multiplied by 40 # various wait times in the test library; the 41 # default value used is '1' 42 43 jcov.options=-Xrunjcov:file=/files/rmi.jcov -Xms256m -Xmx256m -XX:+UseUnsupportedDeprecatedJVMPI -XX:+EnableJVMPIInstructionStartEvent -XX:-UseFastEmptyMethods -XX:-UseFastAccessorMethods 44 45 rmid.jcov.args=-C-Xrunjcov:file=/files/rmi.jcov -C-Xms256m -C-Xmx256m -C-XX:+UseUnsupportedDeprecatedJVMPI -C-XX:+EnableJVMPIInstructionStartEvent -C-XX:-UseFastEmptyMethods -C-XX:-UseFastAccessorMethods 46 47 jcov.sleep.multiplier=3 48 49 50 ######################################################################## 51 # The following section is an example script that generates the 52 # jcov report. The important documentation here is the list of Java 53 # packages and classes that are included in the RMI coverage report. 54 55 #!/bin/ksh 56 57 export CLASSPATH=<path to jcov.jar> 58 export SRCS=<path to sources of the instrumented JDK build> 59 java com.sun.tdk.jcov.MergerMain <path to jcov 'A' template for the build>template_a.jcov /files/rmi.jcov 60 java -Xms256m -Xmx512m com.sun.tdk.jcov.RepGenMain -fmt=html_ns -src_root=${SRCS} \ 61 -include=java.rmi.* \ 62 -include=java.rmi.activation.* \ 63 -include=java.rmi.dgc.* \ 64 -include=java.rmi.registry.* \ 65 -include=java.rmi.server.* \ 66 -include=sun.rmi.log.* \ 67 -include=sun.rmi.registry.* \ 68 -include=sun.rmi.runtime.* \ 69 -include=sun.rmi.server.* \ 70 -include=sun.rmi.transport.* \ 71 -include=sun.rmi.transport.proxy.* \ 72 -include=sun.rmi.transport.tcp.* \ 73 -include=java.lang.reflect.Proxy \ 74 -include=sun.misc.ProxyGenerator \ 75 -exclude=com.sun.rmi.rmid.* \ 76 -exclude=sun.rmi.rmic.* \ 77 -exclude=javax.rmi.ssl.* \ 78 java.jcov 79