diff options
Diffstat (limited to 'memory/replace/dmd/test/scan-test.py')
-rw-r--r-- | memory/replace/dmd/test/scan-test.py | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/memory/replace/dmd/test/scan-test.py b/memory/replace/dmd/test/scan-test.py deleted file mode 100644 index f031ae88f..000000000 --- a/memory/replace/dmd/test/scan-test.py +++ /dev/null @@ -1,83 +0,0 @@ -#! /usr/bin/env python -# -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -'''Testing for the JSON file emitted by DMD heap scan mode when running SmokeDMD.''' - -from __future__ import print_function, division - -import argparse -import gzip -import json -import sys - -# The DMD output version this script handles. -outputVersion = 5 - - -def parseCommandLine(): - description = ''' -Ensure that DMD heap scan mode creates the correct output when run with SmokeDMD. -This is only for testing. Input files can be gzipped. -''' - p = argparse.ArgumentParser(description=description) - - p.add_argument('--clamp-contents', action='store_true', - help='expect that the contents of the JSON input file have had their addresses clamped') - - p.add_argument('input_file', - help='a file produced by DMD') - - return p.parse_args(sys.argv[1:]) - - -def checkScanContents(contents, expected): - if len(contents) != len(expected): - raise Exception("Expected " + str(len(expected)) + " things in contents but found " + str(len(contents))) - - for i in range(len(expected)): - if contents[i] != expected[i]: - raise Exception("Expected to find " + expected[i] + " at offset " + str(i) + " but found " + contents[i]) - - -def main(): - args = parseCommandLine() - - # Handle gzipped input if necessary. - isZipped = args.input_file.endswith('.gz') - opener = gzip.open if isZipped else open - - with opener(args.input_file, 'rb') as f: - j = json.load(f) - - if j['version'] != outputVersion: - raise Exception("'version' property isn't '{:d}'".format(outputVersion)) - - invocation = j['invocation'] - - mode = invocation['mode'] - if mode != 'scan': - raise Exception("bad 'mode' property: '{:s}'".format(mode)) - - blockList = j['blockList'] - - if len(blockList) != 1: - raise Exception("Expected only one block") - - b = blockList[0] - - # The expected values are based on hard-coded values in SmokeDMD.cpp. - if args.clamp_contents: - expected = ['0', '0', '0', b['addr'], b['addr']] - else: - addr = int(b['addr'], 16) - expected = ['123', '0', str(format(addr - 1, 'x')), b['addr'], - str(format(addr + 1, 'x')), '0'] - - checkScanContents(b['contents'], expected) - - -if __name__ == '__main__': - main() |