/*
 * @(#)README.html 1.1 00/06/14
 *
 * Copyright 1994-2000 Sun Microsystems, Inc. All Rights Reserved.
 *
 * This software is the proprietary information of Sun Microsystems, Inc.
 * Use is subject to license terms.
 *
 */

 Test Harness Layout

Main Structure:


                  Top Directory  :  GCTest
                  Sub Directories:  DirectMem, IndirectMem, Barriers, LocalGlobalRoots, and RootScans
                  Files                 :  Makefile, README.html, RULES, RULES.tcl, build.sh, clean.sh,  results.sh.
                                               run.sh, and run.tcl

2nd Level Structure:


                  Directory1        : DirectMem
                  Sub Directories:  Class, Csrc, Include, and Jsrc
                  Files                :  Makefile, defs.mk, build.sh, clean.sh, run.sh, run.tcl, and results.sh

                  Directory2        :  IndirectMem
                  Sub Directories:  Class, Csrc, Include, and Jsrc
                  Files                 :  Makefile, defs.mk, build.sh, clean.sh, run.sh, run.tcl ,and results.sh

                  Directory3        : Barriers
                  Sub Directories:  Class, Csrc, Include, and Jsrc
                  Files:               :  Makefile, defs.mk, build.sh, clean.sh, run.sh, run.tcl, and results.sh

                  Directory4         :  LocalGlobalRoots
                  Sub Directories:  Class, Csrc, Include, and Jsrc
                  Files                   :  Makefile, defs.mk, build.sh, clean.sh, run.sh, run.tcl, and results.sh

                  Directory5        :  RootScans
                  Sub Directories:  Class, Csrc, Include, and Jsrc
                  Files                 :  Makefile, defs.mk, build.sh, clean.sh, run.sh, run.tcl, and results.sh
 

3rd Level Structure:


                  Jsrc     :  Contains Java(test) src files
                  Csrc    :  Each java test file will have a corresponding C src file, which lives in this directory
                  Include:  Each C src file will have a corresponding Header file,which lives in this directory
                  Class   :  Contains compiled java classes(.class files)
 

Building and Running The Tests

The tests should be built from the toplevel directory(GCTest). This builds the special CVM for GCTest with CVM_TEST_GC set to true and CVM_GCCHOICE set to semispace and also builds the test with the same set of flags.  The commands are
make CVM_TARGET=solaris build
make CVM_TARGET=vxworks build

By default following flags are set
CVM_TARGET=solaris
CVM_DEBUG=false
CVM_OPTIMIZED=false
CVM_PRELOAD_LIB=false
CVM_SYMBOLS=false
CVM_TEST_GC=true

Building from the subdirectories will only build the test class files.

The tests can be run in two ways:

  • Run all the tests in all the test directories
  • Run all the tests in only one test directory
  • But before running the test the following should be done.
  • Source "torvars" depending on which shell is being used
  • Create RULES and RULES.tcl using RULES.sample and RULES.tcl.sample
  • For  vxWorks the target server for the target should've been launched.

  •             To build and run all the tests in all the test directories , cd to the top level directory(GCTest) and the following command should be
                executed:

                           make CVM_TARGET=solaris  all       --->   For Solaris
                           make CVM_TARGET=vxworks all     --->   For VxWorks

                This command will call  build.sh, run.sh and results.sh in the top level directory. These top level scripts in turn will "cd" to each
                of DirectMem, IndirectMem, Barriers, LocalGlobalRoots and RootScans directories and call build.sh, run.sh and results.sh
                respectively. These will build and run the test files in that particular test directory and collect results.

                To run all the tests in only one directory, cd to a particular test directory under the toplevel directory and execute the same
                command as above

                          make CVM_TARGET=solaris all     --->   For Solaris
                          make CVM_TARGET=vxworks all  --->   For VxWorks

                This will call  run.sh and results.sh, which will  run the tests in that directory and will collect the results.

    NOTE:

    Following flags should be used while building depending on which build flavor is needed

    For Debug:.
    make CVM_TARGET=solaris/vxworks CVM_DEBUG=true all

    For Optimized:
    make CVM_TARGET=solaris/vxworks CVM_OPTIMIZED=true CVM_SYMBOLS=true all

    For DebugMaxRomized:
    make CVM_TARGET=solaris/vxworks CVM_DEBUG=true  CVM_PRELOAD_LIB=true all
     

    Logging The Output


                The tests are automatically logged in 3 different log files when run using "make". The log files are:

                      build.log
                      run.log
                      results.log

                build.log:    Will have the compilation log of each test
                run.log:       Will have the run log of each test run.
                results.log: Will have a summary of the number of passes and failures