+ result = "FAIL"
+ if args.no_reset:
+ print "Leaving devices in current state"
+ else:
+ reset_ok = reset_devs(dev, apdev)
+ wpas = None
+ try:
+ wpas = WpaSupplicant(global_iface="/tmp/wpas-wlan5")
+ rename_log(args.logdir, 'log5', name, wpas)
+ if not args.no_reset:
+ wpas.remove_ifname()
+ except Exception, e:
+ pass
+ if wpas:
+ wpas.close_ctrl()
+
+ for i in range(0, 3):
+ rename_log(args.logdir, 'log' + str(i), name, dev[i])
+ try:
+ hapd = HostapdGlobal()
+ except Exception, e:
+ print "Failed to connect to hostapd interface"
+ print str(e)
+ reset_ok = False
+ result = "FAIL"
+ hapd = None
+ rename_log(args.logdir, 'hostapd', name, hapd)
+ if hapd:
+ del hapd
+ hapd = None
+
+ # Use None here since this instance of Wlantest() will never be
+ # used for remote host hwsim tests on real hardware.
+ Wlantest.setup(None)
+ wt = Wlantest()
+ rename_log(args.logdir, 'hwsim0.pcapng', name, wt)
+ rename_log(args.logdir, 'hwsim0', name, wt)
+ if os.path.exists(os.path.join(args.logdir, 'fst-wpa_supplicant')):
+ rename_log(args.logdir, 'fst-wpa_supplicant', name, None)
+ if os.path.exists(os.path.join(args.logdir, 'fst-hostapd')):
+ rename_log(args.logdir, 'fst-hostapd', name, None)
+
+ end = datetime.now()
+ diff = end - start
+
+ if result == 'PASS' and args.dmesg:
+ if not check_kernel(os.path.join(args.logdir, name + '.dmesg')):
+ logger.info("Kernel issue found in dmesg - mark test failed")
+ result = 'FAIL'
+
+ if result == 'PASS':
+ passed.append(name)
+ elif result == 'SKIP':
+ skipped.append(name)
+ else:
+ failed.append(name)
+
+ report(conn, args.prefill, args.build, args.commit, run, name, result,
+ diff.total_seconds(), args.logdir)
+ result = "{} {} {} {}".format(result, name, diff.total_seconds(), end)
+ logger.info(result)
+ if args.loglevel == logging.WARNING:
+ print result
+ sys.stdout.flush()
+
+ if not reset_ok:
+ print "Terminating early due to device reset failure"
+ break
+ if args.stdin_ctrl:
+ set_term_echo(sys.stdin.fileno(), True)
+
+ if log_handler:
+ log_handler.stream.close()
+ logger.removeHandler(log_handler)
+ file_name = os.path.join(args.logdir, 'run-tests.log')
+ log_handler = logging.FileHandler(file_name)
+ log_handler.setLevel(logging.DEBUG)
+ log_handler.setFormatter(log_formatter)
+ logger.addHandler(log_handler)