Ignore:
Timestamp:
May 9, 2012, 4:10:39 PM (7 years ago)
Author:
ksherdy
Message:

Refactored id,div2,log2. All tests pass.

Location:
trunk/symbol_table/test
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/symbol_table/test/run_tests.py

    r2090 r2092  
    55#
    66# Quick-and-dirty Python symbol table test script
    7 # to generates expected output files for diff test.
    8 #
    9 # 1. Use st_test_file_generator.py to generate 'st_test_UNIFORM_*' CSV symbol files.
    10 # 2. Execute test script.
    11 # 3. diff -r 'results' directory against input symbol files.
     7# to generates expected output files for diff and gid tests.
    128#
    139# Ken Herdy
     
    2016out_dir_path='../test/out'
    2117#----------------------------------------------------------------------------
     18
    2219import sys
    2320import os
     
    2623import fnmatch                 
    2724import string
    28 
    29 usage='Usage: python ' + __file__ + ' <program> <test root>'
     25import optparse
    3026
    3127def gid_testcase(program, input_file):
     
    3430    triples = prefix.split(')_(')
    3531
    36     sum = 0
     32    e = 0
    3733    for t in triples:
    38         print int(t.split('_')[2])
    39         sum = sum + int(t.split('_')[2])
     34        e = e + int(t.split('_')[2])
    4035
    4136    output = subprocess.Popen([program, input_file], stdout=subprocess.PIPE).communicate()[0]
     37    a = int(output)
     38
     39    print file_name
     40    print "Expected: %d" % e
     41    print "Actual: %d" % a
     42    print
     43    return e == a
    4244
    4345def diff_testcase(program, input_file, outfile_root):
    4446        (head, tail) = os.path.split(input_file)
    4547        outputdir = os.path.join(outfile_root, tail)
    46         print outputdir
    47        
    4848        (head, tail) = os.path.split(outputdir)
    4949        if os.path.exists(head)==False:         
     
    5353        out_f.close()
    5454
     55def gen_test_files(test_dir_path):
     56    test_files = []
     57    for dirname, dirnames, filenames in os.walk(test_dir_path):
     58            for filename in filenames:
     59                    if filename.endswith('.test') and not filename.endswith('.svn-base'):
     60                            test_files.append(os.path.relpath(os.path.join(dirname, filename)))
     61    return test_files
     62
     63#----------------------------------------------------------------------------
     64def get_option_parser():
     65        """Return an C{optparse.OptionParser} instance tied to this configuration."""
     66       
     67        parser = optparse.OptionParser(usage='python %prog [options] <program>',
     68                                        version='1.0',
     69                                        )
     70       
     71        # Option definitions
     72        parser.add_option('-d', '--diff',
     73                          dest='diff_test',
     74                          action='store_true',
     75                          default=False,
     76                          help='Diff test.',
     77                          )
     78
     79        parser.add_option('-g', '--gid',
     80                          dest='gid_test',
     81                          action='store_true',
     82                          default=False,
     83                          help='GID test.',
     84                          )
     85
     86        return parser
     87
     88#----------------------------------------------------------------------------
     89
    5590if __name__ == "__main__":
    5691
    57         if(len(sys.argv) < 2):
    58                 print usage
    59                 sys.exit()
     92        option_parser = get_option_parser()
     93        options, args = option_parser.parse_args(sys.argv[1:])
     94
     95        # Positional arguments
     96        if len(args) != 1:
     97            option_parser.print_usage()
     98            sys.exit()
    6099
    61100        program = os.path.join(program_dir_path,sys.argv[1])
     101        test_files = gen_test_files(test_dir_path)
    62102
    63         for dirname, dirnames, filenames in os.walk(test_dir_path):
    64                 for filename in filenames:
    65                         if filename.endswith('.test') and not filename.endswith('.svn-base'):
    66                                 relfile = os.path.relpath(os.path.join(dirname, filename))
    67                                 diff_testcase(program, relfile, out_dir_path)
    68                                 #gid_testcase(program, relfile)
     103        if options.diff_test:
     104            for test_file in test_files:
     105                    diff_testcase(program, test_file, out_dir_path)
    69106
     107        if options.gid_test:
     108            all_true = True
     109            for test_file in test_files:
     110                    result = gid_testcase(program, test_file)
     111                    all_true = all_true and result
     112
     113            if all_true:
     114                print "All pass."
    70115       
  • trunk/symbol_table/test/st_test_file_generator.py

    r2075 r2092  
    2424#    in the generated test file.
    2525
    26 usage = "python testFileGenerator.py [L,O,U] [L,O,U] [L,O,U] ... AvgGap MaxGap"
     26usage = "python testFileGenerator.py (L,O,U) (L,O,U) (L,O,U) ... AvgGap MaxGap"
    2727
    2828# parallel lists
     
    229229        base_filename = ""
    230230        for lst in symbol_specs:
    231             base_filename += "[" + str(lst[0]) + "_" + str(lst[1]) + "_" + str(lst[2]) + "]"
     231            base_filename += "(" + str(lst[0]) + "_" + str(lst[1]) + "_" + str(lst[2]) + ")"
    232232        base_filename += "_" + str(arguments[num_args-2]) + "_" + str(arguments[num_args-1])
    233233
Note: See TracChangeset for help on using the changeset viewer.