diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 19:26:05 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 19:26:05 +0000 | 
| commit | 14f1b3e8826ce43b978db93a62d1166055db5394 (patch) | |
| tree | 0a00ad8d3498783fe0193f3b656bca17c4c8697d /packages/Python/lldbsuite/test/attic/tester.py | |
| parent | 4ee8c119c71a06dcad1e0fecc8c675e480e59337 (diff) | |
Notes
Diffstat (limited to 'packages/Python/lldbsuite/test/attic/tester.py')
| -rw-r--r-- | packages/Python/lldbsuite/test/attic/tester.py | 218 | 
1 files changed, 126 insertions, 92 deletions
| diff --git a/packages/Python/lldbsuite/test/attic/tester.py b/packages/Python/lldbsuite/test/attic/tester.py index 5c1a2370ced8..2e783512369d 100644 --- a/packages/Python/lldbsuite/test/attic/tester.py +++ b/packages/Python/lldbsuite/test/attic/tester.py @@ -3,112 +3,146 @@  from __future__ import print_function -import math, os.path, re, sys, time, unittest +import math +import os.path +import re +import sys +import time +import unittest +  def setupSysPath(): -  testPath = sys.path[0] -  rem = re.match("(^.*/)test$", testPath) -  if not rem: -    print("This script expects to reside in .../test.") -    sys.exit(-1) -  lldbBasePath = rem.group(1) -  lldbDebugPythonPath = "build/Debug/LLDB.framework/Resources/Python" -  lldbReleasePythonPath = "build/Release/LLDB.framework/Resources/Python" -  lldbPythonPath = None -  if os.path.isfile(lldbDebugPythonPath + "/lldb.py"): -    lldbPythonPath = lldbDebugPythonPath -  if os.path.isfile(lldbReleasePythonPath + "/lldb.py"): -    lldbPythonPath = lldbReleasePythonPath -  if not lldbPythonPath: -    print("This script requires lldb.py to be in either " + lldbDebugPythonPath, end='') -    print("or" + lldbReleasePythonPath) -    sys.exit(-1) -  sys.path.append(lldbPythonPath) +    testPath = sys.path[0] +    rem = re.match("(^.*/)test$", testPath) +    if not rem: +        print("This script expects to reside in .../test.") +        sys.exit(-1) +    lldbBasePath = rem.group(1) +    lldbDebugPythonPath = "build/Debug/LLDB.framework/Resources/Python" +    lldbReleasePythonPath = "build/Release/LLDB.framework/Resources/Python" +    lldbPythonPath = None +    if os.path.isfile(lldbDebugPythonPath + "/lldb.py"): +        lldbPythonPath = lldbDebugPythonPath +    if os.path.isfile(lldbReleasePythonPath + "/lldb.py"): +        lldbPythonPath = lldbReleasePythonPath +    if not lldbPythonPath: +        print( +            "This script requires lldb.py to be in either " + +            lldbDebugPythonPath, +            end='') +        print("or" + lldbReleasePythonPath) +        sys.exit(-1) +    sys.path.append(lldbPythonPath) +  def prettyTime(t): -  if t == 0.0: -    return "0s" -  if t < 0.000001: -    return ("%.3f" % (t * 1000000000.0)) + "ns" -  if t < 0.001: -    return ("%.3f" % (t * 1000000.0)) + "µs" -  if t < 1: -    return ("%.3f" % (t * 1000.0)) + "ms" -  return str(t) + "s" +    if t == 0.0: +        return "0s" +    if t < 0.000001: +        return ("%.3f" % (t * 1000000000.0)) + "ns" +    if t < 0.001: +        return ("%.3f" % (t * 1000000.0)) + "µs" +    if t < 1: +        return ("%.3f" % (t * 1000.0)) + "ms" +    return str(t) + "s" +  class ExecutionTimes: -  @classmethod -  def executionTimes(cls): -    if cls.m_executionTimes == None: -      cls.m_executionTimes = ExecutionTimes() -      for i in range(100): -        cls.m_executionTimes.start() -        cls.m_executionTimes.end("null") -    return cls.m_executionTimes -  def __init__(self): -    self.m_times = dict() -  def start(self): -    self.m_start = time.time() -  def end(self, component): -    e = time.time() -    if component not in self.m_times: -      self.m_times[component] = list() -    self.m_times[component].append(e - self.m_start) -  def dumpStats(self): -    for key in list(self.m_times.keys()): -      if len(self.m_times[key]): -        sampleMin = float('inf') -        sampleMax = float('-inf') -        sampleSum = 0.0 -        sampleCount = 0.0 -        for time in self.m_times[key]: -          if time > sampleMax: -            sampleMax = time -          if time < sampleMin: -            sampleMin = time -          sampleSum += time -          sampleCount += 1.0 -        sampleMean = sampleSum / sampleCount -        sampleVariance = 0 -        for time in self.m_times[key]: -          sampleVariance += (time - sampleMean) ** 2 -        sampleVariance /= sampleCount -        sampleStandardDeviation = math.sqrt(sampleVariance) -        print(key + ": [" + prettyTime(sampleMin) + ", " + prettyTime(sampleMax) + "] ", end='') -        print("µ " + prettyTime(sampleMean) + ", σ " + prettyTime(sampleStandardDeviation)) -  m_executionTimes = None + +    @classmethod +    def executionTimes(cls): +        if cls.m_executionTimes is None: +            cls.m_executionTimes = ExecutionTimes() +            for i in range(100): +                cls.m_executionTimes.start() +                cls.m_executionTimes.end("null") +        return cls.m_executionTimes + +    def __init__(self): +        self.m_times = dict() + +    def start(self): +        self.m_start = time.time() + +    def end(self, component): +        e = time.time() +        if component not in self.m_times: +            self.m_times[component] = list() +        self.m_times[component].append(e - self.m_start) + +    def dumpStats(self): +        for key in list(self.m_times.keys()): +            if len(self.m_times[key]): +                sampleMin = float('inf') +                sampleMax = float('-inf') +                sampleSum = 0.0 +                sampleCount = 0.0 +                for time in self.m_times[key]: +                    if time > sampleMax: +                        sampleMax = time +                    if time < sampleMin: +                        sampleMin = time +                    sampleSum += time +                    sampleCount += 1.0 +                sampleMean = sampleSum / sampleCount +                sampleVariance = 0 +                for time in self.m_times[key]: +                    sampleVariance += (time - sampleMean) ** 2 +                sampleVariance /= sampleCount +                sampleStandardDeviation = math.sqrt(sampleVariance) +                print( +                    key + +                    ": [" + +                    prettyTime(sampleMin) + +                    ", " + +                    prettyTime(sampleMax) + +                    "] ", +                    end='') +                print( +                    "µ " + +                    prettyTime(sampleMean) + +                    ", σ " + +                    prettyTime(sampleStandardDeviation)) +    m_executionTimes = None  setupSysPath()  import lldb +  class LLDBTestCase(unittest.TestCase): -  def setUp(self): -    debugger = lldb.SBDebugger.Create() -    debugger.SetAsync(True) -    self.m_commandInterpreter = debugger.GetCommandInterpreter() -    if not self.m_commandInterpreter: -      print("Couldn't get the command interpreter") -      sys.exit(-1) -  def runCommand(self, command, component): -    res = lldb.SBCommandReturnObject() -    ExecutionTimes.executionTimes().start() -    self.m_commandInterpreter.HandleCommand(command, res, False) -    ExecutionTimes.executionTimes().end(component) -    if res.Succeeded(): -      return res.GetOutput() -    else: -      self.fail("Command " + command + " returned an error") -      return None -  def getCategories(self): -    return [] + +    def setUp(self): +        debugger = lldb.SBDebugger.Create() +        debugger.SetAsync(True) +        self.m_commandInterpreter = debugger.GetCommandInterpreter() +        if not self.m_commandInterpreter: +            print("Couldn't get the command interpreter") +            sys.exit(-1) + +    def runCommand(self, command, component): +        res = lldb.SBCommandReturnObject() +        ExecutionTimes.executionTimes().start() +        self.m_commandInterpreter.HandleCommand(command, res, False) +        ExecutionTimes.executionTimes().end(component) +        if res.Succeeded(): +            return res.GetOutput() +        else: +            self.fail("Command " + command + " returned an error") +            return None + +    def getCategories(self): +        return [] +  class SanityCheckTestCase(LLDBTestCase): -  def runTest(self): -    ret = self.runCommand("show arch", "show-arch") -    #print(ret) -  def getCategories(self): -    return [] + +    def runTest(self): +        ret = self.runCommand("show arch", "show-arch") +        # print(ret) + +    def getCategories(self): +        return []  suite = unittest.TestLoader().loadTestsFromTestCase(SanityCheckTestCase)  unittest.TextTestRunner(verbosity=2).run(suite) | 
