AUTHOR = "Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>"
NAME = "dacapo"
TIME = "MEDIUM"
TEST_CLASS = "Java"
TEST_CATEGORY = "Functional"
TEST_TYPE = "client"
DOC = """\
This benchmark suite is intended as a tool for Java benchmarking by the
programming language, memory management and computer architecture communities.
It consists of a set of open source, real world applications with non-trivial
memory loads. The suite is the culmination of over five years work at eight
institutions, as part of the DaCapo research project, which was funded by a
National Science Foundation ITR Grant, CCR-0085792.
"""

dacapo_base_config = '''
[dacapo]
tarball_url = http://downloads.sourceforge.net/project/dacapobench/9.12-bach/dacapo-9.12-bach.jar
package_md5 = 3f5c11927268b567bc90629c17ec446b

[global]
iterations = 5
workload = large
use_global = yes

[avrora]
iterations = 0
workload = large

[batik]
iterations = 0
workload = large

[eclipse]
iterations = 0
workload = large

[fop]
iterations = 0
workload = large

[h2]
iterations = 0
workload = large

[jython]
iterations = 0
workload = large

[luindex]
iterations = 0
workload = large

[lusearch]
iterations = 0
workload = large

[pmd]
iterations = 0
workload = large

[sunflow]
iterations = 0
workload = large

[tomcat]
iterations = 0
workload = large

[tradebeans]
iterations = 0
workload = large

[tradesoap]
iterations = 0
workload = large

[xalan]
iterations = 0
workload = large
'''

java_config = '''
[ibm14-ppc64]
jvm_pkg_url = http://myhost.foo.com/packages/java/ibm14/ppc/IBMJava2-142-ppc32-JRE-1.4.2-9.0.ppc.rpm
java_root = /opt/IBMJava2-ppc-142
package_md5 = 5e90f080f8834a2b1af66490158497ed

[ibm15-ppc64]
jvm_pkg_url = http://myhost.foo.com/packages/java/ibm15/ppc/ibm-java2-ppc-jre-5.0-5.1.ppc.rpm
java_root = /opt/ibm/java2-ppc-50
package_md5 = 63e19cc1ac2d29186e594b0b4dd35ce0

[ibm14-i386]
jvm_pkg_url = http://myhost.foo.com/packages/java/ibm14/i386/IBMJava2-142-ia32-JRE-1.4.2-8.0.i386.rpm
java_root = /opt/IBMJava2-142
package_md5 = 1c499114dec5fb0123edad4e89b26370

[sun16-i386]
jvm_pkg_url = http://myhost.foo.com/packages/java/sun16/i386/jre-6u3-linux-i586.rpm
java_root = /usr/java/jre1.6.0_03
package_md5 = e94c47adedf329200fc975662d667307
'''

dacapo_config = dacapo_base_config + java_config

# list of jvm entries inside the configuration file. 'default' means the test
# will use the jvm installed on the machine.
jvm_list = ['default']

# list of dacapo tests that will be executed
dacapo_tests = ['avrora', 'batik', 'eclipse', 'fop', 'h2', 'jython', 'luindex',
                'lusearch', 'pmd', 'sunflow', 'tomcat', 'tradebeans',
                'tradesoap', 'xalan']

# No go trough the tests and jvms
for jvm in jvm_list:
    for test in dacapo_tests:
        t = test + '-' + jvm
        job.run_test('dacapo', test=test, config=dacapo_config, jvm=jvm, tag=t)