summaryrefslogtreecommitdiffstats
path: root/memory/replace/dmd/test/scan-test.py
diff options
context:
space:
mode:
Diffstat (limited to 'memory/replace/dmd/test/scan-test.py')
-rw-r--r--memory/replace/dmd/test/scan-test.py83
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()