def __init__(self, name=None, activity=None, block=None, test=None, db=None): self.epilogue_cb = epilogue(self.end_of_simulation) self.name = name or self.name self.test = test or self.test self.is_success = None self.coverage = None activity = activity or self.activity block = block or self.block message.terminate_cbs.add(self.name, 10, self.terminate, self.check_success) try: mdb.connection.set_default_db(db=self.get_db()) self.mdb = mdb.mdb(self.name, activity=activity, block=block, test=self.test) except: message.note('Not using mdb because ' + str(sys.exc_info())) self.START() try: self.prologue() except: exc = sys.exc_info() message.error('prologue failed because ' + str(exc[0])) self.traceback(exc[2]) # self.coverage *may* be assigned to root node in prologue, # if not check for one and use last one created if exists if self.coverage is None and coverage.hierarchy.populated(): self.coverage = coverage.hierarchy.last_root if self.coverage: if getattr(self, 'master_id', False): database.insert.set_master(self.mdb.log_id, self.master_id) if getattr(self, 'master_chk', False): # create the hierarchy from master id and verify congruent pass else: database.insert.write(self.coverage, self.mdb.log_id, database.upload.REFERENCE) # is verilog library synthetic? if verilog.vpiInfo().product == 'Python': self.end_of_simulation()
def __init__(self, name=None, activity=None, block=None, test=None, db=None) : self.epilogue_cb = epilogue(self.end_of_simulation) self.name = name or self.name self.test = test or self.test self.is_success = None self.coverage = None activity = activity or self.activity block = block or self.block message.terminate_cbs.add(self.name, 10, self.terminate, self.check_success) try : mdb.connection.set_default_db(db=self.get_db()) self.mdb = mdb.mdb(self.name, activity=activity, block=block, test=self.test) except : message.note('Not using mdb because ' + str(sys.exc_info())) self.START() try : self.prologue() except : exc = sys.exc_info() message.error('prologue failed because ' + str(exc[0])) self.traceback(exc[2]) # self.coverage *may* be assigned to root node in prologue, # if not check for one and use last one created if exists if self.coverage is None and coverage.hierarchy.populated() : self.coverage = coverage.hierarchy.last_root if self.coverage : if getattr(self, 'master_id', False) : database.insert.set_master(self.mdb.log_id, self.master_id) if getattr(self, 'master_chk', False) : # create the hierarchy from master id and verify congruent pass else : database.insert.write(self.coverage, self.mdb.log_id, database.upload.REFERENCE) # is verilog library synthetic? if verilog.vpiInfo().product == 'Python' : self.end_of_simulation()
import time ################################################################################ parser = message.reportOptionParser() parser.add_option('-p', '--http', default='localhost:8080', help='port to serve on') parser.add_option('', '--gevent', default=False, help='use gevent server') options, values = parser.parse_args() ################################################################################ mdb.db.connection.set_default_db(db='../db/mdb.db', root=options.root) m = mdb.mdb('mdb report', queue='unthreaded' if options.gevent else 'threaded') message.message.verbosity(message.INT_DEBUG) ################################################################################ class serve_something(object): CONTENTTYPE = 'text/html' encapsulate = True def __init__(self): self.page = cStringIO.StringIO() def __del__(self): self.page.close() #database.connecting.database.close_all()
'--robust', default=False, help='Attempt to make test set robust', action='store_true') parser.add_option('-t', '--test', default=[], help='Test id', action='append') parser.add_option('', '--threshold', default=0, help='Coverage threshold for "incr" order') parser.add_option('-x', '--xml', help='xml out', default='optimize_%d.xml') options, values = parser.parse_args() ################################################################################ mdb.db.connection.set_default_db(db='../db/mdb.db') mdb_conn = mdb.mdb('optimize', activity='optimizing') ################################################################################ # generate lists def to_list(args, values=[]): def ignoring(arg): message.warning('Ignoring %(arg)s', arg=arg) def cast(x): try: return int(x) except: ignoring(x) return None
# ids can be given in the form range-or-id,+ # where range-or-id is [0-9]+(..[0-9]+) parser = message.reportOptionParser() parser.add_option('', '--order', help='order sequence '+str(database.optimize.options.keys()), default=[], action='append', choices=database.optimize.options.keys()) parser.add_option('-r', '--regression', default=[], help='Regression root id', action='append') parser.add_option('', '--robust', default=False, help='Attempt to make test set robust', action='store_true') parser.add_option('-t', '--test', default=[], help='Test id', action='append') parser.add_option('', '--threshold', default=0, help='Coverage threshold for "incr" order') parser.add_option('-x', '--xml', help='xml out', default='optimize_%d.xml') options, values = parser.parse_args() ################################################################################ mdb.db.connection.set_default_db(db='../db/mdb.db') mdb_conn=mdb.mdb('optimize', activity='optimizing') ################################################################################ # generate lists def to_list(args, values=[]) : def ignoring(arg) : message.warning('Ignoring %(arg)s', arg=arg) def cast(x) : try : return int(x) except : ignoring(x) return None if isinstance(args, list) : return to_list(args[1:], to_list(args[0], values)) if args else values
default=None, help='Test subset', action='append') parser.add_option('-x', '--xml', help='set regression xml description', default='regress.xml') options, values = parser.parse_args() ################################################################################ if options.root: os.chdir(options.root) mdb.db.connection.set_default_db(db='../db/mdb.db') mdb_conn = mdb.mdb('regress', activity='regression') ################################################################################ class regression: def __init__(self, xml): try: self.xml = libxml2.parseFile(xml) except: message.fatal( 'unable to read regression file %(xml)s because %(excpt)s', xml=xml, excpt=sys.exc_info()[1]) return for idx, node in enumerate(self.xml.xpathEval('//*')):
import os.path import re import sys import time ################################################################################ parser = message.reportOptionParser() parser.add_option('-p', '--http', default='localhost:8080', help='port to serve on') parser.add_option('', '--gevent', default=False, help='use gevent server') options, values = parser.parse_args() ################################################################################ mdb.db.connection.set_default_db(db='../db/mdb.db', root=options.root) m=mdb.mdb('mdb report', queue='unthreaded' if options.gevent else 'threaded') message.message.verbosity(message.INT_DEBUG) ################################################################################ class serve_something(object) : CONTENTTYPE='text/html' encapsulate=True def __init__(self) : self.page = cStringIO.StringIO() def __del__(self) : self.page.close() #database.connecting.database.close_all()
import sys ################################################################################ parser = message.reportOptionParser() parser.add_option('-s', '--subset', default=None, help='Test subset', action='append') parser.add_option('-x', '--xml', help='set regression xml description', default='regress.xml') options, values = parser.parse_args() ################################################################################ if options.root : os.chdir(options.root) mdb.db.connection.set_default_db(db='../db/mdb.db') mdb_conn=mdb.mdb('regress', activity='regression') ################################################################################ class regression : def __init__(self, xml) : try : self.xml = libxml2.parseFile(xml) except : message.fatal('unable to read regression file %(xml)s because %(excpt)s', xml=xml, excpt=sys.exc_info()[1]) return for idx, node in enumerate(self.xml.xpathEval('//*')) : try : node.setProp('nid', 'id-' + str(idx)) except : message.debug('setProp failed for %(tag)s', tag=node.name)