[test-suite] r253362 - [test-suite] PGO and reference input support for SPEC

Adam Nemet via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 17 11:08:19 PST 2015


Author: anemet
Date: Tue Nov 17 13:08:18 2015
New Revision: 253362

URL: http://llvm.org/viewvc/llvm-project?rev=253362&view=rev
Log:
[test-suite] PGO and reference input support for SPEC

Summary:
LNT has this underused feature that lets you defined tests in python.  I used
this feature to implement PGO and reference input support for SPEC2000_int,
SPEC2006_{int,fp}.

The module currently uses configure/make to build the benchmarks (this can
obviously be changed to cmake in the long run).  The tests are then directly
run from python and then the output is verified.

This new method is off by default.  You need to invoke lnt runtest nt with
--spec-with-ref to enable it.  Also PGO is supported with --spec-with-pgo.

I still need to add RunSafely and remote support.  Also some tests depend on
endianness and I only added little endian support at this point.

Reviewers: cmatthews

Subscribers: llvm-commits, MatzeB

Differential Revision: http://reviews.llvm.org/D14734

Added:
    test-suite/trunk/LNTBased/lib/
    test-suite/trunk/LNTBased/lib/spec.py
    test-suite/trunk/LNTBased/speccpu2000/
    test-suite/trunk/LNTBased/speccpu2000/int/
    test-suite/trunk/LNTBased/speccpu2000/int/164.gzip/
    test-suite/trunk/LNTBased/speccpu2000/int/164.gzip/TestModule
    test-suite/trunk/LNTBased/speccpu2000/int/175.vpr/
    test-suite/trunk/LNTBased/speccpu2000/int/175.vpr/TestModule
    test-suite/trunk/LNTBased/speccpu2000/int/176.gcc/
    test-suite/trunk/LNTBased/speccpu2000/int/176.gcc/TestModule
    test-suite/trunk/LNTBased/speccpu2000/int/181.mcf/
    test-suite/trunk/LNTBased/speccpu2000/int/181.mcf/TestModule
    test-suite/trunk/LNTBased/speccpu2000/int/186.crafty/
    test-suite/trunk/LNTBased/speccpu2000/int/186.crafty/TestModule
    test-suite/trunk/LNTBased/speccpu2000/int/197.parser/
    test-suite/trunk/LNTBased/speccpu2000/int/197.parser/TestModule
    test-suite/trunk/LNTBased/speccpu2000/int/252.eon/
    test-suite/trunk/LNTBased/speccpu2000/int/252.eon/TestModule
    test-suite/trunk/LNTBased/speccpu2000/int/253.perlbmk/
    test-suite/trunk/LNTBased/speccpu2000/int/253.perlbmk/TestModule
    test-suite/trunk/LNTBased/speccpu2000/int/254.gap/
    test-suite/trunk/LNTBased/speccpu2000/int/254.gap/TestModule
    test-suite/trunk/LNTBased/speccpu2000/int/255.vortex/
    test-suite/trunk/LNTBased/speccpu2000/int/255.vortex/TestModule
    test-suite/trunk/LNTBased/speccpu2000/int/256.bzip2/
    test-suite/trunk/LNTBased/speccpu2000/int/256.bzip2/TestModule
    test-suite/trunk/LNTBased/speccpu2000/int/300.twolf/
    test-suite/trunk/LNTBased/speccpu2000/int/300.twolf/TestModule
    test-suite/trunk/LNTBased/speccpu2006/
    test-suite/trunk/LNTBased/speccpu2006/fp/
    test-suite/trunk/LNTBased/speccpu2006/fp/433.milc/
    test-suite/trunk/LNTBased/speccpu2006/fp/433.milc/TestModule
    test-suite/trunk/LNTBased/speccpu2006/fp/444.namd/
    test-suite/trunk/LNTBased/speccpu2006/fp/444.namd/TestModule
    test-suite/trunk/LNTBased/speccpu2006/fp/447.dealII/
    test-suite/trunk/LNTBased/speccpu2006/fp/447.dealII/TestModule
    test-suite/trunk/LNTBased/speccpu2006/fp/450.soplex/
    test-suite/trunk/LNTBased/speccpu2006/fp/450.soplex/TestModule
    test-suite/trunk/LNTBased/speccpu2006/fp/453.povray/
    test-suite/trunk/LNTBased/speccpu2006/fp/453.povray/TestModule
    test-suite/trunk/LNTBased/speccpu2006/fp/470.lbm/
    test-suite/trunk/LNTBased/speccpu2006/fp/470.lbm/TestModule
    test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/
    test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/TestModule
    test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/ref/
    test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/ref/ctlfile.little-endian
    test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/train/
    test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/train/ctlfile.little-endian
    test-suite/trunk/LNTBased/speccpu2006/int/
    test-suite/trunk/LNTBased/speccpu2006/int/400.perlbench/
    test-suite/trunk/LNTBased/speccpu2006/int/400.perlbench/TestModule
    test-suite/trunk/LNTBased/speccpu2006/int/401.bzip2/
    test-suite/trunk/LNTBased/speccpu2006/int/401.bzip2/TestModule
    test-suite/trunk/LNTBased/speccpu2006/int/403.gcc/
    test-suite/trunk/LNTBased/speccpu2006/int/403.gcc/TestModule
    test-suite/trunk/LNTBased/speccpu2006/int/429.mcf/
    test-suite/trunk/LNTBased/speccpu2006/int/429.mcf/TestModule
    test-suite/trunk/LNTBased/speccpu2006/int/445.gobmk/
    test-suite/trunk/LNTBased/speccpu2006/int/445.gobmk/TestModule
    test-suite/trunk/LNTBased/speccpu2006/int/456.hmmer/
    test-suite/trunk/LNTBased/speccpu2006/int/456.hmmer/TestModule
    test-suite/trunk/LNTBased/speccpu2006/int/458.sjeng/
    test-suite/trunk/LNTBased/speccpu2006/int/458.sjeng/TestModule
    test-suite/trunk/LNTBased/speccpu2006/int/462.libquantum/
    test-suite/trunk/LNTBased/speccpu2006/int/462.libquantum/TestModule
    test-suite/trunk/LNTBased/speccpu2006/int/464.h264ref/
    test-suite/trunk/LNTBased/speccpu2006/int/464.h264ref/TestModule
    test-suite/trunk/LNTBased/speccpu2006/int/471.omnetpp/
    test-suite/trunk/LNTBased/speccpu2006/int/471.omnetpp/TestModule
    test-suite/trunk/LNTBased/speccpu2006/int/473.astar/
    test-suite/trunk/LNTBased/speccpu2006/int/473.astar/TestModule
    test-suite/trunk/LNTBased/speccpu2006/int/483.xalancbmk/
    test-suite/trunk/LNTBased/speccpu2006/int/483.xalancbmk/TestModule
Modified:
    test-suite/trunk/External/SPEC/CFP2006/Makefile
    test-suite/trunk/External/SPEC/Makefile

Modified: test-suite/trunk/External/SPEC/CFP2006/Makefile
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/External/SPEC/CFP2006/Makefile?rev=253362&r1=253361&r2=253362&view=diff
==============================================================================
--- test-suite/trunk/External/SPEC/CFP2006/Makefile (original)
+++ test-suite/trunk/External/SPEC/CFP2006/Makefile Tue Nov 17 13:08:18 2015
@@ -50,6 +50,11 @@ endif   # End USE_F95
 #   465.tonto     - infinite loop, works at -O0, not at -O2
 #   482.sphinx3   - generates control file at run time
 
+# In the SPEC test module we can handle these too.
+ifdef USE_SPEC_TEST_MODULE
+PARALLEL_DIRS += 453.povray 482.sphinx3
+endif
+
 ifdef DISABLE_CXX
 PARALLEL_DIRS := $(filter-out 444.namd, $(PARALLEL_DIRS))
 PARALLEL_DIRS := $(filter-out 447.dealII, $(PARALLEL_DIRS))

Modified: test-suite/trunk/External/SPEC/Makefile
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/External/SPEC/Makefile?rev=253362&r1=253361&r2=253362&view=diff
==============================================================================
--- test-suite/trunk/External/SPEC/Makefile (original)
+++ test-suite/trunk/External/SPEC/Makefile Tue Nov 17 13:08:18 2015
@@ -26,4 +26,11 @@ PARALLEL_DIRS := $(filter-out CFP95, $(P
 PARALLEL_DIRS := $(filter-out CINT95, $(PARALLEL_DIRS))
 endif
 
+# If reference input is requested, these are run under the SPEC test module.
+# (The test module uses the makefile harness as well but it builds the
+# benchmarks directly under their subdirectory so this check is bypassed.)
+ifdef USE_SPEC_TEST_MODULE
+PARALLEL_DIRS := $(filter-out CFP2006 CINT2006 CINT2000, $(PARALLEL_DIRS))
+endif
+
 include $(LEVEL)/Makefile.programs

Added: test-suite/trunk/LNTBased/lib/spec.py
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/lib/spec.py?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/lib/spec.py (added)
+++ test-suite/trunk/LNTBased/lib/spec.py Tue Nov 17 13:08:18 2015
@@ -0,0 +1,185 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import os
+import shutil
+
+# We import test functionity from LNT.
+from lnt.tests import nt
+from lnt.testing import TestSamples, PASS, FAIL, XFAIL
+from lnt.testing.util import commands
+
+# Implement cp -rf such that src can be both a file or a directory and if
+# the dst exists create the file/dir under dst rather than rename on the
+# fly.
+def cp_rf(src, dst):
+    if os.path.isfile(src):
+        shutil.copy(src, dst)
+    else:
+        newdst = dst
+        if os.path.exists(dst):
+            newdst = os.path.join(dst, os.path.basename(src))
+        shutil.copytree(src, newdst)
+
+# Test module classes are currently required to subclass 'nt.TestModule'.
+class TestModule(nt.TestModule):
+    def __init__(self):
+        # The subdirectory name under externals E.g. CINT2006
+        self.suite = 'C' + self.category.upper() + str(self.year)
+
+        # Name to identify this LNT test, e.g. nts.LNT/CINT2006_ref/456.hmmer
+        self.testname = "nts.LNT/%s_ref/%s" % (self.suite, self.benchmark)
+
+        # Executable name, e.g. 456.hmmer.simple
+        self.exe = self.benchmark + '.simple'
+
+    def configure_test_suite(self, config, working_dir):
+        args = [os.path.realpath(os.path.join(config.test_suite_root,
+                                              'configure'))]
+        if config.without_llvm:
+            args.extend(['--without-llvmsrc', '--without-llvmobj'])
+        else:
+            args.extend(['--with-llvmsrc=%s' % config.llvm_src_root,
+                         '--with-llvmobj=%s' % config.llvm_obj_root])
+
+        if config.test_suite_externals:
+            args.append('--with-externals=%s' %
+                        os.path.realpath(config.test_suite_externals))
+
+        res = self.call(args, cwd=working_dir)
+        if res != 0:
+            return res
+        # RunSafely requires timeit, build it.
+        return self.call(['make', 'tools'], cwd=working_dir)
+
+    def fail(self):
+        return [TestSamples(self.testname + '.compile.status', [FAIL])]
+
+    def copy_input_set(self, dest_dir, size):
+        if size == 'train':
+            input_set = self.train_input_set
+        elif size == 'ref':
+            input_set = self.ref_input_set
+        else:
+            fatal('only train and ref are supported for now')
+
+        for f in input_set:
+            cp_rf(os.path.join(self.datadir, f), dest_dir)
+
+    def copy_output_set(self, dest_dir, size):
+        if size == 'train':
+            output_set = self.train_output_set
+        else:
+            output_set = self.ref_output_set
+
+        for f in output_set:
+            cp_rf(os.path.join(self.datadir, f), dest_dir)
+
+    def execute_test(self, options, make_variables, config):
+        MODULENAME = options['MODULENAME']
+        self.SRCROOT = options['SRCROOT']
+        OBJROOT = options['OBJROOT']
+        CC = options['CC']
+        CFLAGS = options['CFLAGS']
+        TEST_SUITE_EXTERNALS = config.test_suite_externals
+
+        # test-suite-externals//speccpu2006/benchspec/CPU2006/400.perlbench vs
+        # test-suite-externals//speccpu2000/benchspec/CINT2000/164.gzip
+        suitedir = os.path.join(TEST_SUITE_EXTERNALS, 'speccpu' + str(self.year), 'benchspec')
+        if self.year == '2000':
+            suitedir = os.path.join(suitedir, 'C%s2000' % self.category.upper())
+        else:
+            suitedir = os.path.join(suitedir, 'CPU' + self.year)
+
+        self.datadir = os.path.join(suitedir, self.benchmark, 'data')
+        print >>self.log, "%s\n  options: %s\n\nmake variables: %s\n\n" % (self.testname, str(options), str(make_variables))
+
+        if not os.path.exists(self.datadir):
+            print >>self.log, "skipping, no source under externals"
+            return []
+
+        res = self.configure_test_suite(config, OBJROOT)
+        if res != 0:
+            return fail()
+
+        make_cmd = ['make', '-k']
+        make_cmd.extend('%s=%s' % (k,v) for k,v in make_variables.items())
+        make_cmd.append('USE_SPEC_TEST_MODULE=1')
+
+        # Run make clean to create the benchmark directories.
+        external_obj = os.path.join(OBJROOT, 'External', 'SPEC', self.suite, self.benchmark)
+        clean_cmd = make_cmd
+        external_spec_obj = os.path.split(external_obj)[0]
+        result = self.call(make_cmd + ['-C', external_spec_obj, 'clean'])
+        if result != 0:
+            return self.fail()
+
+        # From this on, we are operating in the 456.hmmer directory.
+        make_cmd.extend(['-C', external_obj])
+        exe_file = os.path.join('Output', self.exe)
+
+        if config.spec_with_pgo:
+            pgo_dir = os.path.join(OBJROOT, 'pgo')
+            os.mkdir(pgo_dir)
+
+            target_flags = make_variables['TARGET_FLAGS'] + ' -fprofile-instr-generate'
+            pgo_make_cmd = make_cmd[:]
+            pgo_make_cmd.append("TARGET_FLAGS=%s" % target_flags)
+            result = self.call(pgo_make_cmd + [ exe_file ])
+
+            exe = os.path.join(external_obj, exe_file)
+            if result != 0 or not os.path.exists(exe):
+                return self.fail()
+            shutil.copy(exe, pgo_dir)
+
+            self.copy_input_set(pgo_dir, 'train')
+
+            pgo_cmd = './%s %s' % (self.exe, self.train_args)
+            result = self.call(pgo_cmd, cwd=pgo_dir, shell=True)
+            if result != 0:
+                return self.fail()
+
+            llvm_profdata = os.path.join(os.path.dirname(CC), 'llvm-profdata')
+            result = self.call(llvm_profdata + ' merge -output=code.profdata pgo/default.profraw', shell=True, cwd=OBJROOT)
+            if result != 0:
+                return self.fail()
+
+            target_flags = make_variables['TARGET_FLAGS'] + ' -fprofile-instr-use=' + os.path.join(OBJROOT, 'code.profdata')
+            make_cmd.append("TARGET_FLAGS=%s" % target_flags)
+
+            result = self.call(make_cmd + ['-C', external_spec_obj, 'clean'])
+            if result != 0:
+                return self.fail()
+
+        start_time = self.get_time()
+        result = self.call(make_cmd + [ exe_file ])
+        compile_time = self.get_time() - start_time
+
+        exe = os.path.join(external_obj, exe_file)
+        if result != 0 or not os.path.exists(exe):
+            return self.fail()
+
+        shutil.copy(exe, OBJROOT)
+
+        self.copy_input_set(OBJROOT, 'ref')
+        self.copy_output_set(OBJROOT, 'ref')
+
+        run_cmds = ['./%s %s' % (self.exe, args) for args in self.ref_args]
+        status = PASS
+
+        start_time = self.get_time()
+        for cmd in run_cmds:
+            result = self.call(cmd, cwd=OBJROOT, shell=True)
+            if result != 0:
+                status = FAIL
+        exec_time = self.get_time() - start_time
+
+        os.environ['PATH'] += ':' + os.path.join(OBJROOT, 'tools')
+        for cmd in self.ref_cmp_cmds:
+            if self.call(cmd, cwd=OBJROOT, shell=True, env=os.environ) != 0:
+                status = FAIL
+
+        return [
+            TestSamples(self.testname + '.compile', [compile_time]),
+            TestSamples(self.testname + '.exec', [exec_time]),
+            TestSamples(self.testname + '.exec.status', [status])]

Added: test-suite/trunk/LNTBased/speccpu2000/int/164.gzip/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2000/int/164.gzip/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2000/int/164.gzip/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2000/int/164.gzip/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2000_164_gzip(spec.TestModule):
+    year = '2000'
+    category = 'int'
+    benchmark = '164.gzip'
+
+    train_input_set = ['train/input/input.combined']
+    train_output_set = ['train/output/input.combined.out']
+    train_args = 'input.combined 32 > 164.gzip.combined.out 2> 164.gzip.combined.err'
+    train_cmp_cmd = 'diff 164.gzip.combined.out input.combined.out --strip-trailing-cr > 164.gzip.combined.cmp'
+    ref_input_set = ['ref/input/input.graphic', 'ref/input/input.log', 'ref/input/input.program', 'ref/input/input.random', 'ref/input/input.source']
+    ref_output_set = ['ref/output/input.graphic.out', 'ref/output/input.log.out', 'ref/output/input.program.out', 'ref/output/input.random.out', 'ref/output/input.source.out']
+    ref_args = ['input.graphic 60 > 164.gzip.graphic.out 2> 164.gzip.graphic.err', 'input.log 60 > 164.gzip.log.out 2> 164.gzip.log.err', 'input.program 60 > 164.gzip.program.out 2> 164.gzip.program.err', 'input.random 60 > 164.gzip.random.out 2> 164.gzip.random.err', 'input.source 60 > 164.gzip.source.out 2> 164.gzip.source.err']
+    ref_cmp_cmds = ['diff 164.gzip.graphic.out input.graphic.out --strip-trailing-cr > 164.gzip.graphic.cmp', 'diff 164.gzip.log.out input.log.out --strip-trailing-cr > 164.gzip.log.cmp', 'diff 164.gzip.program.out input.program.out --strip-trailing-cr > 164.gzip.program.cmp', 'diff 164.gzip.random.out input.random.out --strip-trailing-cr > 164.gzip.random.cmp', 'diff 164.gzip.source.out input.source.out --strip-trailing-cr > 164.gzip.source.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2000_164_gzip
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2000/int/175.vpr/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2000/int/175.vpr/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2000/int/175.vpr/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2000/int/175.vpr/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2000_175_vpr(spec.TestModule):
+    year = '2000'
+    category = 'int'
+    benchmark = '175.vpr'
+
+    train_input_set = ['train/input/net.in', 'train/input/arch.in', 'train/input/place.in']
+    train_output_set = ['train/output/place_log.out']
+    train_args = 'net.in arch.in place.in dum.out -nodisp -place_only -init_t 5 -exit_t 0.005 -alpha_t 0.9412 -inner_num 2 > 175.vpr.place.out 2> 175.vpr.place.err', 'net.in arch.in place.in route.out -nodisp -route_only -route_chan_width 15 -pres_fac_mult 2 -acc_fac 1 -first_iter_pres_fac 4 -initial_pres_fac 8 > 175.vpr.route.out 2> 175.vpr.route.err'
+    train_cmp_cmd = 'diff 175.vpr.place.out place_log.out --strip-trailing-cr > 175.vpr.place.cmp'
+    ref_input_set = ['ref/input/net.in', 'ref/input/arch.in', 'ref/input/place.in']
+    ref_output_set = ['ref/output/place_log.out']
+    ref_args = ['net.in arch.in place.in dum.out -nodisp -place_only -init_t 5 -exit_t 0.005 -alpha_t 0.9412 -inner_num 2 > 175.vpr.place.out 2> 175.vpr.place.err', 'net.in arch.in place.in route.out -nodisp -route_only -route_chan_width 15 -pres_fac_mult 2 -acc_fac 1 -first_iter_pres_fac 4 -initial_pres_fac 8 > 175.vpr.route.out 2> 175.vpr.route.err']
+    ref_cmp_cmds = ['diff 175.vpr.place.out place_log.out --strip-trailing-cr > 175.vpr.place.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2000_175_vpr
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2000/int/176.gcc/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2000/int/176.gcc/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2000/int/176.gcc/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2000/int/176.gcc/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2000_176_gcc(spec.TestModule):
+    year = '2000'
+    category = 'int'
+    benchmark = '176.gcc'
+
+    train_input_set = ['train/input/cp-decl.i']
+    train_output_set = ['train/output/cp-decl.s']
+    train_args = 'cp-decl.i -o - > 176.gcc.cp-decl.out 2> 176.gcc.cp-decl.err'
+    train_cmp_cmd = 'diff 176.gcc.cp-decl.out cp-decl.s --strip-trailing-cr > 176.gcc.cp-decl.cmp'
+    ref_input_set = ['ref/input/166.i', 'ref/input/200.i', 'ref/input/expr.i', 'ref/input/integrate.i', 'ref/input/scilab.i']
+    ref_output_set = ['ref/output/166.s', 'ref/output/200.s', 'ref/output/expr.s', 'ref/output/integrate.s', 'ref/output/scilab.s']
+    ref_args = ['166.i -o - > 176.gcc.166.out 2> 176.gcc.166.err', '200.i -o - > 176.gcc.200.out 2> 176.gcc.200.err', 'expr.i -o - > 176.gcc.expr.out 2> 176.gcc.expr.err', 'integrate.i -o - > 176.gcc.integrate.out 2> 176.gcc.integrate.err', 'scilab.i -o - > 176.gcc.scilab.out 2> 176.gcc.scilab.err']
+    ref_cmp_cmds = ['diff 176.gcc.166.out 166.s --strip-trailing-cr > 176.gcc.166.cmp', 'diff 176.gcc.200.out 200.s --strip-trailing-cr > 176.gcc.200.cmp', 'diff 176.gcc.expr.out expr.s --strip-trailing-cr > 176.gcc.expr.cmp', 'diff 176.gcc.integrate.out integrate.s --strip-trailing-cr > 176.gcc.integrate.cmp', 'diff 176.gcc.scilab.out scilab.s --strip-trailing-cr > 176.gcc.scilab.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2000_176_gcc
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2000/int/181.mcf/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2000/int/181.mcf/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2000/int/181.mcf/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2000/int/181.mcf/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2000_181_mcf(spec.TestModule):
+    year = '2000'
+    category = 'int'
+    benchmark = '181.mcf'
+
+    train_input_set = ['train/input/inp.in']
+    train_output_set = ['train/output/inp.out']
+    train_args = 'inp.in > 181.mcf.inp.out 2> 181.mcf.inp.err'
+    train_cmp_cmd = 'diff 181.mcf.inp.out inp.out --strip-trailing-cr > 181.mcf.inp.cmp'
+    ref_input_set = ['ref/input/inp.in']
+    ref_output_set = ['ref/output/inp.out']
+    ref_args = ['inp.in > 181.mcf.inp.out 2> 181.mcf.inp.err']
+    ref_cmp_cmds = ['diff 181.mcf.inp.out inp.out --strip-trailing-cr > 181.mcf.inp.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2000_181_mcf
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2000/int/186.crafty/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2000/int/186.crafty/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2000/int/186.crafty/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2000/int/186.crafty/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2000_186_crafty(spec.TestModule):
+    year = '2000'
+    category = 'int'
+    benchmark = '186.crafty'
+
+    train_input_set = ['train/input/crafty.in']
+    train_output_set = ['train/output/crafty.out']
+    train_args = '< crafty.in > 186.crafty.crafty.out 2> 186.crafty.crafty.err'
+    train_cmp_cmd = 'diff 186.crafty.crafty.out crafty.out --strip-trailing-cr > 186.crafty.crafty.cmp'
+    ref_input_set = ['ref/input/crafty.in']
+    ref_output_set = ['ref/output/crafty.out']
+    ref_args = ['< crafty.in > 186.crafty.crafty.out 2> 186.crafty.crafty.err']
+    ref_cmp_cmds = ['diff 186.crafty.crafty.out crafty.out --strip-trailing-cr > 186.crafty.crafty.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2000_186_crafty
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2000/int/197.parser/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2000/int/197.parser/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2000/int/197.parser/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2000/int/197.parser/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2000_197_parser(spec.TestModule):
+    year = '2000'
+    category = 'int'
+    benchmark = '197.parser'
+
+    train_input_set = ['all/input/2.1.dict', 'all/input/words', 'train/input/train.in']
+    train_output_set = ['train/output/train.out']
+    train_args = '< train.in 2.1.dict -batch > 197.parser.train.out 2> 197.parser.train.err'
+    train_cmp_cmd = 'diff 197.parser.train.out train.out --strip-trailing-cr > 197.parser.train.cmp'
+    ref_input_set = ['all/input/2.1.dict', 'all/input/words', 'ref/input/ref.in']
+    ref_output_set = ['ref/output/ref.out']
+    ref_args = ['< ref.in 2.1.dict -batch > 197.parser.ref.out 2> 197.parser.ref.err']
+    ref_cmp_cmds = ['diff 197.parser.ref.out ref.out --strip-trailing-cr > 197.parser.ref.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2000_197_parser
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2000/int/252.eon/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2000/int/252.eon/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2000/int/252.eon/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2000/int/252.eon/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2000_252_eon(spec.TestModule):
+    year = '2000'
+    category = 'int'
+    benchmark = '252.eon'
+
+    train_input_set = ['train/input/chair.camera', 'train/input/chair.control.cook', 'train/input/chair.control.kajiya', 'train/input/chair.control.rushmeier', 'train/input/chair.surfaces', 'train/input/eon.dat', 'train/input/materials', 'train/input/spectra.dat']
+    train_output_set = ['train/output/pixels_out.cook', 'train/output/pixels_out.kajiya', 'train/output/pixels_out.rushmeier']
+    train_args = 'chair.control.cook chair.camera chair.surfaces chair.cook.ppm ppm pixels_out.cook > 252.eon.cook.out 2> 252.eon.cook.err', 'chair.control.kajiya chair.camera chair.surfaces chair.kajiya.ppm ppm pixels_out.kajiya > 252.eon.kajiya.out 2> 252.eon.kajiya.err', 'chair.control.rushmeier chair.camera chair.surfaces chair.rushmeier.ppm ppm pixels_out.rushmeier > 252.eon.rushmeier.out 2> 252.eon.rushmeier.err'
+    train_cmp_cmd = 'fpcmp -a 0.005 pixels_out.cook pixels_out.cook > 252.eon.cook.cmp', 'fpcmp -a 0.005 pixels_out.kajiya pixels_out.kajiya > 252.eon.kajiya.cmp', 'fpcmp -a 0.005 pixels_out.rushmeier pixels_out.rushmeier > 252.eon.rushmeier.cmp'
+    ref_input_set = ['ref/input/chair.camera', 'ref/input/chair.control.cook', 'ref/input/chair.control.kajiya', 'ref/input/chair.control.rushmeier', 'ref/input/chair.surfaces', 'ref/input/eon.dat', 'ref/input/materials', 'ref/input/spectra.dat']
+    ref_output_set = ['ref/output/pixels_out.cook', 'ref/output/pixels_out.kajiya', 'ref/output/pixels_out.rushmeier']
+    ref_args = ['chair.control.cook chair.camera chair.surfaces chair.cook.ppm ppm pixels_out.cook > 252.eon.cook.out 2> 252.eon.cook.err', 'chair.control.kajiya chair.camera chair.surfaces chair.kajiya.ppm ppm pixels_out.kajiya > 252.eon.kajiya.out 2> 252.eon.kajiya.err', 'chair.control.rushmeier chair.camera chair.surfaces chair.rushmeier.ppm ppm pixels_out.rushmeier > 252.eon.rushmeier.out 2> 252.eon.rushmeier.err']
+    ref_cmp_cmds = ['fpcmp -a 0.005 pixels_out.cook pixels_out.cook > 252.eon.cook.cmp', 'fpcmp -a 0.005 pixels_out.kajiya pixels_out.kajiya > 252.eon.kajiya.cmp', 'fpcmp -a 0.005 pixels_out.rushmeier pixels_out.rushmeier > 252.eon.rushmeier.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2000_252_eon
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2000/int/253.perlbmk/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2000/int/253.perlbmk/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2000/int/253.perlbmk/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2000/int/253.perlbmk/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2000_253_perlbmk(spec.TestModule):
+    year = '2000'
+    category = 'int'
+    benchmark = '253.perlbmk'
+
+    train_input_set = ['all/input/cpu2000_mhonarc.rc', 'all/input/lib', 'all/input/lenums', 'all/input/benums', 'train/input/dictionary', 'all/input/diffmail.pl', 'all/input/perfect.pl', 'train/input/scrabbl.pl', 'train/input/scrabbl.in']
+    train_output_set = ['train/output/2.350.15.24.23.150.out', 'train/output/b.3.out', 'train/output/scrabbl.out']
+    train_args = '-Ilib diffmail.pl 2 350 15 24 23 150 > 253.perlbmk.diffmail.out 2> 253.perlbmk.diffmail.err', '-Ilib perfect.pl b 3 > 253.perlbmk.perfect.out 2> 253.perlbmk.perfect.err', '-Ilib scrabbl.pl < scrabbl.in > 253.perlbmk.scrabbl.out 2> 253.perlbmk.scrabbl.err'
+    train_cmp_cmd = 'diff 253.perlbmk.diffmail.out 2.350.15.24.23.150.out --strip-trailing-cr > 253.perlbmk.diffmail.cmp', 'diff 253.perlbmk.perfect.out b.3.out --strip-trailing-cr > 253.perlbmk.perfect.cmp', 'diff 253.perlbmk.scrabbl.out scrabbl.out --strip-trailing-cr > 253.perlbmk.scrabbl.cmp'
+    ref_input_set = ['all/input/cpu2000_mhonarc.rc', 'all/input/lib', 'all/input/lenums', 'all/input/benums', 'all/input/diffmail.pl', 'ref/input/makerand.pl', 'all/input/perfect.pl', 'ref/input/splitmail.pl']
+    ref_output_set = ['ref/output/2.550.15.24.23.100.out', 'ref/output/makerand.out', 'ref/output/b.3.m.4.out', 'ref/output/850.5.19.18.1500.out', 'ref/output/704.12.26.16.836.out', 'ref/output/535.13.25.24.1091.out', 'ref/output/957.12.23.26.1014.out']
+    ref_args = ['-Ilib diffmail.pl 2 550 15 24 23 100 > 253.perlbmk.diffmail.out 2> 253.perlbmk.diffmail.err', '-Ilib makerand.pl > 253.perlbmk.makerand.out 2> 253.perlbmk.makerand.err', '-Ilib perfect.pl b 3 m 4 > 253.perlbmk.perfect.out 2> 253.perlbmk.perfect.err', '-Ilib splitmail.pl 850 5 19 18 1500 > 253.perlbmk.splitmail1.out 2> 253.perlbmk.splitmail1.err', '-Ilib splitmail.pl 704 12 26 16 836 > 253.perlbmk.splitmail2.out 2> 253.perlbmk.splitmail2.err', '-Ilib splitmail.pl 535 13 25 24 1091 > 253.perlbmk.splitmail3.out 2> 253.perlbmk.splitmail3.err', '-Ilib splitmail.pl 957 12 23 26 1014 > 253.perlbmk.splitmail4.out 2> 253.perlbmk.splitmail4.err']
+    ref_cmp_cmds = ['diff 253.perlbmk.diffmail.out 2.550.15.24.23.100.out --strip-trailing-cr > 253.perlbmk.diffmail.cmp', 'diff 253.perlbmk.makerand.out makerand.out --strip-trailing-cr > 253.perlbmk.makerand.cmp', 'diff 253.perlbmk.perfect.out b.3.m.4.out --strip-trailing-cr > 253.perlbmk.perfect.cmp', 'diff 253.perlbmk.splitmail1.out 850.5.19.18.1500.out --strip-trailing-cr > 253.perlbmk.splitmail1.cmp', 'diff 253.perlbmk.splitmail2.out 704.12.26.16.836.out --strip-trailing-cr > 253.perlbmk.splitmail2.cmp', 'diff 253.perlbmk.splitmail3.out 535.13.25.24.1091.out --strip-trailing-cr > 253.perlbmk.splitmail3.cmp', 'diff 253.perlbmk.splitmail4.out 957.12.23.26.1014.out --strip-trailing-cr > 253.perlbmk.splitmail4.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2000_253_perlbmk
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2000/int/254.gap/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2000/int/254.gap/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2000/int/254.gap/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2000/int/254.gap/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2000_254_gap(spec.TestModule):
+    year = '2000'
+    category = 'int'
+    benchmark = '254.gap'
+
+    train_input_set = ['all/input/abattoir.g', 'all/input/agcoset.g', 'all/input/aghomomo.g', 'all/input/agsubgrp.g', 'all/input/algfld.g', 'all/input/basic.grp', 'all/input/combinat.g', 'all/input/ctfilter.g', 'all/input/ctmapcon.g', 'all/input/ctsymmet.g', 'all/input/field.g', 'all/input/fptietze.g', 'all/input/grpcoset.g', 'all/input/grplatt.g', 'all/input/lattperf.g', 'all/input/matgrp.grp', 'all/input/monomial.g', 'all/input/onecohom.g', 'all/input/permcose.g', 'all/input/permhomo.g', 'all/input/permstbc.g', 'all/input/polynom.g', 'all/input/ratclass.g', 'all/input/rowspace.g', 'all/input/sqstuff.g', 'all/input/agcent.g', 'all/input/agctbl.g', 'all/input/aginters.g', 'all/input/agwords.g', 'all/input/algfp.g', 'all/input/cdaggrp.g', 'all/input/ctautoms.g', 'all/input/ctgapmoc.g', 'all/input/ctmapusi.g', 'all/input/cyclotom.g', 'all/input/finfield.g', 'all/input/galois.g', 'all/input/grpctbl.g', 'all/input/grpprods.g', 'all/input/list.g', 'all/input/matring.g', 'all/input/morphe
 us.g', 'all/input/operatio.g', 'all/input/permcser.g', 'all/input/permnorm.g', 'all/input/permutat.g', 'all/input/polyrat.g', 'all/input/rational.g', 'all/input/saggroup.g', 'all/input/string.g', 'all/input/agclass.g', 'all/input/aggroup.g', 'all/input/agnorm.g', 'all/input/algebra.g', 'all/input/alghomom.g', 'all/input/chartabl.g', 'all/input/ctbasic.g', 'all/input/ctgeneri.g', 'all/input/ctpermch.g', 'all/input/dispatch.g', 'all/input/fpgrp.g', 'all/input/gaussian.g', 'all/input/grpelms.g', 'all/input/init.g', 'all/input/mapping.g', 'all/input/matrix.g', 'all/input/numfield.g', 'all/input/permag.g', 'all/input/permctbl.g', 'all/input/permoper.g', 'all/input/polyfin.g', 'all/input/polystff.g', 'all/input/ring.g', 'all/input/sagsbgrp.g', 'all/input/tom.g', 'all/input/agcomple.g', 'all/input/aghall.g', 'all/input/agprops.g', 'all/input/algfac.g', 'all/input/algmat.g', 'all/input/classfun.g', 'all/input/ctcharac.g', 'all/input/ctlattic.g', 'all/input/ctpgrp.g', 'all/input/domain.g', '
 all/input/fpsgpres.g', 'all/input/group.g', 'all/input/grphomom.g', 'all/input/integer.g', 'all/input/matgrp.g', 'all/input/module.g', 'all/input/numtheor.g', 'all/input/permbckt.g', 'all/input/permgrp.g', 'all/input/permprod.g', 'all/input/polyfld.g', 'all/input/pq.g', 'all/input/rowmodul.g', 'all/input/sq.g', 'all/input/vecspace.g', 'train/input/train.in']
+    train_output_set = ['train/output/train.out']
+    train_args = '< train.in -l ./ -q -m 128M > 254.gap.train.out 2> 254.gap.train.err'
+    train_cmp_cmd = 'diff 254.gap.train.out train.out --strip-trailing-cr > 254.gap.train.cmp'
+    ref_input_set = ['all/input/abattoir.g', 'all/input/agcoset.g', 'all/input/aghomomo.g', 'all/input/agsubgrp.g', 'all/input/algfld.g', 'all/input/basic.grp', 'all/input/combinat.g', 'all/input/ctfilter.g', 'all/input/ctmapcon.g', 'all/input/ctsymmet.g', 'all/input/field.g', 'all/input/fptietze.g', 'all/input/grpcoset.g', 'all/input/grplatt.g', 'all/input/lattperf.g', 'all/input/matgrp.grp', 'all/input/monomial.g', 'all/input/onecohom.g', 'all/input/permcose.g', 'all/input/permhomo.g', 'all/input/permstbc.g', 'all/input/polynom.g', 'all/input/ratclass.g', 'all/input/rowspace.g', 'all/input/sqstuff.g', 'all/input/agcent.g', 'all/input/agctbl.g', 'all/input/aginters.g', 'all/input/agwords.g', 'all/input/algfp.g', 'all/input/cdaggrp.g', 'all/input/ctautoms.g', 'all/input/ctgapmoc.g', 'all/input/ctmapusi.g', 'all/input/cyclotom.g', 'all/input/finfield.g', 'all/input/galois.g', 'all/input/grpctbl.g', 'all/input/grpprods.g', 'all/input/list.g', 'all/input/matring.g', 'all/input/morpheus
 .g', 'all/input/operatio.g', 'all/input/permcser.g', 'all/input/permnorm.g', 'all/input/permutat.g', 'all/input/polyrat.g', 'all/input/rational.g', 'all/input/saggroup.g', 'all/input/string.g', 'all/input/agclass.g', 'all/input/aggroup.g', 'all/input/agnorm.g', 'all/input/algebra.g', 'all/input/alghomom.g', 'all/input/chartabl.g', 'all/input/ctbasic.g', 'all/input/ctgeneri.g', 'all/input/ctpermch.g', 'all/input/dispatch.g', 'all/input/fpgrp.g', 'all/input/gaussian.g', 'all/input/grpelms.g', 'all/input/init.g', 'all/input/mapping.g', 'all/input/matrix.g', 'all/input/numfield.g', 'all/input/permag.g', 'all/input/permctbl.g', 'all/input/permoper.g', 'all/input/polyfin.g', 'all/input/polystff.g', 'all/input/ring.g', 'all/input/sagsbgrp.g', 'all/input/tom.g', 'all/input/agcomple.g', 'all/input/aghall.g', 'all/input/agprops.g', 'all/input/algfac.g', 'all/input/algmat.g', 'all/input/classfun.g', 'all/input/ctcharac.g', 'all/input/ctlattic.g', 'all/input/ctpgrp.g', 'all/input/domain.g', 'al
 l/input/fpsgpres.g', 'all/input/group.g', 'all/input/grphomom.g', 'all/input/integer.g', 'all/input/matgrp.g', 'all/input/module.g', 'all/input/numtheor.g', 'all/input/permbckt.g', 'all/input/permgrp.g', 'all/input/permprod.g', 'all/input/polyfld.g', 'all/input/pq.g', 'all/input/rowmodul.g', 'all/input/sq.g', 'all/input/vecspace.g', 'ref/input/ref.in']
+    ref_output_set = ['ref/output/ref.out']
+    ref_args = ['< ref.in -l ./ -q -m 192M > 254.gap.ref.out 2> 254.gap.ref.err']
+    ref_cmp_cmds = ['diff 254.gap.ref.out ref.out --strip-trailing-cr > 254.gap.ref.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2000_254_gap
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2000/int/255.vortex/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2000/int/255.vortex/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2000/int/255.vortex/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2000/int/255.vortex/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import os, shutil
+import spec
+
+class SPEC2000_255_vortex(spec.TestModule):
+    year = '2000'
+    category = 'int'
+    benchmark = '255.vortex'
+
+    train_input_set = ['train/input/lendian.rnv', 'train/input/lendian.wnv', 'train/input/persons.250', 'train/input/lendian.raw']
+    train_output_set = ['train/output/vortex.out']
+    train_args = 'lendian.raw > 255.vortex.lendian.out 2> 255.vortex.lendian.err'
+    train_cmp_cmd = 'diff vortex.out-expected vortex.out > 255.vortex.lendian.cmp'
+    ref_input_set = ['ref/input/lendian.rnv', 'ref/input/lendian.wnv', 'ref/input/persons.1k', 'ref/input/lendian1.raw', 'ref/input/lendian2.raw', 'ref/input/lendian3.raw']
+    ref_output_set = ['ref/output/vortex1.out', 'ref/output/vortex2.out', 'ref/output/vortex3.out']
+    ref_args = ['lendian1.raw > 255.vortex.lendian1.out 2> 255.vortex.lendian1.err', 'lendian2.raw > 255.vortex.lendian2.out 2> 255.vortex.lendian2.err', 'lendian3.raw > 255.vortex.lendian3.out 2> 255.vortex.lendian3.err']
+    ref_cmp_cmds = ['diff vortex1.out.expected vortex1.out > 255.vortex.lendian1.cmp',
+                    'diff vortex2.out.expected vortex2.out > 255.vortex.lendian2.cmp',
+                    'diff vortex3.out.expected vortex3.out > 255.vortex.lendian3.cmp']
+
+    # We need to rename the files for the expected output because the test
+    # generate its output under the same names.
+    def copy_output_set(self, dest_dir, size):
+        if size == 'train':
+            output_set = self.train_output_set
+        else:
+            output_set = self.ref_output_set
+
+        for f in output_set:
+            filename = os.path.basename(f) + '.expected'
+            shutil.copy(os.path.join(self.datadir, f), os.path.join(dest_dir, filename))
+
+# This is the only required entry point to the module.
+test_class = SPEC2000_255_vortex
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2000/int/256.bzip2/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2000/int/256.bzip2/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2000/int/256.bzip2/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2000/int/256.bzip2/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2000_256_bzip2(spec.TestModule):
+    year = '2000'
+    category = 'int'
+    benchmark = '256.bzip2'
+
+    train_input_set = ['train/input/input.compressed']
+    train_output_set = ['train/output/input.compressed.out']
+    train_args = 'input.compressed 8 > 256.bzip2.compressed.out 2> 256.bzip2.compressed.err'
+    train_cmp_cmd = 'diff 256.bzip2.compressed.out input.compressed.out --strip-trailing-cr > 256.bzip2.compressed.cmp'
+    ref_input_set = ['ref/input/input.graphic', 'ref/input/input.program', 'ref/input/input.source']
+    ref_output_set = ['ref/output/input.graphic.out', 'ref/output/input.program.out', 'ref/output/input.source.out']
+    ref_args = ['input.graphic 58 > 256.bzip2.graphic.out 2> 256.bzip2.graphic.err', 'input.program 58 > 256.bzip2.program.out 2> 256.bzip2.program.err', 'input.source 58 > 256.bzip2.source.out 2> 256.bzip2.source.err']
+    ref_cmp_cmds = ['diff 256.bzip2.graphic.out input.graphic.out --strip-trailing-cr > 256.bzip2.graphic.cmp', 'diff 256.bzip2.program.out input.program.out --strip-trailing-cr > 256.bzip2.program.cmp', 'diff 256.bzip2.source.out input.source.out --strip-trailing-cr > 256.bzip2.source.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2000_256_bzip2
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2000/int/300.twolf/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2000/int/300.twolf/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2000/int/300.twolf/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2000/int/300.twolf/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2000_300_twolf(spec.TestModule):
+    year = '2000'
+    category = 'int'
+    benchmark = '300.twolf'
+
+    train_input_set = ['train/input/train.blk', 'train/input/train.cel', 'train/input/train.par', 'train/input/train.net']
+    train_output_set = ['train/output/train.stdout']
+    train_args = 'train > 300.twolf.train.out 2> 300.twolf.train.err'
+    train_cmp_cmd = 'diff 300.twolf.train.out train.stdout --strip-trailing-cr > 300.twolf.train.cmp'
+    ref_input_set = ['ref/input/ref.blk', 'ref/input/ref.cel', 'ref/input/ref.par', 'ref/input/ref.net']
+    ref_output_set = ['ref/output/ref.stdout']
+    ref_args = ['ref > 300.twolf.ref.out 2> 300.twolf.ref.err']
+    ref_cmp_cmds = ['diff 300.twolf.ref.out ref.stdout --strip-trailing-cr > 300.twolf.ref.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2000_300_twolf
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/fp/433.milc/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/fp/433.milc/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/fp/433.milc/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/fp/433.milc/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_433_milc(spec.TestModule):
+    year = '2006'
+    category = 'fp'
+    benchmark = '433.milc'
+
+    train_input_set = ['train/input/su3imp.in']
+    train_output_set = ['train/output/su3imp.out']
+    train_args = '< su3imp.in > 433.milc.su3imp.out 2> 433.milc.su3imp.err'
+    train_cmp_cmd = 'diff 433.milc.su3imp.out su3imp.out --strip-trailing-cr > 433.milc.su3imp.cmp'
+    ref_input_set = ['ref/input/su3imp.in']
+    ref_output_set = ['ref/output/su3imp.out']
+    ref_args = ['< su3imp.in > 433.milc.su3imp.out 2> 433.milc.su3imp.err']
+    ref_cmp_cmds = ['diff 433.milc.su3imp.out su3imp.out --strip-trailing-cr > 433.milc.su3imp.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_433_milc
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/fp/444.namd/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/fp/444.namd/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/fp/444.namd/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/fp/444.namd/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_444_namd(spec.TestModule):
+    year = '2006'
+    category = 'fp'
+    benchmark = '444.namd'
+
+    train_input_set = ['all/input/namd.input']
+    train_output_set = ['train/output/namd.out']
+    train_args = '--input namd.input --iterations 1 --output namd.out > 444.namd.namd.out 2> 444.namd.namd.err'
+    train_cmp_cmd = '/Users/anemet/proj/theimpossibleinlnt/specs-cmake-build/fpcmp -a 0.00001 namd.out namd.out > 444.namd.namd.cmp'
+    ref_input_set = ['all/input/namd.input']
+    ref_output_set = ['ref/output/namd.out']
+    ref_args = ['--input namd.input --iterations 38 --output namd.out > 444.namd.namd.out 2> 444.namd.namd.err']
+    ref_cmp_cmds = ['/Users/anemet/proj/theimpossibleinlnt/specs-cmake-build/fpcmp -a 0.00001 namd.out namd.out > 444.namd.namd.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_444_namd
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/fp/447.dealII/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/fp/447.dealII/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/fp/447.dealII/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/fp/447.dealII/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_447_dealII(spec.TestModule):
+    year = '2006'
+    category = 'fp'
+    benchmark = '447.dealII'
+
+    train_input_set = []
+    train_output_set = ['train/output/log']
+    train_args = '10 > 447.dealII.10.out 2> 447.dealII.10.err'
+    train_cmp_cmd = 'diff 447.dealII.10.out log --strip-trailing-cr > 447.dealII.10.cmp'
+    ref_input_set = []
+    ref_output_set = ['ref/output/log']
+    ref_args = ['23 > 447.dealII.23.out 2> 447.dealII.23.err']
+    ref_cmp_cmds = ['diff 447.dealII.23.out log --strip-trailing-cr > 447.dealII.23.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_447_dealII
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/fp/450.soplex/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/fp/450.soplex/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/fp/450.soplex/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/fp/450.soplex/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_450_soplex(spec.TestModule):
+    year = '2006'
+    category = 'fp'
+    benchmark = '450.soplex'
+
+    train_input_set = ['train/input/train.mps', 'train/input/pds-20.mps']
+    train_output_set = ['train/output/pds-20.mps.out', 'train/output/train.out']
+    train_args = '-s1 -e -m5000 pds-20.mps > 450.soplex.pds-20.out 2> 450.soplex.pds-20.err', '-m1200 train.mps > 450.soplex.train.out 2> 450.soplex.train.err'
+    train_cmp_cmd = 'diff 450.soplex.pds-20.out pds-20.mps.out --strip-trailing-cr > 450.soplex.pds-20.cmp', 'diff 450.soplex.train.out train.out --strip-trailing-cr > 450.soplex.train.cmp'
+    ref_input_set = ['ref/input/ref.mps', 'ref/input/pds-50.mps']
+    ref_output_set = ['ref/output/pds-50.mps.out', 'ref/output/ref.out']
+    ref_args = ['-s1 -e -m45000 pds-50.mps > 450.soplex.pds-50.out 2> 450.soplex.pds-50.err', '-m3500 ref.mps > 450.soplex.ref.out 2> 450.soplex.ref.err']
+    ref_cmp_cmds = ['diff 450.soplex.pds-50.out pds-50.mps.out --strip-trailing-cr > 450.soplex.pds-50.cmp', 'diff 450.soplex.ref.out ref.out --strip-trailing-cr > 450.soplex.ref.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_450_soplex
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/fp/453.povray/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/fp/453.povray/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/fp/453.povray/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/fp/453.povray/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_453_povray(spec.TestModule):
+    year = '2006'
+    category = 'fp'
+    benchmark = '453.povray'
+
+    train_input_set = ['train/input/SPEC-benchmark-train.pov', 'all/input/arrays.inc', 'all/input/consts.inc', 'all/input/debug.inc', 'all/input/glass.inc', 'all/input/logo.inc', 'all/input/povlogo.ttf', 'all/input/screen.inc', 'all/input/shapes_old.inc', 'all/input/stage1.inc', 'all/input/stdinc.inc', 'all/input/stones1.inc', 'all/input/sunpos.inc', 'all/input/transforms.inc', 'all/input/chars.inc', 'all/input/crystal.ttf', 'all/input/finish.inc', 'all/input/glass_old.inc', 'all/input/math.inc', 'all/input/rad_def.inc', 'all/input/shapes.inc', 'all/input/shapesq.inc', 'all/input/stars.inc', 'all/input/stoneold.inc', 'all/input/stones2.inc', 'all/input/textures.inc', 'all/input/woodmaps.inc', 'all/input/colors.inc', 'all/input/cyrvetic.ttf', 'all/input/functions.inc', 'all/input/golds.inc', 'all/input/metals.inc', 'all/input/rand.inc', 'all/input/shapes2.inc', 'all/input/skies.inc', 'all/input/stdcam.inc', 'all/input/stones.inc', 'all/input/strings.inc', 'all/input/timrom.ttf', 'all
 /input/woods.inc', 'train/input/SPEC-benchmark-train.ini']
+    train_output_set = ['train/output/SPEC-benchmark.log']
+    train_args = 'SPEC-benchmark-train.ini > 453.povray.train.out 2> 453.povray.train.err'
+    train_cmp_cmd = 'diff SPEC-benchmark.log SPEC-benchmark.log > 453.povray.train.cmp'
+    ref_input_set = ['ref/input/SPEC-benchmark-ref.pov', 'all/input/arrays.inc', 'all/input/consts.inc', 'all/input/debug.inc', 'all/input/glass.inc', 'all/input/logo.inc', 'all/input/povlogo.ttf', 'all/input/screen.inc', 'all/input/shapes_old.inc', 'all/input/stage1.inc', 'all/input/stdinc.inc', 'all/input/stones1.inc', 'all/input/sunpos.inc', 'all/input/transforms.inc', 'all/input/chars.inc', 'all/input/crystal.ttf', 'all/input/finish.inc', 'all/input/glass_old.inc', 'all/input/math.inc', 'all/input/rad_def.inc', 'all/input/shapes.inc', 'all/input/shapesq.inc', 'all/input/stars.inc', 'all/input/stoneold.inc', 'all/input/stones2.inc', 'all/input/textures.inc', 'all/input/woodmaps.inc', 'all/input/colors.inc', 'all/input/cyrvetic.ttf', 'all/input/functions.inc', 'all/input/golds.inc', 'all/input/metals.inc', 'all/input/rand.inc', 'all/input/shapes2.inc', 'all/input/skies.inc', 'all/input/stdcam.inc', 'all/input/stones.inc', 'all/input/strings.inc', 'all/input/timrom.ttf', 'all/input
 /woods.inc', 'ref/input/SPEC-benchmark-ref.ini']
+    ref_output_set = ['ref/output/SPEC-benchmark.log']
+    ref_args = ['SPEC-benchmark-ref.ini > 453.povray.ref.out 2> 453.povray.ref.err']
+    ref_cmp_cmds = ['diff SPEC-benchmark.log SPEC-benchmark.log > 453.povray.ref.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_453_povray
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/fp/470.lbm/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/fp/470.lbm/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/fp/470.lbm/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/fp/470.lbm/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_470_lbm(spec.TestModule):
+    year = '2006'
+    category = 'fp'
+    benchmark = '470.lbm'
+
+    train_input_set = ['train/input/100_100_130_cf_b.of']
+    train_output_set = ['train/output/lbm.out']
+    train_args = '300 reference.dat 0 1 100_100_130_cf_b.of > 470.lbm.train.out 2> 470.lbm.train.err'
+    train_cmp_cmd = 'diff 470.lbm.train.out lbm.out --strip-trailing-cr > 470.lbm.train.cmp'
+    ref_input_set = ['ref/input/100_100_130_ldc.of']
+    ref_output_set = ['ref/output/lbm.out']
+    ref_args = ['3000 reference.dat 0 0 100_100_130_ldc.of > 470.lbm.ref.out 2> 470.lbm.ref.err']
+    ref_cmp_cmds = ['diff 470.lbm.ref.out lbm.out --strip-trailing-cr > 470.lbm.ref.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_470_lbm
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import os, shutil
+import spec
+
+class SPEC2006_482_sphinx3(spec.TestModule):
+    year = '2006'
+    category = 'fp'
+    benchmark = '482.sphinx3'
+
+    train_input_set = ['all/input/model', 'train/input/beams.dat', 'train/input/an406-fcaw-b.le.raw', 'train/input/an407-fcaw-b.le.raw', 'train/input/an408-fcaw-b.le.raw', 'train/input/an409-fcaw-b.le.raw', 'train/input/an410-fcaw-b.le.raw', 'train/input/args.an4']
+    train_output_set = ['train/output/an4.log']
+    train_args = 'ctlfile . args.an4 > 482.sphinx3.an4.out 2> 482.sphinx3.an4.err'
+    train_cmp_cmd = 'sed -i bak "s/\\.le//g" 482.sphinx3.an4.out ; sed -i bak "s,[^ ]*/\\([^/]*\\.c\\),\\1," 482.sphinx3.an4.out; diff 482.sphinx3.an4.out an4.log > 482.sphinx3.an4.cmp'
+    ref_input_set = ['all/input/model', 'ref/input/beams.dat', 'ref/input/an391-mjwl-b.le.raw', 'ref/input/an400-miry-b.le.raw', 'ref/input/an419-fjlp-b.le.raw', 'ref/input/an428-fvap-b.le.raw', 'ref/input/an437-mjgm-b.le.raw', 'ref/input/cen1-fjlp-b.le.raw', 'ref/input/cen2-fjlp-b.le.raw', 'ref/input/cen3-fjlp-b.le.raw', 'ref/input/cen4-fjlp-b.le.raw', 'ref/input/cen5-fjlp-b.le.raw', 'ref/input/cen6-fjlp-b.le.raw', 'ref/input/cen7-fjlp-b.le.raw', 'ref/input/cen8-fjlp-b.le.raw', 'ref/input/an392-mjwl-b.le.raw', 'ref/input/an401-mdms2-b.le.raw', 'ref/input/an420-fjlp-b.le.raw', 'ref/input/an429-fvap-b.le.raw', 'ref/input/an438-mjgm-b.le.raw', 'ref/input/cen1-fvap-b.le.raw', 'ref/input/cen2-fvap-b.le.raw', 'ref/input/cen3-fvap-b.le.raw', 'ref/input/cen4-fvap-b.le.raw', 'ref/input/cen5-fvap-b.le.raw', 'ref/input/cen6-fvap-b.le.raw', 'ref/input/cen7-fvap-b.le.raw', 'ref/input/cen8-fvap-b.le.raw', 'ref/input/an393-mjwl-b.le.raw', 'ref/input/an402-mdms2-b.le.raw', 'ref/input/an421-menk-b.
 le.raw', 'ref/input/an430-fvap-b.le.raw', 'ref/input/an439-mjgm-b.le.raw', 'ref/input/cen1-marh-b.le.raw', 'ref/input/cen2-marh-b.le.raw', 'ref/input/cen3-marh-b.le.raw', 'ref/input/cen4-marh-b.le.raw', 'ref/input/cen5-marh-b.le.raw', 'ref/input/cen6-marh-b.le.raw', 'ref/input/cen7-marh-b.le.raw', 'ref/input/cen8-marh-b.le.raw', 'ref/input/an394-mjwl-b.le.raw', 'ref/input/an403-mdms2-b.le.raw', 'ref/input/an422-menk-b.le.raw', 'ref/input/an431-marh-b.le.raw', 'ref/input/an440-mjgm-b.le.raw', 'ref/input/cen1-mdms2-b.le.raw', 'ref/input/cen2-mdms2-b.le.raw', 'ref/input/cen3-mdms2-b.le.raw', 'ref/input/cen4-mdms2-b.le.raw', 'ref/input/cen5-mdms2-b.le.raw', 'ref/input/cen6-mdms2-b.le.raw', 'ref/input/cen7-mdms2-b.le.raw', 'ref/input/cen8-mdms2-b.le.raw', 'ref/input/an395-mjwl-b.le.raw', 'ref/input/an404-mdms2-b.le.raw', 'ref/input/an423-menk-b.le.raw', 'ref/input/an432-marh-b.le.raw', 'ref/input/an441-mmxg-b.le.raw', 'ref/input/cen1-menk-b.le.raw', 'ref/input/cen2-menk-b.le.raw', 'ref/i
 nput/cen3-menk-b.le.raw', 'ref/input/cen4-menk-b.le.raw', 'ref/input/cen5-menk-b.le.raw', 'ref/input/cen6-menk-b.le.raw', 'ref/input/cen7-menk-b.le.raw', 'ref/input/cen8-menk-b.le.raw', 'ref/input/an396-miry-b.le.raw', 'ref/input/an405-mdms2-b.le.raw', 'ref/input/an424-menk-b.le.raw', 'ref/input/an433-marh-b.le.raw', 'ref/input/an442-mmxg-b.le.raw', 'ref/input/cen1-miry-b.le.raw', 'ref/input/cen2-miry-b.le.raw', 'ref/input/cen3-miry-b.le.raw', 'ref/input/cen4-miry-b.le.raw', 'ref/input/cen5-miry-b.le.raw', 'ref/input/cen6-miry-b.le.raw', 'ref/input/cen7-miry-b.le.raw', 'ref/input/cen8-miry-b.le.raw', 'ref/input/an397-miry-b.le.raw', 'ref/input/an416-fjlp-b.le.raw', 'ref/input/an425-menk-b.le.raw', 'ref/input/an434-marh-b.le.raw', 'ref/input/an443-mmxg-b.le.raw', 'ref/input/cen1-mjgm-b.le.raw', 'ref/input/cen2-mjgm-b.le.raw', 'ref/input/cen3-mjgm-b.le.raw', 'ref/input/cen4-mjgm-b.le.raw', 'ref/input/cen5-mjgm-b.le.raw', 'ref/input/cen6-mjgm-b.le.raw', 'ref/input/cen7-mjgm-b.le.raw', 
 'ref/input/cen8-mjgm-b.le.raw', 'ref/input/an398-miry-b.le.raw', 'ref/input/an417-fjlp-b.le.raw', 'ref/input/an426-fvap-b.le.raw', 'ref/input/an435-marh-b.le.raw', 'ref/input/an444-mmxg-b.le.raw', 'ref/input/cen1-mjwl-b.le.raw', 'ref/input/cen2-mjwl-b.le.raw', 'ref/input/cen3-mjwl-b.le.raw', 'ref/input/cen4-mjwl-b.le.raw', 'ref/input/cen5-mjwl-b.le.raw', 'ref/input/cen6-mjwl-b.le.raw', 'ref/input/cen7-mjwl-b.le.raw', 'ref/input/cen8-mjwl-b.le.raw', 'ref/input/an399-miry-b.le.raw', 'ref/input/an418-fjlp-b.le.raw', 'ref/input/an427-fvap-b.le.raw', 'ref/input/an436-mjgm-b.le.raw', 'ref/input/an445-mmxg-b.le.raw', 'ref/input/cen1-mmxg-b.le.raw', 'ref/input/cen2-mmxg-b.le.raw', 'ref/input/cen3-mmxg-b.le.raw', 'ref/input/cen4-mmxg-b.le.raw', 'ref/input/cen5-mmxg-b.le.raw', 'ref/input/cen6-mmxg-b.le.raw', 'ref/input/cen7-mmxg-b.le.raw', 'ref/input/cen8-mmxg-b.le.raw', 'ref/input/args.an4']
+    ref_output_set = ['ref/output/an4.log']
+    ref_args = ['ctlfile . args.an4 > 482.sphinx3.an4.out 2> 482.sphinx3.an4.err']
+    ref_cmp_cmds = ['sed -i bak "s/\\.le//g" 482.sphinx3.an4.out ; sed -i bak "s,[^ ]*/\\([^/]*\\.c\\),\\1," 482.sphinx3.an4.out; diff 482.sphinx3.an4.out an4.log > 482.sphinx3.an4.cmp']
+
+    def copy_input_set(self, dest_dir, size):
+        spec.TestModule.copy_input_set(self, dest_dir, size)
+        # FIXME: this currently only supports little endian!
+        shutil.copy(os.path.join(self.SRCROOT, size, 'ctlfile.little-endian'), os.path.join(dest_dir, 'ctlfile'))
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_482_sphinx3
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/ref/ctlfile.little-endian
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/ref/ctlfile.little-endian?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/ref/ctlfile.little-endian (added)
+++ test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/ref/ctlfile.little-endian Tue Nov 17 13:08:18 2015
@@ -0,0 +1,117 @@
+an391-mjwl-b.le 64000
+an392-mjwl-b.le 25600
+an393-mjwl-b.le 80000
+an394-mjwl-b.le 121600
+an395-mjwl-b.le 60800
+an396-miry-b.le 128000
+an397-miry-b.le 89600
+an398-miry-b.le 121600
+an399-miry-b.le 147200
+an400-miry-b.le 44800
+an401-mdms2-b.le 105600
+an402-mdms2-b.le 25600
+an403-mdms2-b.le 124800
+an404-mdms2-b.le 96000
+an405-mdms2-b.le 172800
+an416-fjlp-b.le 25600
+an417-fjlp-b.le 80000
+an418-fjlp-b.le 70400
+an419-fjlp-b.le 76800
+an420-fjlp-b.le 137600
+an421-menk-b.le 48000
+an422-menk-b.le 44800
+an423-menk-b.le 115200
+an424-menk-b.le 128000
+an425-menk-b.le 76800
+an426-fvap-b.le 60800
+an427-fvap-b.le 102400
+an428-fvap-b.le 57600
+an429-fvap-b.le 118400
+an430-fvap-b.le 99200
+an431-marh-b.le 118400
+an432-marh-b.le 67200
+an433-marh-b.le 92800
+an434-marh-b.le 140800
+an435-marh-b.le 57600
+an436-mjgm-b.le 51200
+an437-mjgm-b.le 73600
+an438-mjgm-b.le 86400
+an439-mjgm-b.le 64000
+an440-mjgm-b.le 25600
+an441-mmxg-b.le 112000
+an442-mmxg-b.le 28800
+an443-mmxg-b.le 22400
+an444-mmxg-b.le 134400
+an445-mmxg-b.le 92800
+cen1-fjlp-b.le 89600
+cen1-fvap-b.le 67200
+cen1-marh-b.le 70400
+cen1-mdms2-b.le 140800
+cen1-menk-b.le 99200
+cen1-miry-b.le 99200
+cen1-mjgm-b.le 57600
+cen1-mjwl-b.le 70400
+cen1-mmxg-b.le 99200
+cen2-fjlp-b.le 76800
+cen2-fvap-b.le 73600
+cen2-marh-b.le 48000
+cen2-mdms2-b.le 99200
+cen2-menk-b.le 64000
+cen2-miry-b.le 64000
+cen2-mjgm-b.le 44800
+cen2-mjwl-b.le 70400
+cen2-mmxg-b.le 76800
+cen3-fjlp-b.le 41600
+cen3-fvap-b.le 48000
+cen3-marh-b.le 51200
+cen3-mdms2-b.le 38400
+cen3-menk-b.le 70400
+cen3-miry-b.le 57600
+cen3-mjgm-b.le 44800
+cen3-mjwl-b.le 32000
+cen3-mmxg-b.le 44800
+cen4-fjlp-b.le 73600
+cen4-fvap-b.le 92800
+cen4-marh-b.le 70400
+cen4-mdms2-b.le 192000
+cen4-menk-b.le 124800
+cen4-miry-b.le 124800
+cen4-mjgm-b.le 89600
+cen4-mjwl-b.le 80000
+cen4-mmxg-b.le 153600
+cen5-fjlp-b.le 160000
+cen5-fvap-b.le 99200
+cen5-marh-b.le 112000
+cen5-mdms2-b.le 172800
+cen5-menk-b.le 137600
+cen5-miry-b.le 156800
+cen5-mjgm-b.le 112000
+cen5-mjwl-b.le 96000
+cen5-mmxg-b.le 99200
+cen6-fjlp-b.le 73600
+cen6-fvap-b.le 51200
+cen6-marh-b.le 67200
+cen6-mdms2-b.le 102400
+cen6-menk-b.le 70400
+cen6-miry-b.le 83200
+cen6-mjgm-b.le 73600
+cen6-mjwl-b.le 60800
+cen6-mmxg-b.le 67200
+cen7-fjlp-b.le 105600
+cen7-fvap-b.le 70400
+cen7-marh-b.le 96000
+cen7-mdms2-b.le 185600
+cen7-menk-b.le 92800
+cen7-miry-b.le 112000
+cen7-mjgm-b.le 80000
+cen7-mjwl-b.le 76800
+cen7-mmxg-b.le 124800
+cen8-fjlp-b.le 80000
+cen8-fvap-b.le 70400
+cen8-marh-b.le 76800
+cen8-mdms2-b.le 92800
+cen8-menk-b.le 80000
+cen8-miry-b.le 89600
+cen8-mjgm-b.le 57600
+cen8-mjwl-b.le 73600
+cen8-mmxg-b.le 73600

Added: test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/train/ctlfile.little-endian
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/train/ctlfile.little-endian?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/train/ctlfile.little-endian (added)
+++ test-suite/trunk/LNTBased/speccpu2006/fp/482.sphinx3/train/ctlfile.little-endian Tue Nov 17 13:08:18 2015
@@ -0,0 +1,5 @@
+an406-fcaw-b.le 128000
+an407-fcaw-b.le 131200
+an408-fcaw-b.le 105600
+an409-fcaw-b.le 25600
+an410-fcaw-b.le 115200

Added: test-suite/trunk/LNTBased/speccpu2006/int/400.perlbench/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/int/400.perlbench/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/int/400.perlbench/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/int/400.perlbench/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_400_perlbench(spec.TestModule):
+    year = '2006'
+    category = 'int'
+    benchmark = '400.perlbench'
+
+    train_input_set = ['all/input/cpu2006_mhonarc.rc', 'all/input/lib', 'all/input/rules', 'train/input/scrabbl.in', 'train/input/dictionary', 'all/input/diffmail.pl', 'train/input/perfect.pl', 'train/input/scrabbl.pl', 'all/input/splitmail.pl']
+    train_output_set = ['train/output/diffmail.2.550.15.24.23.100.out', 'train/output/perfect.b.3.out', 'train/output/scrabbl.out', 'train/output/splitmail.535.13.25.24.1091.out']
+    train_args = '-Ilib diffmail.pl 2 550 15 24 23 100 > 400.perlbench.diffmail.out 2> 400.perlbench.diffmail.err', '-Ilib perfect.pl b 3 > 400.perlbench.perfect.out 2> 400.perlbench.perfect.err', '-Ilib scrabbl.pl < scrabbl.in > 400.perlbench.scrabbl.out 2> 400.perlbench.scrabbl.err', '-Ilib splitmail.pl 535 13 25 24 1091 > 400.perlbench.splitmail.out 2> 400.perlbench.splitmail.err'
+    train_cmp_cmd = 'diff 400.perlbench.diffmail.out diffmail.2.550.15.24.23.100.out --strip-trailing-cr > 400.perlbench.diffmail.cmp', 'diff 400.perlbench.perfect.out perfect.b.3.out --strip-trailing-cr > 400.perlbench.perfect.cmp', 'diff 400.perlbench.scrabbl.out scrabbl.out --strip-trailing-cr > 400.perlbench.scrabbl.cmp', 'diff 400.perlbench.splitmail.out splitmail.535.13.25.24.1091.out --strip-trailing-cr > 400.perlbench.splitmail.cmp'
+    ref_input_set = ['all/input/cpu2006_mhonarc.rc', 'all/input/lib', 'all/input/rules', 'ref/input/checkspam.pl', 'all/input/diffmail.pl', 'all/input/splitmail.pl']
+    ref_output_set = ['ref/output/checkspam.2500.5.25.11.150.1.1.1.1.out', 'ref/output/diffmail.4.800.10.17.19.300.out', 'ref/output/splitmail.1600.12.26.16.4500.out']
+    ref_args = ['-Ilib checkspam.pl 2500 5 25 11 150 1 1 1 1 > 400.perlbench.checkspam.out 2> 400.perlbench.checkspam.err', '-Ilib diffmail.pl 4 800 10 17 19 300 > 400.perlbench.diffmail.out 2> 400.perlbench.diffmail.err', '-Ilib splitmail.pl 1600 12 26 16 4500 > 400.perlbench.splitmail.out 2> 400.perlbench.splitmail.err']
+    ref_cmp_cmds = ['diff 400.perlbench.checkspam.out checkspam.2500.5.25.11.150.1.1.1.1.out --strip-trailing-cr > 400.perlbench.checkspam.cmp', 'diff 400.perlbench.diffmail.out diffmail.4.800.10.17.19.300.out --strip-trailing-cr > 400.perlbench.diffmail.cmp', 'diff 400.perlbench.splitmail.out splitmail.1600.12.26.16.4500.out --strip-trailing-cr > 400.perlbench.splitmail.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_400_perlbench
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/int/401.bzip2/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/int/401.bzip2/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/int/401.bzip2/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/int/401.bzip2/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_401_bzip2(spec.TestModule):
+    year = '2006'
+    category = 'int'
+    benchmark = '401.bzip2'
+
+    train_input_set = ['train/input/byoudoin.jpg', 'all/input/input.combined', 'all/input/input.program']
+    train_output_set = ['train/output/byoudoin.jpg.out', 'train/output/input.combined.out', 'train/output/input.program.out']
+    train_args = 'byoudoin.jpg 5 > 401.bzip2.byoudoin.out 2> 401.bzip2.byoudoin.err', 'input.combined 80 > 401.bzip2.combined.out 2> 401.bzip2.combined.err', 'input.program 10 > 401.bzip2.program.out 2> 401.bzip2.program.err'
+    train_cmp_cmd = 'diff 401.bzip2.byoudoin.out byoudoin.jpg.out --strip-trailing-cr > 401.bzip2.byoudoin.cmp', 'diff 401.bzip2.combined.out input.combined.out --strip-trailing-cr > 401.bzip2.combined.cmp', 'diff 401.bzip2.program.out input.program.out --strip-trailing-cr > 401.bzip2.program.cmp'
+    ref_input_set = ['ref/input/chicken.jpg', 'all/input/input.combined', 'ref/input/text.html', 'ref/input/liberty.jpg', 'all/input/input.program', 'ref/input/input.source']
+    ref_output_set = ['ref/output/chicken.jpg.out', 'ref/output/input.combined.out', 'ref/output/text.html.out', 'ref/output/liberty.jpg.out', 'ref/output/input.program.out', 'ref/output/input.source.out']
+    ref_args = ['chicken.jpg 30 > 401.bzip2.chicken.out 2> 401.bzip2.chicken.err', 'input.combined 200 > 401.bzip2.combined.out 2> 401.bzip2.combined.err', 'text.html 280 > 401.bzip2.html.out 2> 401.bzip2.html.err', 'liberty.jpg 30 > 401.bzip2.liberty.out 2> 401.bzip2.liberty.err', 'input.program 280 > 401.bzip2.program.out 2> 401.bzip2.program.err', 'input.source 280 > 401.bzip2.source.out 2> 401.bzip2.source.err']
+    ref_cmp_cmds = ['diff 401.bzip2.chicken.out chicken.jpg.out --strip-trailing-cr > 401.bzip2.chicken.cmp', 'diff 401.bzip2.combined.out input.combined.out --strip-trailing-cr > 401.bzip2.combined.cmp', 'diff 401.bzip2.html.out text.html.out --strip-trailing-cr > 401.bzip2.html.cmp', 'diff 401.bzip2.liberty.out liberty.jpg.out --strip-trailing-cr > 401.bzip2.liberty.cmp', 'diff 401.bzip2.program.out input.program.out --strip-trailing-cr > 401.bzip2.program.cmp', 'diff 401.bzip2.source.out input.source.out --strip-trailing-cr > 401.bzip2.source.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_401_bzip2
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/int/403.gcc/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/int/403.gcc/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/int/403.gcc/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/int/403.gcc/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_403_gcc(spec.TestModule):
+    year = '2006'
+    category = 'int'
+    benchmark = '403.gcc'
+
+    train_input_set = ['train/input/integrate.i']
+    train_output_set = []
+    train_args = 'integrate.i -o - > 403.gcc.integrate.out 2> 403.gcc.integrate.err'
+    train_cmp_cmd = ''
+    ref_input_set = ['ref/input/166.i', 'ref/input/200.i', 'ref/input/c-typeck.i', 'ref/input/cp-decl.i', 'ref/input/expr.i', 'ref/input/expr2.i', 'ref/input/scilab.i']
+    ref_output_set = []
+    ref_args = ['166.i -o - > 403.gcc.166.out 2> 403.gcc.166.err', '200.i -o - > 403.gcc.200.out 2> 403.gcc.200.err', 'c-typeck.i -o - > 403.gcc.c-typeck.out 2> 403.gcc.c-typeck.err', 'cp-decl.i -o - > 403.gcc.cp-decl.out 2> 403.gcc.cp-decl.err', 'expr.i -o - > 403.gcc.expr.out 2> 403.gcc.expr.err', 'expr2.i -o - > 403.gcc.expr2.out 2> 403.gcc.expr2.err', 'scilab.i -o - > 403.gcc.scilab.out 2> 403.gcc.scilab.err']
+    ref_cmp_cmds = []
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_403_gcc
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/int/429.mcf/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/int/429.mcf/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/int/429.mcf/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/int/429.mcf/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_429_mcf(spec.TestModule):
+    year = '2006'
+    category = 'int'
+    benchmark = '429.mcf'
+
+    train_input_set = ['train/input/inp.in']
+    train_output_set = ['train/output/inp.out']
+    train_args = 'inp.in > 429.mcf.inp.out 2> 429.mcf.inp.err'
+    train_cmp_cmd = 'diff 429.mcf.inp.out inp.out --strip-trailing-cr > 429.mcf.inp.cmp'
+    ref_input_set = ['ref/input/inp.in']
+    ref_output_set = []
+    ref_args = ['inp.in > 429.mcf.inp.out 2> 429.mcf.inp.err']
+    ref_cmp_cmds = []
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_429_mcf
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/int/445.gobmk/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/int/445.gobmk/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/int/445.gobmk/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/int/445.gobmk/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_445_gobmk(spec.TestModule):
+    year = '2006'
+    category = 'int'
+    benchmark = '445.gobmk'
+
+    train_input_set = ['all/input/games', 'all/input/golois', 'train/input/arb.tst', 'train/input/arend.tst', 'train/input/arion.tst', 'train/input/atari_atari.tst', 'train/input/blunder.tst', 'train/input/buzco.tst', 'train/input/nicklas2.tst', 'train/input/nicklas4.tst']
+    train_output_set = ['train/output/arb.out', 'train/output/arend.out', 'train/output/arion.out', 'train/output/atari_atari.out', 'train/output/blunder.out', 'train/output/buzco.out', 'train/output/nicklas2.out', 'train/output/nicklas4.out']
+    train_args = '--quiet --mode gtp < arb.tst > 445.gobmk.arb.out 2> 445.gobmk.arb.err', '--quiet --mode gtp < arend.tst > 445.gobmk.arend.out 2> 445.gobmk.arend.err', '--quiet --mode gtp < arion.tst > 445.gobmk.arion.out 2> 445.gobmk.arion.err', '--quiet --mode gtp < atari_atari.tst > 445.gobmk.atari_atari.out 2> 445.gobmk.atari_atari.err', '--quiet --mode gtp < blunder.tst > 445.gobmk.blunder.out 2> 445.gobmk.blunder.err', '--quiet --mode gtp < buzco.tst > 445.gobmk.buzco.out 2> 445.gobmk.buzco.err', '--quiet --mode gtp < nicklas2.tst > 445.gobmk.nicklas2.out 2> 445.gobmk.nicklas2.err', '--quiet --mode gtp < nicklas4.tst > 445.gobmk.nicklas4.out 2> 445.gobmk.nicklas4.err'
+    train_cmp_cmd = 'diff 445.gobmk.arb.out arb.out --strip-trailing-cr > 445.gobmk.arb.cmp', 'diff 445.gobmk.arend.out arend.out --strip-trailing-cr > 445.gobmk.arend.cmp', 'diff 445.gobmk.arion.out arion.out --strip-trailing-cr > 445.gobmk.arion.cmp', 'diff 445.gobmk.atari_atari.out atari_atari.out --strip-trailing-cr > 445.gobmk.atari_atari.cmp', 'diff 445.gobmk.blunder.out blunder.out --strip-trailing-cr > 445.gobmk.blunder.cmp', 'diff 445.gobmk.buzco.out buzco.out --strip-trailing-cr > 445.gobmk.buzco.cmp', 'diff 445.gobmk.nicklas2.out nicklas2.out --strip-trailing-cr > 445.gobmk.nicklas2.cmp', 'diff 445.gobmk.nicklas4.out nicklas4.out --strip-trailing-cr > 445.gobmk.nicklas4.cmp'
+    ref_input_set = ['all/input/games', 'all/input/golois', 'ref/input/13x13.tst', 'ref/input/nngs.tst', 'ref/input/score2.tst', 'ref/input/trevorc.tst', 'ref/input/trevord.tst']
+    ref_output_set = ['ref/output/13x13.out', 'ref/output/nngs.out', 'ref/output/score2.out', 'ref/output/trevorc.out', 'ref/output/trevord.out']
+    ref_args = ['--quiet --mode gtp < 13x13.tst > 445.gobmk.13x13.out 2> 445.gobmk.13x13.err', '--quiet --mode gtp < nngs.tst > 445.gobmk.nngs.out 2> 445.gobmk.nngs.err', '--quiet --mode gtp < score2.tst > 445.gobmk.score2.out 2> 445.gobmk.score2.err', '--quiet --mode gtp < trevorc.tst > 445.gobmk.trevorc.out 2> 445.gobmk.trevorc.err', '--quiet --mode gtp < trevord.tst > 445.gobmk.trevord.out 2> 445.gobmk.trevord.err']
+    ref_cmp_cmds = ['diff 445.gobmk.13x13.out 13x13.out --strip-trailing-cr > 445.gobmk.13x13.cmp', 'diff 445.gobmk.nngs.out nngs.out --strip-trailing-cr > 445.gobmk.nngs.cmp', 'diff 445.gobmk.score2.out score2.out --strip-trailing-cr > 445.gobmk.score2.cmp', 'diff 445.gobmk.trevorc.out trevorc.out --strip-trailing-cr > 445.gobmk.trevorc.cmp', 'diff 445.gobmk.trevord.out trevord.out --strip-trailing-cr > 445.gobmk.trevord.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_445_gobmk
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/int/456.hmmer/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/int/456.hmmer/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/int/456.hmmer/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/int/456.hmmer/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_456_hmmer(spec.TestModule):
+    year = '2006'
+    category = 'int'
+    benchmark = '456.hmmer'
+
+    train_input_set = ['train/input/leng100.hmm']
+    train_output_set = ['train/output/leng100.out']
+    train_args = '--fixed 0 --mean 325 --num 5000 --sd 200 --seed 0 leng100.hmm > 456.hmmer.leng100.out 2> 456.hmmer.leng100.err'
+    train_cmp_cmd = 'diff 456.hmmer.leng100.out leng100.out --strip-trailing-cr > 456.hmmer.leng100.cmp'
+    ref_input_set = ['ref/input/nph3.hmm', 'ref/input/swiss41', 'ref/input/retro.hmm']
+    ref_output_set = ['ref/output/nph3.out', 'ref/output/retro.out']
+    ref_args = ['nph3.hmm swiss41 > 456.hmmer.nph3.out 2> 456.hmmer.nph3.err', '--fixed 0 --mean 500 --num 500000 --sd 350 --seed 0 retro.hmm > 456.hmmer.retro.out 2> 456.hmmer.retro.err']
+    ref_cmp_cmds = ['diff 456.hmmer.nph3.out nph3.out --strip-trailing-cr > 456.hmmer.nph3.cmp', 'diff 456.hmmer.retro.out retro.out --strip-trailing-cr > 456.hmmer.retro.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_456_hmmer
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/int/458.sjeng/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/int/458.sjeng/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/int/458.sjeng/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/int/458.sjeng/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_458_sjeng(spec.TestModule):
+    year = '2006'
+    category = 'int'
+    benchmark = '458.sjeng'
+
+    train_input_set = ['train/input/train.txt']
+    train_output_set = ['train/output/train.out']
+    train_args = 'train.txt > 458.sjeng.input1.out 2> 458.sjeng.input1.err'
+    train_cmp_cmd = 'diff 458.sjeng.input1.out train.out --strip-trailing-cr > 458.sjeng.input1.cmp'
+    ref_input_set = ['ref/input/ref.txt']
+    ref_output_set = ['ref/output/ref.out']
+    ref_args = ['ref.txt > 458.sjeng.input1.out 2> 458.sjeng.input1.err']
+    ref_cmp_cmds = ['diff 458.sjeng.input1.out ref.out --strip-trailing-cr > 458.sjeng.input1.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_458_sjeng
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/int/462.libquantum/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/int/462.libquantum/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/int/462.libquantum/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/int/462.libquantum/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_462_libquantum(spec.TestModule):
+    year = '2006'
+    category = 'int'
+    benchmark = '462.libquantum'
+
+    train_input_set = []
+    train_output_set = ['train/output/train.out']
+    train_args = '143 25 > 462.libquantum.143.out 2> 462.libquantum.143.err'
+    train_cmp_cmd = 'diff 462.libquantum.143.out train.out --strip-trailing-cr > 462.libquantum.143.cmp'
+    ref_input_set = []
+    ref_output_set = ['ref/output/ref.out']
+    ref_args = ['1397 8 > 462.libquantum.1397.out 2> 462.libquantum.1397.err']
+    ref_cmp_cmds = ['diff 462.libquantum.1397.out ref.out --strip-trailing-cr > 462.libquantum.1397.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_462_libquantum
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/int/464.h264ref/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/int/464.h264ref/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/int/464.h264ref/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/int/464.h264ref/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_464_h264ref(spec.TestModule):
+    year = '2006'
+    category = 'int'
+    benchmark = '464.h264ref'
+
+    train_input_set = ['all/input/foreman_qcif.yuv', 'train/input/foreman_train_encoder_baseline.cfg', 'all/input/leakybucketrate.cfg']
+    train_output_set = ['train/output/foreman_train_baseline_encodelog.out']
+    train_args = '-d foreman_train_encoder_baseline.cfg > 464.h264ref.foreman_train_encoder_baseline.out 2> 464.h264ref.foreman_train_encoder_baseline.err'
+    train_cmp_cmd = 'diff 464.h264ref.foreman_train_encoder_baseline.out foreman_train_baseline_encodelog.out --strip-trailing-cr > 464.h264ref.foreman_train_encoder_baseline.cmp'
+    ref_input_set = ['all/input/foreman_qcif.yuv', 'ref/input/sss.yuv', 'all/input/leakybucketrate.cfg', 'ref/input/foreman_ref_encoder_main.cfg', 'ref/input/foreman_ref_encoder_baseline.cfg', 'ref/input/sss_encoder_main.cfg']
+    ref_output_set = ['ref/output/foreman_ref_baseline_encodelog.out', 'ref/output/foreman_ref_main_encodelog.out', 'ref/output/sss_main_encodelog.out']
+    ref_args = ['-d foreman_ref_encoder_baseline.cfg > 464.h264ref.foreman_ref_encoder_baseline.out 2> 464.h264ref.foreman_ref_encoder_baseline.err', '-d foreman_ref_encoder_main.cfg > 464.h264ref.foreman_ref_encoder_main.out 2> 464.h264ref.foreman_ref_encoder_main.err', '-d sss_encoder_main.cfg > 464.h264ref.sss_encoder_main.out 2> 464.h264ref.sss_encoder_main.err']
+    ref_cmp_cmds = ['diff 464.h264ref.foreman_ref_encoder_baseline.out foreman_ref_baseline_encodelog.out --strip-trailing-cr > 464.h264ref.foreman_ref_encoder_baseline.cmp', 'diff 464.h264ref.foreman_ref_encoder_main.out foreman_ref_main_encodelog.out --strip-trailing-cr > 464.h264ref.foreman_ref_encoder_main.cmp', 'diff 464.h264ref.sss_encoder_main.out sss_main_encodelog.out --strip-trailing-cr > 464.h264ref.sss_encoder_main.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_464_h264ref
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/int/471.omnetpp/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/int/471.omnetpp/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/int/471.omnetpp/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/int/471.omnetpp/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_471_omnetpp(spec.TestModule):
+    year = '2006'
+    category = 'int'
+    benchmark = '471.omnetpp'
+
+    train_input_set = ['train/input/omnetpp.ini']
+    train_output_set = []
+    train_args = 'omnetpp.ini > 471.omnetpp.input1.out 2> 471.omnetpp.input1.err'
+    train_cmp_cmd = ''
+    ref_input_set = ['ref/input/omnetpp.ini']
+    ref_output_set = []
+    ref_args = ['omnetpp.ini > 471.omnetpp.input1.out 2> 471.omnetpp.input1.err']
+    ref_cmp_cmds = []
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_471_omnetpp
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/int/473.astar/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/int/473.astar/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/int/473.astar/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/int/473.astar/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_473_astar(spec.TestModule):
+    year = '2006'
+    category = 'int'
+    benchmark = '473.astar'
+
+    train_input_set = ['train/input/rivers.bin', 'train/input/BigLakes1024.bin', 'train/input/BigLakes1024.cfg', 'train/input/rivers1.cfg']
+    train_output_set = ['train/output/BigLakes1024.out', 'train/output/rivers1.out']
+    train_args = 'BigLakes1024.cfg > 473.astar.BigLakes1024.out 2> 473.astar.BigLakes1024.err', 'rivers1.cfg > 473.astar.rivers1.out 2> 473.astar.rivers1.err'
+    train_cmp_cmd = 'diff 473.astar.BigLakes1024.out BigLakes1024.out --strip-trailing-cr > 473.astar.BigLakes1024.cmp', 'diff 473.astar.rivers1.out rivers1.out --strip-trailing-cr > 473.astar.rivers1.cmp'
+    ref_input_set = ['ref/input/rivers.bin', 'ref/input/BigLakes2048.bin', 'ref/input/BigLakes2048.cfg', 'ref/input/rivers.cfg']
+    ref_output_set = ['ref/output/BigLakes2048.out', 'ref/output/rivers.out']
+    ref_args = ['BigLakes2048.cfg > 473.astar.BigLakes2048.out 2> 473.astar.BigLakes2048.err', 'rivers.cfg > 473.astar.rivers.out 2> 473.astar.rivers.err']
+    ref_cmp_cmds = ['diff 473.astar.BigLakes2048.out BigLakes2048.out --strip-trailing-cr > 473.astar.BigLakes2048.cmp', 'diff 473.astar.rivers.out rivers.out --strip-trailing-cr > 473.astar.rivers.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_473_astar
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()

Added: test-suite/trunk/LNTBased/speccpu2006/int/483.xalancbmk/TestModule
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/LNTBased/speccpu2006/int/483.xalancbmk/TestModule?rev=253362&view=auto
==============================================================================
--- test-suite/trunk/LNTBased/speccpu2006/int/483.xalancbmk/TestModule (added)
+++ test-suite/trunk/LNTBased/speccpu2006/int/483.xalancbmk/TestModule Tue Nov 17 13:08:18 2015
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- Python -*-
+
+import spec
+
+class SPEC2006_483_xalancbmk(spec.TestModule):
+    year = '2006'
+    category = 'int'
+    benchmark = '483.xalancbmk'
+
+    train_input_set = ['train/input/train.xsd', 'train/input/train.lst', 'train/input/allbooks.xml', 'train/input/xalanc.xsl']
+    train_output_set = ['train/output/train.out']
+    train_args = '-v allbooks.xml xalanc.xsl > 483.xalancbmk.allbooks.out 2> 483.xalancbmk.allbooks.err'
+    train_cmp_cmd = 'diff 483.xalancbmk.allbooks.out train.out --strip-trailing-cr > 483.xalancbmk.allbooks.cmp'
+    ref_input_set = ['ref/input/t5.xml', 'ref/input/xalanc.xsl']
+    ref_output_set = ['ref/output/ref.out']
+    ref_args = ['-v t5.xml xalanc.xsl > 483.xalancbmk.t5.out 2> 483.xalancbmk.t5.err']
+    ref_cmp_cmds = ['diff 483.xalancbmk.t5.out ref.out --strip-trailing-cr > 483.xalancbmk.t5.cmp']
+
+# This is the only required entry point to the module.
+test_class = SPEC2006_483_xalancbmk
+
+# This is not required, but allows users with LNT in the environment (required
+# for initial imports to work) to execute this test directly.
+if __name__ == '__main__':
+    test_class().main()




More information about the llvm-commits mailing list