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)
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 aremake CVM_TARGET=solaris buildBuilding from the subdirectories will only build the test class files.
make CVM_TARGET=vxworks buildBy default following flags are set
CVM_TARGET=solaris
CVM_DEBUG=false
CVM_OPTIMIZED=false
CVM_PRELOAD_LIB=false
CVM_SYMBOLS=false
CVM_TEST_GC=trueThe tests can be run in two ways:
But before running the test the following should be done.Run all the tests in all the test directories Run all the tests in only one test directory 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 neededFor Debug:.
make CVM_TARGET=solaris/vxworks CVM_DEBUG=true allFor Optimized:
make CVM_TARGET=solaris/vxworks CVM_OPTIMIZED=true CVM_SYMBOLS=true allFor DebugMaxRomized:
make CVM_TARGET=solaris/vxworks CVM_DEBUG=true CVM_PRELOAD_LIB=true all
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