diff options
Diffstat (limited to 'test-chill/testchill/__main__.py')
| -rw-r--r-- | test-chill/testchill/__main__.py | 121 | 
1 files changed, 54 insertions, 67 deletions
| diff --git a/test-chill/testchill/__main__.py b/test-chill/testchill/__main__.py index 8af5b9c..86415c3 100644 --- a/test-chill/testchill/__main__.py +++ b/test-chill/testchill/__main__.py @@ -9,7 +9,6 @@ import textwrap  from . import chill  from . import gcov -from . import omega  from . import test  from . import util @@ -26,7 +25,6 @@ def make_local(argsns, arg_parser):      argsns.bin_dir = os.path.join(os.getcwd(), '.staging/bin')      argsns.chill_tc_dir = os.path.join(os.getcwd(), 'test-cases') # formally from the commandline      argsns.chill_dir = os.path.abspath(argsns.chill_dir) -    argsns.omega_dir = os.path.abspath(argsns.omega_dir)      argsns.chill_build_coverage = argsns.coverage_set is not None #TODO: make arg passed to local.      argsns.chill_test_coverage = argsns.coverage_set is not None @@ -35,60 +33,59 @@ def make_local(argsns, arg_parser):      util.shell('cp', [os.path.join(argsns.chill_dir, 'examples/cuda-chill/cudaize.lua'), argsns.wd])      util.shell('cp', [os.path.join(argsns.chill_dir, 'examples/cuda-chill/cudaize.py'), argsns.wd]) -    chill_version = argsns.chill_version -    for config in chill.ChillConfig.configs(argsns.omega_dir, argsns.chill_dir, argsns.bin_dir, version=chill_version): +    for config in chill.ChillConfig.configs(argsns.chill_dir, argsns.bin_dir):          build_testcase = chill.BuildChillTestCase(config, options={'coverage': argsns.chill_build_coverage}, coverage_set=argsns.coverage_set)          yield build_testcase -        batch_file = os.path.join(argsns.chill_tc_dir, config.name() + '.tclist') +        batch_file = os.path.join(argsns.chill_tc_dir, config.name + '.tclist')          for tc in make_batch_testcaselist(argsns, arg_parser, batch_file):              yield tc -def make_repo(argsns, arg_parser): +#def make_repo(argsns, arg_parser):      """      Make the repo test case list. A convinience function for testing chill from the repsitory.      @params argsns Command line arguments      @params arg_parser The ArgumentParser object      """ -    util.mkdir_p(os.path.join(os.getcwd(), '.staging'), temp=True) -    argsns.bin_dir = os.path.join(os.getcwd(), '.staging/bin') -    argsns.repo_dir = os.path.join(os.getcwd(), '.staging/repo') -    argsns.chill_tc_dir = os.path.join(os.getcwd(), 'test-cases') # formally from the commandline -    argsns.wd = os.path.join(os.getcwd(), '.staging/wd') -     -    util.mkdir_p(argsns.bin_dir) -    util.mkdir_p(argsns.repo_dir) -    util.mkdir_p(argsns.wd) -     -    #TODO: Should these be hard coded? -    repo_root = 'shell.cs.utah.edu/uusoc/facility/res/hallresearch/svn_repo/resRepo/projects' -    for version in ['release', 'dev']: -        new_args = util.copy(argsns) -        if version == 'dev': -            chill_repo = 'svn+ssh://{}@{}/chill/branches/cuda-chill-rose'.format(new_args.svnuser, repo_root) -            chill_repo_name = 'chill' -            omega_repo = 'svn+ssh://{}@{}/omega/branches/cuda-omega-rose'.format(new_args.svnuser, repo_root) -            omega_repo_name = 'omega' -        elif version == 'release': -            chill_repo = 'svn+ssh://{}@{}/chill/release'.format(new_args.svnuser, repo_root) -            chill_repo_name = 'chill-release' -            omega_repo = 'svn+ssh://{}@{}/omega/release'.format(new_args.svnuser, repo_root) -            omega_repo_name = 'omega-release' -        new_args.omega_dir = os.path.join(new_args.repo_dir, omega_repo_name) -        new_args.chill_dir = os.path.join(new_args.repo_dir, chill_repo_name) -        util.shell('svn', ['export', '--force', omega_repo, new_args.omega_dir]) -        util.shell('svn', ['export', '--force', chill_repo, new_args.chill_dir]) -        util.shell('cp', [os.path.join(new_args.chill_dir, 'examples/cuda-chill/cudaize.lua'), new_args.wd]) -        if version == 'dev': -            util.shell('cp', [os.path.join(new_args.chill_dir, 'examples/cuda-chill/cudaize.py'), new_args.wd]) -        # do omega: (just build it for now) -        yield omega.BuildOmegaTestCase(new_args.omega_dir ,version) -        # do chill -        for config in chill.ChillConfig.configs(new_args.omega_dir, new_args.chill_dir, new_args.bin_dir, version=version): -            yield chill.BuildChillTestCase(config, coverage_set=argsns.coverage_set) -            batch_file = os.path.join(argsns.chill_tc_dir, config.name() + '.tclist') -            if os.path.exists(batch_file): -                for tc in make_batch_testcaselist(new_args, arg_parser, batch_file): -                    yield tc +#    util.mkdir_p(os.path.join(os.getcwd(), '.staging'), temp=True) +#    argsns.bin_dir = os.path.join(os.getcwd(), '.staging/bin') +#    argsns.repo_dir = os.path.join(os.getcwd(), '.staging/repo') +#    argsns.chill_tc_dir = os.path.join(os.getcwd(), 'test-cases') # formally from the commandline +#    argsns.wd = os.path.join(os.getcwd(), '.staging/wd') +#     +#    util.mkdir_p(argsns.bin_dir) +#    util.mkdir_p(argsns.repo_dir) +#    util.mkdir_p(argsns.wd) +#     +#    #TODO: Should these be hard coded? +#    repo_root = 'shell.cs.utah.edu/uusoc/facility/res/hallresearch/svn_repo/resRepo/projects' +#    for version in ['release', 'dev']: +#        new_args = util.copy(argsns) +#        if version == 'dev': +#            chill_repo = 'svn+ssh://{}@{}/chill/branches/cuda-chill-rose'.format(new_args.svnuser, repo_root) +#            chill_repo_name = 'chill' +#            omega_repo = 'svn+ssh://{}@{}/omega/branches/cuda-omega-rose'.format(new_args.svnuser, repo_root) +#            omega_repo_name = 'omega' +#        elif version == 'release': +#            chill_repo = 'svn+ssh://{}@{}/chill/release'.format(new_args.svnuser, repo_root) +#            chill_repo_name = 'chill-release' +#            omega_repo = 'svn+ssh://{}@{}/omega/release'.format(new_args.svnuser, repo_root) +#            omega_repo_name = 'omega-release' +#        new_args.omega_dir = os.path.join(new_args.repo_dir, omega_repo_name) +#        new_args.chill_dir = os.path.join(new_args.repo_dir, chill_repo_name) +#        util.shell('svn', ['export', '--force', omega_repo, new_args.omega_dir]) +#        util.shell('svn', ['export', '--force', chill_repo, new_args.chill_dir]) +#        util.shell('cp', [os.path.join(new_args.chill_dir, 'examples/cuda-chill/cudaize.lua'), new_args.wd]) +#        if version == 'dev': +#            util.shell('cp', [os.path.join(new_args.chill_dir, 'examples/cuda-chill/cudaize.py'), new_args.wd]) +#        # do omega: (just build it for now) +#        yield omega.BuildOmegaTestCase(new_args.omega_dir ,version) +#        # do chill +#        for config in chill.ChillConfig.configs(new_args.omega_dir, new_args.chill_dir, new_args.bin_dir, version=version): +#            yield chill.BuildChillTestCase(config, coverage_set=argsns.coverage_set) +#            batch_file = os.path.join(argsns.chill_tc_dir, config.name() + '.tclist') +#            if os.path.exists(batch_file): +#                for tc in make_batch_testcaselist(new_args, arg_parser, batch_file): +#                    yield tc  def make_runchill_testcase(argsns):      """ @@ -116,12 +113,10 @@ def make_runchill_testcase(argsns):          argsns.chill_script_lang = chill.ChillConfig.ext_to_script_lang(chill_script.split('.')[-1])      config = chill.ChillConfig( -        omega_dir = os.path.abspath(argsns.omega_dir) if argsns.omega_dir != None else None,          chill_dir = os.path.abspath(argsns.chill_dir) if argsns.chill_dir != None else None,          bin_dir = os.path.abspath(argsns.bin_dir) if argsns.bin_dir != None else None,          build_cuda = argsns.build_cuda, -        script_lang = argsns.chill_script_lang, -        version = argsns.chill_version) +        script_lang = argsns.chill_script_lang)      return chill.RunChillTestCase(config, chill_script, chill_src, wd=wd, options=options, coverage_set=coverage_set) @@ -131,7 +126,6 @@ def make_buildchill_testcase(argsns):      @param argsns Command line arguments      """      assert argsns.chill_dir != None -    assert argsns.omega_dir != None      coverage_set = argsns.coverage_set @@ -139,12 +133,10 @@ def make_buildchill_testcase(argsns):      options['coverage'] = argsns.chill_build_coverage      config = chill.ChillConfig( -        omega_dir = os.path.abspath(argsns.omega_dir) if argsns.omega_dir != None else None,          chill_dir = os.path.abspath(argsns.chill_dir) if argsns.chill_dir != None else None,          bin_dir = os.path.abspath(argsns.bin_dir) if argsns.bin_dir != None else None,          build_cuda = argsns.build_cuda, -        script_lang = argsns.chill_script_lang, -        version = argsns.chill_version) +        script_lang = argsns.chill_script_lang)      return chill.BuildChillTestCase(config, options=options, coverage_set=coverage_set) @@ -173,12 +165,12 @@ def add_local_args(arg_parser):      @param arg_parser The local ArgumentParser object      """      arg_parser.add_argument('chill_dir', metavar='chill-home', default='../') -    arg_parser.add_argument('-v', '--chill-branch', dest='chill_version', default='dev', choices=['release','dev']) +    #arg_parser.add_argument('-v', '--chill-branch', dest='chill_version', default='dev', choices=['release','dev'])      # - Testing should consider all interface languages. Will uncomment if testing takes too long      # arg_parser.add_argument('-i', '--interface-lang', nargs=1, action='append', dest='chill_script_lang_list', choices=['script','lua','python'])      # arg_parser.add_argument('-t', '--testcase-dir', dest='chill_tc_dir', default=os.path.join(os.getcwd(), 'test-cases/')) -    arg_parser.set_defaults(wd=os.path.join(os.getcwd(), '.staging/wd'))       # - These don't seem to work -    arg_parser.set_defaults(bin_dir=os.path.join(os.getcwd(), '.staging/bin')) # - +    arg_parser.set_defaults(wd=os.path.join(os.getcwd(), '.staging/wd')) +    arg_parser.set_defaults(bin_dir=os.path.join(os.getcwd(), '.staging/bin'))  @util.callonce  def add_repo_args(arg_parser): @@ -207,7 +199,6 @@ def add_chill_common_args(arg_parser):      Common chill command line arguments.      @param arg_parser The ArgumentParser object      """ -    arg_parser.add_argument('-v', '--chill-branch', dest='chill_version', default='dev', choices=['release','dev'])      cuda_group = arg_parser.add_mutually_exclusive_group()      cuda_group.add_argument('-u', '--target-cuda', action='store_const', const=True, dest='build_cuda', default=False, help='Test cuda-chill. (Default is chill)')      cuda_group.add_argument('-c', '--target-c', action='store_const', const=False, dest='build_cuda', default=False, help='Test chill. (Default is chill)') @@ -225,7 +216,7 @@ def add_chill_run_args(arg_parser):      add_boolean_option(arg_parser, 'run-script', dest='chill_test_run_script', default=True, help_on='Run chill script.', help_off='Do not run chill script.')      add_boolean_option(arg_parser, 'compile-gensrc', dest='chill_test_compile_gensrc', default=True, help_on='Compile generated source file', help_off='Do not compile generated source file.')      add_boolean_option(arg_parser, 'check-run-script', dest='chill_test_check_run_script', default=False, help_on='Diff stdout from chill script against a benchmark.') -    add_boolean_option(arg_parser, 'test-coverage', 'chill_test_coverage', default=True, help_on='Run chill and record code coverage (default).', help_off='Run chill normally without recording code coverage.') +    add_boolean_option(arg_parser, 'test-coverage', 'chill_test_coverage', default=False, help_on='Run chill and record code coverage (default).', help_off='Run chill normally without recording code coverage.')  @util.callonce  def add_chill_build_args(arg_parser): @@ -233,7 +224,7 @@ def add_chill_build_args(arg_parser):      Command line arguments specific to building chill and testing the build process      @params arg_parser The ArgumentParser object      """ -    add_boolean_option(arg_parser, 'build-coverage', 'chill_build_coverage', default=True, help_on='Build chill for code coverage flags (default).', help_off='Build chill normally without code coverage flags.') +    add_boolean_option(arg_parser, 'build-coverage', 'chill_build_coverage', default=False, help_on='Build chill for code coverage flags (default).', help_off='Build chill normally without code coverage flags.')  @util.callonce  def add_local_command(command_group): @@ -303,7 +294,7 @@ def add_commands(arg_parser):      """      command_group = arg_parser.add_subparsers(title='commands')      add_local_command(command_group) -    add_repo_command(command_group) +    #add_repo_command(command_group)      add_chill_command(command_group)      add_buildchill_command(command_group)      add_batch_command(command_group) @@ -315,10 +306,9 @@ def add_global_args(arg_parser):      @param arg_parser The ArgumentParser object      """      arg_parser.add_argument('-w', '--working-dir', dest='wd', default=os.getcwd(), help='The working directory. (Defaults to the current directory)', metavar='working-directory') -    arg_parser.add_argument('-R', '--rose-home', dest='rose_dir', default=os.getenv('ROSEHOME'), help='Rose home directory. (Defaults to ROSEHOME)', metavar='rose-home') +    arg_parser.add_argument('-R', '--rose-home',  dest='rose_dir', default=os.getenv('ROSEHOME'), help='Rose home directory. (Defaults to ROSEHOME)', metavar='rose-home')      arg_parser.add_argument('-C', '--chill-home', dest='chill_dir', default=os.path.join(os.getcwd(), '..'), help='Chill home directory. (Defaults to CHILLHOME)', metavar='chill-home') -    arg_parser.add_argument('-O', '--omega-home', dest='omega_dir', default=os.path.join(os.getcwd(), '../omega'), help='Omega home directory. (Defaults to ../omega)', metavar='omega-home') -    arg_parser.add_argument('-b', '--binary-dir', dest='bin_dir', default=None, help='Binary directory.', metavar='bin-dir') +    arg_parser.add_argument('-b', '--binary-dir', dest='bin_dir', default=os.path.join(os.getcwd(), '..'), help='Binary directory.', metavar='bin-dir')  @util.callonce  def make_argparser(): @@ -331,8 +321,7 @@ def make_argparser():              To test a local working copy of chill (from the development branch):              --------------------------------------------------------------------   -            - Set $OMEGAHOME and compile omega. -            - Run `python -m testchill local <path-to-chill>` +            - Run `python -m testchill local`          '''),          epilog='EPILOG', @@ -362,11 +351,9 @@ def args_to_tclist(args=sys.argv[1:], arg_parser=make_argparser(), argsns=None,  @util.callonce  def main():      coverage = gcov.GcovSet() -    #coverage=None      results = list(test.run(args_to_tclist(coverage_set=coverage)))      test.pretty_print_results(results)      util.rmtemp() -    #coverage.pretty_print()      with open('coverage.pickle', 'wb') as f:          pickle.dump(coverage, f, 2) | 
