Skip to content
This repository has been archived by the owner on Nov 2, 2021. It is now read-only.

Commit

Permalink
Merge pull request #9 from ypwalter/memoryreport
Browse files Browse the repository at this point in the history
Adding memory report tools and modify mtbf.py accordingly
  • Loading branch information
ypwalter committed Mar 31, 2014
2 parents 6366529 + 640b9e6 commit abf6008
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 2 deletions.
59 changes: 57 additions & 2 deletions mtbf.py
@@ -1,13 +1,57 @@
import argparse
import logging
import os
import sys
import re
import signal
import sys
import textwrap
import time
import re
import json

from gaiatest.runtests import GaiaTestRunner, GaiaTestOptions


## this is for faking out an argument set for memory report
def memory_report_args(minimize=False, leave_on_device=False, no_auto_open=True,
keep_report=False, gc_log=True, abbrev_gc_log=False):
parser = argparse.ArgumentParser(description=__doc__,
formatter_class=argparse.RawDescriptionHelpFormatter)

parser.add_argument('--minimize', '-m', dest='minimize_memory_usage',
action='store_true', default=minimize)

parser.add_argument('--directory', '-d', dest='output_directory',
action='store', metavar='DIR')

parser.add_argument('--leave-on-device', '-l', dest='leave_on_device',
action='store_true', default=leave_on_device)

parser.add_argument('--no-auto-open', '-o', dest='open_in_firefox',
action='store_false', default=no_auto_open)

parser.add_argument('--keep-individual-reports',
dest='keep_individual_reports',
action='store_true', default=keep_report)

gc_log_group = parser.add_mutually_exclusive_group()

gc_log_group.add_argument('--no-gc-cc-log',
dest='get_gc_cc_logs',
action='store_false',
default=gc_log)

gc_log_group.add_argument('--abbreviated-gc-cc-log',
dest='abbreviated_gc_cc_log',
action='store_true',
default=abbrev_gc_log)

parser.add_argument('--no-dmd', action='store_true', default=False)

args, unknown = parser.parse_known_args()
return args


## this is for getting MTBF_TIME translated to seconds
def time2sec(input_str):
day = check_none_group(re.search('[^0-9]*([0-9]+)[Dd]', input_str))
hour = check_none_group(re.search('[^0-9]*([0-9]+)[Hh]', input_str))
Expand Down Expand Up @@ -36,6 +80,9 @@ def __init__(self, time):
self.failed = 0
self.todo = 0

with open("mtbf_config.json") as json_file:
self.configuration = json.load(json_file)

## logging module should be defined here
def start_logging(self):
pass
Expand All @@ -52,6 +99,12 @@ def start_gaiatest(self):
self.start_time = time.time()

while(True):
## import only if config file states tools is there
if self.configuration['memory_report']:
## get some memory report before each round
import tools.get_about_memory
tools.get_about_memory.get_and_show_info(memory_report_args())

## Run test
## workaround: kill the runner and create another
## one each round, should be fixed
Expand Down Expand Up @@ -87,7 +140,9 @@ def time_up(self, signum, frame):
self.get_report()
os._exit(0)


def main():
# TODO: maybe get MTBF_TIME into json config file?
## set default as 2 mins
try:
time = int(time2sec(os.getenv('MTBF_TIME', '2m')))
Expand Down
3 changes: 3 additions & 0 deletions mtbf_config.json
@@ -0,0 +1,3 @@
{
"memory_report": false
}

0 comments on commit abf6008

Please sign in to comment.