summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib/oeqa')
-rw-r--r--meta/lib/oeqa/utils/qemurunner.py20
1 files changed, 12 insertions, 8 deletions
diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py
index 4a2246733f..7273bbc3db 100644
--- a/meta/lib/oeqa/utils/qemurunner.py
+++ b/meta/lib/oeqa/utils/qemurunner.py
@@ -785,19 +785,20 @@ class LoggingThread(threading.Thread):
785 self.logger.debug("Starting thread event loop") 785 self.logger.debug("Starting thread event loop")
786 while not breakout: 786 while not breakout:
787 events = poll.poll(2) 787 events = poll.poll(2)
788 for event in events: 788 for fd, event in events:
789
789 # An error occurred, bail out 790 # An error occurred, bail out
790 if event[1] & self.errorevents: 791 if event & self.errorevents:
791 raise Exception(self.stringify_event(event[1])) 792 raise Exception(self.stringify_event(event))
792 793
793 # Event to stop the thread 794 # Event to stop the thread
794 if self.readpipe == event[0]: 795 if self.readpipe == fd:
795 self.logger.debug("Stop event received") 796 self.logger.debug("Stop event received")
796 breakout = True 797 breakout = True
797 break 798 break
798 799
799 # A connection request was received 800 # A connection request was received
800 elif self.serversock and self.serversock.fileno() == event[0]: 801 elif self.serversock and self.serversock.fileno() == fd:
801 self.logger.debug("Connection request received") 802 self.logger.debug("Connection request received")
802 self.readsock, _ = self.serversock.accept() 803 self.readsock, _ = self.serversock.accept()
803 self.readsock.setblocking(0) 804 self.readsock.setblocking(0)
@@ -808,14 +809,14 @@ class LoggingThread(threading.Thread):
808 self.connection_established.set() 809 self.connection_established.set()
809 810
810 # Actual data to be logged 811 # Actual data to be logged
811 elif self.readsock.fileno() == event[0]: 812 elif self.readsock and self.readsock.fileno() == fd:
812 data = self.recv(1024, self.readsock) 813 data = self.recv(1024, self.readsock)
813 self.logfunc(data) 814 self.logfunc(data)
814 elif self.qemuoutput.fileno() == event[0]: 815 elif self.qemuoutput.fileno() == fd:
815 data = self.qemuoutput.read() 816 data = self.qemuoutput.read()
816 self.logger.debug("Data received on qemu stdout %s" % data) 817 self.logger.debug("Data received on qemu stdout %s" % data)
817 self.logfunc(data, ".stdout") 818 self.logfunc(data, ".stdout")
818 elif self.serialsock and self.serialsock.fileno() == event[0]: 819 elif self.serialsock and self.serialsock.fileno() == fd:
819 if self.serial_lock.acquire(blocking=False): 820 if self.serial_lock.acquire(blocking=False):
820 data = self.recv(1024, self.serialsock) 821 data = self.recv(1024, self.serialsock)
821 self.logger.debug("Data received serial thread %s" % data.decode('utf-8', 'replace')) 822 self.logger.debug("Data received serial thread %s" % data.decode('utf-8', 'replace'))
@@ -864,6 +865,9 @@ class LoggingThread(threading.Thread):
864 val = 'POLLHUP' 865 val = 'POLLHUP'
865 elif select.POLLNVAL == event: 866 elif select.POLLNVAL == event:
866 val = 'POLLNVAL' 867 val = 'POLLNVAL'
868 else:
869 val = "0x%x" % (event)
870
867 return val 871 return val
868 872
869 def close_socket(self, sock): 873 def close_socket(self, sock):