Example #1
0
    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()
Example #2
0
  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()
Example #3
0
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()
Example #4
0
                  '--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
Example #5
0
# 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
Example #6
0
                  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('//*')):
Example #7
0
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()
Example #8
0
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)