88from common import ConfigFile , JournalFile , StatusFile , TestCase , TestEvent , JournalParser
99
1010from pathlib import Path
11- from queue import Queue , Empty
11+ from queue import Queue
1212from setproctitle import setproctitle
1313from subprocess import Popen , PIPE
1414from tempfile import NamedTemporaryFile
@@ -26,7 +26,7 @@ import os
2626import sys
2727import time
2828
29- log_format = '%(asctime)s %(levelname)-8s %(message)s'
29+ log_format = '%(asctime)s %(levelname)-8s %(message)s'
3030
3131logging .basicConfig (
3232 filename = "runnerd.log" ,
@@ -154,7 +154,7 @@ class DutsManager:
154154 return
155155 configured_duts = self .duts_config .get ('duts' , [])
156156 if configured_duts is None :
157- log .warning ( "Check DUTs config!" )
157+ log .error ( "Cannot read DUTs - check DUTs config file !" )
158158 return
159159 ip_list = [dut ["ip" ] for dut in self .duts_config ["duts" ]]
160160 for ip in self .duts .copy ():
@@ -181,10 +181,9 @@ class DutsManager:
181181 log .debug ("DUTs config reloaded" )
182182
183183 def get_free_dut (self ):
184- with self .duts_lock :
185- while True :
186- # raise Empty if queue is empty
187- dut = self .duts_queue .get (block = False )
184+ while True :
185+ dut = self .duts_queue .get ()
186+ with self .duts_lock :
188187 if dut .ip in self .duts :
189188 self .duts_in_use .add (dut .ip )
190189 return dut
@@ -212,8 +211,8 @@ class DutQueue(Queue):
212211 super ().put (dut , block , timeout )
213212
214213 def get (self , block = True , timeout = None ) -> Dut :
214+ dut = super ().get (block , timeout )
215215 with self .set_lock :
216- dut = super ().get (block , timeout )
217216 self .dut_set .remove (dut .ip )
218217 return dut
219218
@@ -345,21 +344,13 @@ class MasterRunner:
345344 log .debug ("Looking for the next test..." )
346345 test_event = self .test_manager .get_next_test ()
347346 log .debug (f"Found test { test_event } " )
348- while True :
349- if not self .duts_manager .duts_queue .qsize ():
350- continue
351- log .debug ("Looking for a free DUT..." )
352- try :
353- dut = self .duts_manager .get_free_dut ()
354- except Empty :
355- log .debug ("No free DUTs at the moment! Waiting..." )
356- continue
357- log .debug (f"Found DUT { dut .ip } " )
358- test_event ['ip' ] = dut .ip
359- test_event ['start-timestamp' ] = time .time ()
360- self .test_manager .mark_started (test_event )
361- dut .run_test (test_event , test_run_complete )
362- break
347+ log .debug ("Looking for a free DUT..." )
348+ dut = self .duts_manager .get_free_dut ()
349+ log .debug (f"Found DUT { dut .ip } " )
350+ test_event ['ip' ] = dut .ip
351+ test_event ['start-timestamp' ] = time .time ()
352+ self .test_manager .mark_started (test_event )
353+ dut .run_test (test_event , test_run_complete )
363354
364355
365356class ScopeParser :
0 commit comments