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