The result of reading non blocked empty stream is different between python2 and 3. The python2 sends "[Errno 11] Resource temporarily unavailable" exception. The python3 could read "None" without exception. So separate processing. Signed-off-by: Masashi Honma <masashi.honma@xxxxxxxxx> --- tests/hwsim/vm/parallel-vm.py | 50 ++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/tests/hwsim/vm/parallel-vm.py b/tests/hwsim/vm/parallel-vm.py index df6c19b16..e12d0dd92 100755 --- a/tests/hwsim/vm/parallel-vm.py +++ b/tests/hwsim/vm/parallel-vm.py @@ -89,10 +89,16 @@ def vm_read_stdout(vm, i): global rerun_failures ready = False - try: - out = vm['proc'].stdout.read().decode() - except: - return False + if sys.version_info[0] > 2: + out = vm['proc'].stdout.read() + if out == None: + return False + out = out.decode() + else: + try: + out = vm['proc'].stdout.read() + except: + return False logger.debug("VM[%d] stdout.read[%s]" % (i, out)) pending = vm['pending'] + out lines = [] @@ -190,12 +196,19 @@ def show_progress(scr): running = True first_running = True - try: - err = vm[i]['proc'].stderr.read().decode() - vm[i]['err'] += err - logger.debug("VM[%d] stderr.read[%s]" % (i, err)) - except: - pass + if sys.version_info[0] > 2: + err = vm[i]['proc'].stderr.read() + if err != None: + err = err.decode() + vm[i]['err'] += err + logger.debug("VM[%d] stderr.read[%s]" % (i, err)) + else: + try: + err = vm[i]['proc'].stderr.read() + vm[i]['err'] += err + logger.debug("VM[%d] stderr.read[%s]" % (i, err)) + except: + pass if vm_read_stdout(vm[i], i): scr.move(i + 1, 10) @@ -245,12 +258,19 @@ def show_progress(scr): continue running = True - try: + if sys.version_info[0] > 2: err = vm[i]['proc'].stderr.read() - vm[i]['err'] += err - logger.debug("VM[%d] stderr.read[%s]" % (i, err)) - except: - pass + if err != None: + err = err.decode() + vm[i]['err'] += err + logger.debug("VM[%d] stderr.read[%s]" % (i, err)) + else: + try: + err = vm[i]['proc'].stderr.read() + vm[i]['err'] += err + logger.debug("VM[%d] stderr.read[%s]" % (i, err)) + except: + pass ready = False if vm[i]['first_run_done']: -- 2.17.1 _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap