Пример #1
0
 def open(self, command, executable,
          output, gdb_console, script = None, tty = None,
          timeout = 300):
     self._lock('_open')
     try:
         cmds = execute.arg_list(command) + ['-i=mi',
                                             '--nx',
                                             '--quiet']
         if tty:
             cmds += ['--tty=%s' % tty]
         if executable:
             cmds += [executable]
         self.output = output
         self.gdb_console = gdb_console
         self.script = script
         self.running = False
         self.process = execute.execute(output = self._reader,
                                        input = self._writer,
                                        cleanup = self._cleanup)
     finally:
         self._unlock('_open')
     try:
         self.gdb_console('gdb: %s' % (' '.join(cmds)))
         ec, proc = self.process.open(cmds, timeout = (timeout, self._timeout))
         if self.trace:
             print 'gdb done', ec
         if ec > 0:
             raise error.general('gdb exec: %s' % (os.strerror(ec)))
     except:
         raise
     self._lock('_open')
     try:
         self.process = None
     finally:
         self._unlock('_open')
Пример #2
0
 def open(self, command, executable,
          output, gdb_console, script = None, tty = None,
          timeout = 300):
     self._lock('_open')
     try:
         cmds = execute.arg_list(command) + ['-i=mi',
                                             '--nx',
                                             '--quiet']
         if tty:
             cmds += ['--tty=%s' % tty]
         if executable:
             cmds += [executable]
         self.output = output
         self.gdb_console = gdb_console
         self.script = script
         self.running = False
         self.process = execute.execute(output = self._reader,
                                        input = self._writer,
                                        cleanup = self._cleanup)
     finally:
         self._unlock('_open')
     try:
         self.gdb_console('gdb: %s' % (' '.join(cmds)))
         ec, proc = self.process.open(cmds, timeout = (timeout, self._timeout))
         if self.trace:
             print('gdb done', ec)
         if ec > 0:
             raise error.general('gdb exec: %s: %s' % (cmds[0], os.strerror(ec)))
     except:
         raise
     self._lock('_open')
     try:
         self.process = None
     finally:
         self._unlock('_open')
Пример #3
0
    def run(self, set_name, symbol_file):
        covoar_result_dir = path.join(self.base_result_dir, set_name)
        if not path.exists(covoar_result_dir):
            path.mkdir(covoar_result_dir)
        if not path.exists(symbol_file):
            raise error.general('coverage: no symbol set file: %s' %
                                (symbol_file))
        exe = self._find_covoar()
        command = exe + ' -O ' + covoar_result_dir + \
                  ' -p ' + self.project_name + \
                  ' ' + self.executables + ' '
        command += self.covoar_cmd

        log.notice()
        log.notice('Running coverage analysis: %s (%s)' %
                   (set_name, covoar_result_dir))
        start_time = datetime.datetime.now()
        executor = execute.execute(verbose=self.trace,
                                   output=self.output_handler)
        exit_code = executor.shell(command, cwd=os.getcwd())
        if exit_code[0] != 0:
            raise error.general('coverage: covoar failure:: %d' %
                                (exit_code[0]))
        end_time = datetime.datetime.now()
        log.notice('Coverage time: %s' % (str(end_time - start_time)))
Пример #4
0
    def run(self, set_name, covoar_config_file, symbol_file, gcnos_file):
        covoar_result_dir = path.join(self.base_result_dir, set_name)

        if (not path.exists(covoar_result_dir)):
            path.mkdir(covoar_result_dir)

        if (not path.exists(symbol_file)):
            log.stderr("Symbol set file: " + symbol_file +
                       " doesn't exists! Covoar can not be run!")
            log.stderr("Skipping " + set_name)
            return

        command = "covoar -v -C" + covoar_config_file + " -S " + symbol_file + " -O " + covoar_result_dir + " " + path.join(
            self.traces_dir, "*.exe")
        if (path.exists(gcnos_file)):
            command = command + " -g " + gcnos_file
        log.notice("Running covoar for " + set_name, stdout_only=True)
        log.notice(command, stdout_only=True)
        executor = execute.execute(verbose=True, output=output_handler)
        exit_code = executor.shell(command, cwd=os.getcwd())
        shutil.copy2(path.join(self.covoar_src_dir, 'table.js'),
                     path.join(covoar_result_dir, 'table.js'))
        shutil.copy2(path.join(self.covoar_src_dir, 'covoar.css'),
                     path.join(covoar_result_dir, 'covoar.css'))
        log.notice("Coverage run for " + set_name + " finished ")
        status = "success"
        if (exit_code[0] != 0):
            status = "failure. Error code: " + str(exit_code[0])
        log.notice("Coverage run for " + set_name + " finished " + status)
        log.notice("-----------------------------------------------")
Пример #5
0
    def run(self, setName, covoarConfigFile, symbolFile):
        covoarResultDir = path.join(self.baseResultDir, setName)

        if (not path.exists(covoarResultDir)):
            path.mkdir(covoarResultDir)

        if (not path.exists(symbolFile)):
            log.stderr("Symbol set file: " + symbolFile + " doesn't exists! Covoar can not be run!")
            log.stderr("Skipping " + setName)
            return

        command = "covoar -C" + covoarConfigFile + " -S " + symbolFile + " -O " + covoarResultDir + " " + path.join(self.tracesDir, "*.exe")
        log.notice("Running covoar for " + setName, stdout_only=True)
        log.notice(command, stdout_only=True)
        executor = execute.execute(verbose=True, output=output_handler)
        exit_code = executor.shell(command, cwd=os.getcwd())
         
        shutil.copy2(path.join(self.covoarSrcDir, 'table.js'), path.join(covoarResultDir, 'table.js'))
        shutil.copy2(path.join(self.covoarSrcDir, 'covoar.css'), path.join(covoarResultDir, 'covoar.css'))
         
        log.notice("Coverage run for " + setName + " finished ")
        status = "success"
        if (exit_code[0] != 0):
            status = "failure. Error code: " + str(exit_code[0])
        log.notice("Coverage run for " + setName + " finished " + status)
        log.notice("-----------------------------------------------")
Пример #6
0
 def open(self,
          command,
          executable,
          output,
          gdb_console,
          timeout,
          script=None,
          tty=None):
     self._lock('_open')
     self.timeout = timeout[2]
     self.test_too_long = timeout[3]
     try:
         cmds = execute.arg_list(command) + ['-i=mi', '--nx', '--quiet']
         if tty:
             cmds += ['--tty=%s' % tty]
         if executable:
             cmds += [executable]
         self.output = output
         self.gdb_console = gdb_console
         self.script = script
         self.process = execute.execute(output=self._reader,
                                        input=self._writer,
                                        cleanup=self._cleanup)
         exec_thread = threading.Thread(target=self._execute_gdb,
                                        args=[cmds])
         exec_thread.start()
         self._monitor(timeout)
         if self.ecode is not None and self.ecode > 0:
             raise error.general('gdb exec: %s: %s' %
                                 (cmds[0], os.strerror(self.ecode)))
     finally:
         self._unlock('_open')
Пример #7
0
 def _dir_execute(self, data, total, index, exe, bsp_arch, bsp):
     self.process = execute.execute(output = self.capture)
     if not self.in_error:
         if self.console:
             self.console.open()
         self.capture_console('run: %s' % (' '.join(data)))
         ec, proc = self.process.open(data,
                                      timeout = (int(self.expand('%{timeout}')),
                                                 self._timeout))
         if ec > 0:
             self._lock()
             self._error('execute failed: %s: exit-code:%d' % (' '.join(data), ec))
             self._unlock()
         if self.console:
             self.console.close()
Пример #8
0
 def _dir_execute(self, data, total, index, exe, bsp_arch, bsp):
     self.process = execute.execute(output = self.capture)
     if not self.in_error:
         if self.console:
             self.console.open()
         self.capture_console('run: %s' % (' '.join(data)))
         ec, proc = self.process.open(data,
                                      timeout = (int(self.expand('%{timeout}')),
                                                 self._timeout))
         self._lock()
         if ec > 0:
             self._error('execute failed: %s: exit-code:%d' % (' '.join(data), ec))
         elif self.timedout:
             self.process.kill()
         self._unlock()
         if self.console:
             self.console.close()
Пример #9
0
    def run(self, symbol_file):
        if not path.exists(symbol_file):
            raise error.general('coverage: no symbol set file: %s'% (symbol_file))
        exe = self._find_covoar()
        # The order of these arguments matters. Command line options must come
        # before the executable path arguments because covoar uses getopt() to
        # process the command line options.
        command = exe + ' -O ' + self.base_result_dir + \
                  ' -p ' + self.project_name + \
                  ' ' + self.covoar_cmd + ' '
        command += self.executables

        log.notice()
        log.notice('Running coverage analysis (%s)' % (self.base_result_dir))
        start_time = datetime.datetime.now()
        executor = execute.execute(verbose = self.trace, output = self.output_handler)
        exit_code = executor.shell(command, cwd=os.getcwd())
        if exit_code[0] != 0:
            raise error.general('coverage: covoar failure:: %d' % (exit_code[0]))
        end_time = datetime.datetime.now()
        log.notice('Coverage time: %s' % (str(end_time - start_time)))
Пример #10
0
 def run(self, set_name, symbol_file):
     covoar_result_dir = path.join(self.base_result_dir, set_name)
     if (not path.exists(covoar_result_dir)):
         path.mkdir(covoar_result_dir)
     if (not path.exists(symbol_file)):
         raise error.general(
             'symbol set file: coverage/%s.symcfg was not created for covoar, skipping %s'
             % (symbol_file, set_name))
     command = ('covoar -S ' + symbol_file + ' -O ' + covoar_result_dir +
                ' -f' + self.simulator_format + ' -T' + self.target_arch +
                ' -E' + self.explanations_txt + ' -c' +
                self.coverage_extension + ' -e' +
                self.executable_extension + ' -p' + self.project_name +
                ' ' + self.executables)
     log.notice('Running covoar for %s' % (set_name))
     executor = execute.execute(verbose=True, output=self.output_handler)
     exit_code = executor.shell(command, cwd=os.getcwd())
     if (exit_code[0] != 0):
         raise error.general('covoar failure exit code: %d' %
                             (exit_code[0]))
     log.notice('Coverage run for %s finished successfully.' % (set_name))
     log.notice('-----------------------------------------------')