| Index: src/trusted/validator_x86/testscripts/run_old_validator_tests.py
|
| diff --git a/src/trusted/validator_x86/testscripts/run_old_validator_tests.py b/src/trusted/validator_x86/testscripts/run_old_validator_tests.py
|
| deleted file mode 100755
|
| index 2884ed0bbd2b6b90ec6508389ccc2d89959e6928..0000000000000000000000000000000000000000
|
| --- a/src/trusted/validator_x86/testscripts/run_old_validator_tests.py
|
| +++ /dev/null
|
| @@ -1,167 +0,0 @@
|
| -#!/usr/bin/python
|
| -# Copyright (c) 2012 The Native Client Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -import glob
|
| -import optparse
|
| -import subprocess
|
| -import sys
|
| -
|
| -import test_format
|
| -
|
| -
|
| -FIELDS_TO_IGNORE = set(['rdfa_output', 'validators_disagree'])
|
| -
|
| -
|
| -def AssertEquals(actual, expected):
|
| - if actual != expected:
|
| - raise AssertionError('\nEXPECTED:\n"""\n%s"""\n\nACTUAL:\n"""\n%s"""'
|
| - % (expected, actual))
|
| -
|
| -
|
| -def GetX8632Combinations():
|
| - for detailed in (True, False):
|
| - for test_stats in (True, False):
|
| - for test_cpuid_all in (True, False):
|
| - ext = 'nval'
|
| - options = []
|
| - if detailed:
|
| - ext += 'd'
|
| - options.append('--detailed')
|
| - else:
|
| - options.append('--detailed=false')
|
| - if test_stats:
|
| - ext += 's'
|
| - options.append('--stats')
|
| - if test_cpuid_all:
|
| - options.append('--cpuid-all')
|
| - else:
|
| - ext += '0'
|
| - options.append('--cpuid-none')
|
| - yield ext, options
|
| -
|
| -
|
| -def GetX8664Combinations():
|
| - for test_readwrite in (True, False):
|
| - for detailed in (True, False):
|
| - for test_cpuid_all in (True, False):
|
| - for test_annotate in (True, False):
|
| - for validator_decoder in (True, False):
|
| - options = []
|
| - # TODO(shcherbina): Remove support for testing validation
|
| - # without sandboxing memory reads.
|
| - if test_readwrite:
|
| - ext = 'rval'
|
| - options.append('--readwrite_sfi')
|
| - else:
|
| - ext = 'val'
|
| - options.append('--write_sfi')
|
| - if detailed:
|
| - ext += 'd'
|
| - options.append('--detailed')
|
| - else:
|
| - options.append('--detailed=false')
|
| - if test_cpuid_all:
|
| - options.append('--cpuid-all')
|
| - else:
|
| - ext += '0'
|
| - options.append('--cpuid-none')
|
| - if test_annotate:
|
| - ext += 'a'
|
| - options.append('--annotate')
|
| - else:
|
| - options.append('--annotate=false')
|
| - if validator_decoder:
|
| - ext = "vd-" + ext
|
| - options.append('--validator_decoder')
|
| - yield ext, options
|
| -
|
| -
|
| -def Test(options, items_list):
|
| - info = dict(items_list)
|
| - handled_fields = set(['hex'])
|
| -
|
| - def RunCommandOnHex(field, command):
|
| - handled_fields.add(field)
|
| - if field in info:
|
| - proc = subprocess.Popen(command,
|
| - stdin=subprocess.PIPE,
|
| - stdout=subprocess.PIPE)
|
| - # r'\\' is used as line continuation marker by
|
| - # run_rdfa_validator_tests.py. Old validator does not care about line
|
| - # partitioning, so we just remove the marker.
|
| - stdout, stderr = proc.communicate(info['hex'].replace(r'\\', ''))
|
| - assert proc.wait() == 0, (command, stdout, stderr)
|
| - # Remove the carriage return characters that we get on Windows.
|
| - stdout = stdout.replace('\r', '')
|
| - print ' Checking %r field...' % field
|
| - if options.update:
|
| - if stdout != info[field]:
|
| - print ' Updating %r field...' % field
|
| - info[field] = stdout
|
| - else:
|
| - AssertEquals(stdout, info[field])
|
| -
|
| - ncdis = [options.ncdis, '--hex_text=-']
|
| - RunCommandOnHex('dis', ncdis + ['--full_decoder'])
|
| - RunCommandOnHex('vdis', ncdis + ['--validator_decoder'])
|
| -
|
| - ncval = [options.ncval, '--hex_text=-', '--max_errors=-1']
|
| - if options.bits == 32:
|
| - for ext, ncval_options in GetX8632Combinations():
|
| - RunCommandOnHex(ext, ncval + ncval_options)
|
| - elif options.bits == 64:
|
| - for ext, ncval_options in GetX8664Combinations():
|
| - RunCommandOnHex(ext, ncval + ncval_options)
|
| -
|
| - RunCommandOnHex('sval', ncval + ['--stubout'])
|
| - else:
|
| - raise AssertionError('Unknown architecture: %r' % options.bits)
|
| -
|
| - unhandled = set(info.keys()) - set(handled_fields) - FIELDS_TO_IGNORE
|
| - if unhandled:
|
| - raise AssertionError('Unhandled fields: %r' % sorted(unhandled))
|
| -
|
| - # Update field values, but preserve their order.
|
| - items_list = [(field, info[field]) for field, _ in items_list]
|
| -
|
| - return items_list
|
| -
|
| -
|
| -def main(args):
|
| - parser = optparse.OptionParser()
|
| - parser.add_option('--ncval', default='ncval',
|
| - help='Path to the ncval validator executable')
|
| - parser.add_option('--ncdis', default='ncdis',
|
| - help='Path to the ncdis disassembler executable')
|
| - parser.add_option('--bits',
|
| - type=int,
|
| - help='The subarchitecture to run tests against: 32 or 64')
|
| - parser.add_option('--update',
|
| - default=False,
|
| - action='store_true',
|
| - help='Regenerate golden fields instead of testing')
|
| - options, args = parser.parse_args(args)
|
| - if options.bits not in [32, 64]:
|
| - parser.error('specify --bits 32 or --bits 64')
|
| - if len(args) == 0:
|
| - parser.error('No test files specified')
|
| - processed = 0
|
| - for glob_expr in args:
|
| - test_files = sorted(glob.glob(glob_expr))
|
| - if len(test_files) == 0:
|
| - raise AssertionError(
|
| - '%r matched no files, which was probably not intended' % glob_expr)
|
| - for test_file in test_files:
|
| - print 'Testing %s...' % test_file
|
| - tests = test_format.LoadTestFile(test_file)
|
| - tests = [Test(options, test) for test in tests]
|
| - if options.update:
|
| - test_format.SaveTestFile(tests, test_file)
|
| - processed += 1
|
| - print '%s test files were processed.' % processed
|
| -
|
| -
|
| -if __name__ == '__main__':
|
| - main(sys.argv[1:])
|
|
|