Changeset c04a849 in rtems-tools for rtemstoolkit


Ignore:
Timestamp:
May 31, 2014, 10:03:05 AM (6 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10, 4.11, master
Children:
60937e1
Parents:
5cdcde1
Message:

tester: Correctly handle contro-c.

Add support to kill running tests if the user presses control-c.

Location:
rtemstoolkit
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • rtemstoolkit/execute.py

    r5cdcde1 rc04a849  
    117117        self.outputting = False
    118118        self.timing_out = False
     119        self.proc = None
    119120
    120121    def _capture(self, command, proc, timeout = None):
     
    263264            timeout_thread.start()
    264265        try:
     266            self.lock.acquire()
     267            try:
     268                self.proc = proc
     269            except:
     270                raise
     271            finally:
     272                self.lock.release()
    265273            exitcode = proc.wait()
    266274        except:
    267             print 'killing'
    268275            proc.kill()
    269276            raise
    270277        finally:
     278            self.lock.acquire()
     279            try:
     280                self.proc = None
     281            except:
     282                raise
     283            finally:
     284                self.lock.release()
    271285            if self.cleanup:
    272286                self.cleanup(proc)
     
    416430        return old_environment
    417431
     432    def kill(self):
     433        self.lock.acquire()
     434        try:
     435            if self.proc is not None:
     436                self.proc.kill()
     437        except:
     438            raise
     439        finally:
     440            self.lock.release()
     441
     442    def terminate(self):
     443        self.lock.acquire()
     444        try:
     445            if self.proc is not None:
     446                self.proc.terminate()
     447        except:
     448            raise
     449        finally:
     450            self.lock.release()
     451
     452    def send_signal(self, signal):
     453        self.lock.acquire()
     454        try:
     455            if self.proc is not None:
     456                print "sending sig"
     457                self.proc.send_signal(signal)
     458        except:
     459            raise
     460        finally:
     461            self.lock.release()
     462
    418463class capture_execution(execute):
    419464    """Capture all output as a string and return it."""
Note: See TracChangeset for help on using the changeset viewer.