#
#  Basic controls of the test system.  Note that the quotes
#  used to delineate options are not used when specifying
#  values
#
#---------------------------------------------
#
#   test.mode
#
# configures how tests are run wrt 
# which jit or interpreter
#
# valid values are comma separated list
# of VM execution modes, 
# like defined below "jet", "opt" and "int"
#
test.mode=jit,opt,int

#--------------------------------------------
#
#  test.timeout
#
#  time limit to complete test run
#  in units of milliseconds
test.timeout=1800000

# per single jvmti test
jvmti.test.timeout=180000
# per single regression test
reg.test.timeout=600000

# --------------------------------------------
#
#  kernel.test.failfast
#
# determines if tests should continue on failure
# valid values are "off" and "on"
#
test.failfast=off

# --------------------------------------------
#
#  kernel.test.forkmode
#
#  instantiate one VM per testsuite
#  or one per single testcase
#  valid values are "once" and "perTest"
#
kernel.test.forkmode=once
lazy.test.forkmode=once

# --------------------------------------------
#
#  test.vmargs
#
#  additional arguments for vm to run tests
#
test.vmargs=-XX:-vm.assert_dialog

#--------------------------------------------
#
#  VM execution modes definitions
#
#  <mode>.name		human readable description of the mode
#  <mode>.switch	cmd-line options to turn the mode on; 
#					beware to avoid empty switch

jit.name=Client mode JIT (default)
jit.switch=

jet.name=jitrino.JET
jet.switch=-Xem:jet

opt.name=jitrino.OPT
opt.switch=-Xem:opt

srv.name=Server mode JIT
srv.switch=-server

int.name=interpreter
int.switch=-Xint

gc_cc.name=Default mode since gc_cc is no more
gc_cc.switch=

#--------------------------------------------
#
#  Eclipse HelloWorld development scenario (aka EHWA)
#
# Locations to obtain platform specific Eclipse SDK bundle
# A bundle will be downloaded and stored for local use, unless 
# ECLIPSE_HOME environment variable points to existing Eclipse installation
 
eclipse.mirror=http://archive.eclipse.org/eclipse/downloads/drops/R-3.2.1-200609210945
eclipse-3.3.mirror=http://www.mirrorservice.org/sites/download.eclipse.org/eclipseMirror/eclipse/downloads/drops/R-3.3-200706251500
eclipse.windows.x86.url=${eclipse.mirror}/eclipse-SDK-3.2.1-win32.zip
#eclipse.windows.x86.url=${eclipse-3.3.mirror}/eclipse-SDK-3.3-win32.zip
eclipse.windows.x86_64.url=${eclipse.mirror}/eclipse-SDK-3.2.1-win32-x86_64.zip
#eclipse.windows.x86_64.url=${eclipse-3.3.mirror}/eclipse-SDK-3.3-win32-x86_64.zip
eclipse.windows.ia64.url=${eclipse.mirror}/eclipse-SDK-3.2.1-win32-ia64.zip
eclipse.linux.x86.url=${eclipse.mirror}/eclipse-SDK-3.2.1-linux-gtk.tar.gz
eclipse.linux.x86_64.url=${eclipse.mirror}/eclipse-SDK-3.2.1-linux-gtk-x86_64.tar.gz
eclipse.linux.ia64.url=${eclipse.mirror}/eclipse-SDK-3.2.1-linux-gtk-ia64.tar.gz
eclipse.macosx.ppc32.url=${eclipse.mirror}/eclipse-platform-SDK-3.2.1-macosx-carbon.tar.gz
eclipse.freebsd.x86.url=${eclipse.mirror}/eclipse-SDK-3.2.1-linux-gtk.tar.gz
